8 #ifndef META_OCEAN_RENDERING_GI_FRAMEBUFFER_H
9 #define META_OCEAN_RENDERING_GI_FRAMEBUFFER_H
29 namespace 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:1792
This class implements an infinite line in 3D space.
Definition: Line3.h:70
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
@ API_DEFAULT
Invalid graphic api id.
Definition: Engine.h:59
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