OpenSource Brigade 2 alternative? back

Board: Home Board index Raytracing Visuals, Tools, Demos & Sources

(L) [2015/09/14] [tby lion] [OpenSource Brigade 2 alternative?] Wayback!

I'm still working on opensource B2 alternative, almost ready to provide sources. May be someone already did this? [SMILEY :D]
Here some example render of abouttime scene:



Currently it uses glsl because CUDA can't run on AMD, and Nvidia do not support OpenCL 2.0, so bindless textures is the only way I found to access all textures with hardware sampling.
Main API:
Code: [LINK # Select all]struct LGE_DevSettings
{
    void *m_HDC;
    void *m_HGLRC;
    bool m_threadedGL;
    bool m_enableVSync;
};
struct LGE_RuntimeParams
{
    glm::vec4 m_cameraRight;
    glm::vec4 m_cameraUp;
    glm::vec4 m_cameraForward;
    glm::vec4 m_cameraPosition;
    glm::vec4 m_sunDirection;
    glm::vec4 m_sunColor;
    unsigned int m_width;
    unsigned int m_height;
    unsigned int m_spp;
    unsigned int m_skyTexture;
    float m_time;
    float m_secondaryRaysMipmap;
    float m_FOV;
    float m_denoiseAmount;
};
class LGE_Device
{
public:
    virtual ~LGE_Device() {};
    virtual bool SetSettings(LGE_DevSettings *pSettings) = 0;
    virtual void SetRuntimeParams(LGE_RuntimeParams *pParams) = 0;
    virtual void Render(unsigned int first_line, unsigned int count)=0;
    virtual void WaitSync()=0;
    virtual void WaitRender()=0;
    virtual unsigned int AddTexture(unsigned int width, unsigned int height, void *image) = 0;
    virtual void DeleteTexture(unsigned int tex) = 0;
    virtual unsigned int AddBVHGeometry(void *pGeometry, unsigned int size) = 0;
    virtual void DeleteBVHGeometry(unsigned int handle) = 0;
    virtual void SetGeometryTransform(unsigned int geometry, glm::vec4 *pTransform) = 0;
    virtual void AttachShader(const char *code, unsigned int slot) = 0;
};
(L) [2015/09/14] [ost by lion] [OpenSource Brigade 2 alternative?] Wayback!

I'm still working on opensource B2 alternative, almost ready to provide sources. May be someone already did this? [SMILEY :D]
Here some example render of abouttime scene:

[IFRAME n/a]

Currently it uses glsl because CUDA can't run on AMD, and Nvidia do not support OpenCL 2.0, so bindless textures is the only way I found to access all textures with hardware sampling.
Main API:
Code: [LINK # Select all]struct LGE_DevSettings
{
    void *m_HDC;
    void *m_HGLRC;
    bool m_threadedGL;
    bool m_enableVSync;
};
struct LGE_RuntimeParams
{
    glm::vec4 m_cameraRight;
    glm::vec4 m_cameraUp;
    glm::vec4 m_cameraForward;
    glm::vec4 m_cameraPosition;
    glm::vec4 m_sunDirection;
    glm::vec4 m_sunColor;
    unsigned int m_width;
    unsigned int m_height;
    unsigned int m_spp;
    unsigned int m_skyTexture;
    float m_time;
    float m_secondaryRaysMipmap;
    float m_FOV;
    float m_denoiseAmount;
};
class LGE_Device
{
public:
    virtual ~LGE_Device() {};
    virtual bool SetSettings(LGE_DevSettings *pSettings) = 0;
    virtual void SetRuntimeParams(LGE_RuntimeParams *pParams) = 0;
    virtual void Render(unsigned int first_line, unsigned int count)=0;
    virtual void WaitSync()=0;
    virtual void WaitRender()=0;
    virtual unsigned int AddTexture(unsigned int width, unsigned int height, void *image) = 0;
    virtual void DeleteTexture(unsigned int tex) = 0;
    virtual unsigned int AddBVHGeometry(void *pGeometry, unsigned int size) = 0;
    virtual void DeleteBVHGeometry(unsigned int handle) = 0;
    virtual void SetGeometryTransform(unsigned int geometry, glm::vec4 *pTransform) = 0;
    virtual void AttachShader(const char *code, unsigned int slot) = 0;
};
(L) [2016/02/02] [tby rouncer] [OpenSource Brigade 2 alternative?] Wayback!

Nice1,  looks like a multibounce system.  wish I could see a bit more of it tho.
One thing I know now,  is getting a single bounce perfect is worth more than any amount of bounces in a recursive multibounce system.
check this out - and its just rastering->
[LINK https://www.youtube.com/watch?v=XzBwp0rjwvU]

Notice how the light is really spread well and glowing?  A rasterer is forced to do it in one bounce, but can look quite remarkable... a nice glowing daylit scene, provided by a more physically correct specular shape,  going all directions with a diffusion is not realistic at all,  because it doesnt take into account the roughness of the surface. (micro shadowing.)

back