8#ifndef META_OCEAN_RENDERING_GI_FRAMEBUFFER_H
9#define META_OCEAN_RENDERING_GI_FRAMEBUFFER_H
29namespace GlobalIllumination
154 void viewport(
unsigned int& left,
unsigned int& top,
unsigned int& width,
unsigned int& height)
const override;
160 void setViewport(
const unsigned int left,
const unsigned int top,
const unsigned int width,
const unsigned int height)
override;
207 void renderAntialiasedSubset(
const uint8_t* sobelResponse,
const unsigned int sobelResponsePaddingElements,
LightSources* lightSources,
const TracingGroup* group,
const unsigned int threads,
const unsigned int threadIndex,
const unsigned int mustBeOne);
This class implements Ocean's image class.
Definition Frame.h:1808
This class implements an infinite line in 3D space.
Definition Line3.h:68
This class implements a color defined by red, green, blue and alpha parameters.
Definition RGBAColor.h:41
GraphicAPI
Definition of different graphic APIs.
Definition Engine.h:57
This class is the base class for all rendering framebuffers.
Definition rendering/Framebuffer.h:48
RenderTechnique
Definition of different render techniques.
Definition rendering/Framebuffer.h:68
This class implements a base for all Global Illumination framebuffers.
Definition GIFramebuffer.h:39
void setRenderTechnique(const RenderTechnique technique) override
Sets the rendering technique of the entire framebuffer.
bool intersection(const Line3 &ray, RenderableRef &renderable, Vector3 &position) override
Returns the renderable object intersected by a given ray.
void viewport(unsigned int &left, unsigned int &top, unsigned int &width, unsigned int &height) const override
Returns the viewport of this framebuffer.
void setView(const ViewRef &view) override
Connects a view with this framebuffer.
void setFaceMode(const FaceMode faceMode) override
Sets the global face mode of the entire framebuffer.
Frame sobelFrame_
Optional framebuffer frame holding the sobel response for antialiasing.
Definition GIFramebuffer.h:238
void release() override
Releases the framebuffer.
bool setSupportQuadbufferedStereo(const bool enable) override
Sets whether this framebuffer will support stereo views.
CullingMode cullingMode() const override
Returns the global face culling mode of the entire framebuffer.
void render() override
Renders the next frame into the framebuffer.
Engine::GraphicAPI preferredGraphicAPI_
Preferred graphic API of this framebuffer.
Definition GIFramebuffer.h:229
bool isAntialiasingSupported(const unsigned int buffers) const override
Returns whether the framebuffer supports hardware antialiasing.
bool setAntialiasing(const bool antialiasing) override
Sets whether the framebuffer uses hardware antialiasing.
void removeScene(const SceneRef &scene) override
Removes a scene from the framebuffer.
RenderTechnique renderTechnique() const override
Returns the render technique of the entire framebuffer.
void setCullingMode(const CullingMode cullingMode) override
Sets the global culling mode of the entire framebuffer.
FaceMode faceMode() const override
Returns the global face mode of the entire framebuffer.
void renderAntialiasedSubset(const uint8_t *sobelResponse, const unsigned int sobelResponsePaddingElements, LightSources *lightSources, const TracingGroup *group, const unsigned int threads, const unsigned int threadIndex, const unsigned int mustBeOne)
Renders a subset of the frame into the framebuffer.
void renderSubset(LightSources *lightSources, const TracingGroup *group, const unsigned int threads, const unsigned int threadIndex, const unsigned int mustBeOne)
Renders a subset of the frame into the framebuffer.
bool setSupportAntialiasing(const unsigned int buffers) override
Sets whether this framebuffer will support hardware antialiasing.
bool antialiasingEnabled_
Antialiasing enabled statement.
Definition GIFramebuffer.h:235
GIFramebuffer(const Engine::GraphicAPI preferredGraphicAPI=Engine::API_DEFAULT)
Creates a new NvidaSceneGraph framebuffer object.
Frame frame_
Framebuffer frame.
Definition GIFramebuffer.h:232
void addScene(const SceneRef &scene) override
Adds a new scene to the framebuffer.
Lighting::LightingModes lightingModes_
Lighting modes for this framebuffer.
Definition GIFramebuffer.h:241
void makeCurrent() override
Makes this frambuffer to the current one.
void clearScenes() override
Cleares all scenes registered at the framebuffer.
void setViewport(const unsigned int left, const unsigned int top, const unsigned int width, const unsigned int height) override
Sets the viewport of this framebuffer.
void makeNoncurrent() override
Makes this framebuffer to non current.
bool renderRay(const Vector3 &viewPosition, const Line3 &ray, const TracingGroup &group, const LightSources &lightSources, RGBAColor &result) const
Renders one specific ray for a given group of tracing objects and light sources.
bool isAntialiasing() const override
Returns whether the framebuffer uses hardware antialiasing.
~GIFramebuffer() override
Destructs a Global Illumination framebuffer object.
bool isQuadbufferedStereoSupported() const override
Returns whether the framebuffer supports stereo views.
This class is the base class for all Global Illumination objects.
Definition GIObject.h:29
LightingModes
Definition of individual lighting modes.
Definition Lighting.h:47
This class implements a group of tracing objects.
Definition TracingGroup.h:28
FaceMode
Defines different face rendering modes.
Definition PrimitiveAttribute.h:42
CullingMode
Defines different face culling modes.
Definition PrimitiveAttribute.h:57
std::vector< LightPair > LightSources
Definition of a vector holding light pairs.
Definition GILightSource.h:40
The namespace covering the entire Ocean framework.
Definition Accessor.h:15