Open CASCADE Technology
7.3.0
|
Implementation of OpenGl view. More...
#include <OpenGl_View.hxx>
Data Structures | |
struct | RaytracingParams |
Compile-time ray-tracing parameters. More... | |
class | ShaderSource |
Tool class for management of shader sources. More... | |
struct | StructState |
Describes state of OpenGL structure. More... | |
Public Member Functions | |
OpenGl_View (const Handle< Graphic3d_StructureManager > &theMgr, const Handle< OpenGl_GraphicDriver > &theDriver, const Handle< OpenGl_Caps > &theCaps, OpenGl_StateCounter *theCounter) | |
Constructor. More... | |
virtual | ~OpenGl_View () |
Default destructor. More... | |
void | ReleaseGlResources (const Handle< OpenGl_Context > &theCtx) |
virtual void | Remove () override |
Deletes and erases the view. More... | |
Standard_Boolean | SetImmediateModeDrawToFront (const Standard_Boolean theDrawToFrontBuffer) override |
virtual void | SetWindow (const Handle< Aspect_Window > &theWindow, const Aspect_RenderingContext theContext) override |
Creates and maps rendering window to the view. More... | |
virtual Handle< Aspect_Window > | Window () const override |
Returns window associated with the view. More... | |
virtual Standard_Boolean | IsDefined () const override |
Returns True if the window associated to the view is defined. More... | |
virtual void | Resized () override |
Handle changing size of the rendering window. More... | |
virtual void | Redraw () override |
Redraw content of the view. More... | |
virtual void | RedrawImmediate () override |
Redraw immediate content of the view. More... | |
virtual void | Invalidate () override |
Marks BVH tree for given priority list as dirty and marks primitive set for rebuild. More... | |
virtual Standard_Boolean | IsInvalidated () override |
Return true if view content cache has been invalidated. More... | |
const Graphic3d_GraduatedTrihedron & | GetGraduatedTrihedron () override |
Returns data of a graduated trihedron. More... | |
virtual void | GraduatedTrihedronDisplay (const Graphic3d_GraduatedTrihedron &theTrihedronData) override |
Displays Graduated Trihedron. More... | |
virtual void | GraduatedTrihedronErase () override |
Erases Graduated Trihedron. More... | |
virtual void | GraduatedTrihedronMinMaxValues (const Graphic3d_Vec3 theMin, const Graphic3d_Vec3 theMax) override |
Sets minimum and maximum points of scene bounding box for Graduated Trihedron stored in graphic view object. More... | |
virtual Standard_Boolean | BufferDump (Image_PixMap &theImage, const Graphic3d_BufferType &theBufferType) override |
Dump active rendering buffer into specified memory buffer. In Ray-Tracing allow to get a raw HDR buffer using Graphic3d_BT_RGB_RayTraceHdrLeft buffer type, only Left view will be dumped ignoring stereoscopic parameter. More... | |
virtual Standard_Boolean | Export (const Standard_CString theFileName, const Graphic3d_ExportFormat theFormat, const Graphic3d_SortType theSortType=Graphic3d_ST_BSP_Tree) override |
Export scene into the one of the Vector graphics formats (SVG, PS, PDF...). In contrast to Bitmaps, Vector graphics is scalable (so you may got quality benefits on printing to laser printer). Notice however that results may differ a lot and do not contain some elements. More... | |
virtual void | InvalidateBVHData (const Graphic3d_ZLayerId theLayerId) override |
Marks BVH tree and the set of BVH primitives of correspondent priority list with id theLayerId as outdated. More... | |
virtual void | AddZLayer (const Graphic3d_ZLayerId theLayerId) override |
Insert a new top-level z layer with the given ID. More... | |
virtual void | RemoveZLayer (const Graphic3d_ZLayerId theLayerId) override |
Remove a z layer with the given ID. More... | |
virtual void | SetZLayerSettings (const Graphic3d_ZLayerId theLayerId, const Graphic3d_ZLayerSettings &theSettings) override |
Sets the settings for a single Z layer of specified view. More... | |
virtual Standard_Integer | ZLayerMax () const override |
Returns the maximum Z layer ID. First layer ID is Graphic3d_ZLayerId_Default, last ID is ZLayerMax(). More... | |
virtual void | InvalidateZLayerBoundingBox (const Graphic3d_ZLayerId theLayerId) const override |
Returns the bounding box of all structures displayed in the Z layer. Never fails. If Z layer does not exist nothing happens. More... | |
virtual Bnd_Box | ZLayerBoundingBox (const Graphic3d_ZLayerId theLayerId, const Handle< Graphic3d_Camera > &theCamera, const Standard_Integer theWindowWidth, const Standard_Integer theWindowHeight, const Standard_Boolean theToIncludeAuxiliary) const override |
Returns the bounding box of all structures displayed in the Z layer. If Z layer does not exist the empty box is returned. More... | |
virtual Handle< Standard_Transient > | FBO () const override |
Returns pointer to an assigned framebuffer object. More... | |
virtual void | SetFBO (const Handle< Standard_Transient > &theFbo) override |
Sets framebuffer object for offscreen rendering. More... | |
virtual Handle< Standard_Transient > | FBOCreate (const Standard_Integer theWidth, const Standard_Integer theHeight) override |
Generate offscreen FBO in the graphic library. If not supported on hardware returns NULL. More... | |
virtual void | FBORelease (Handle< Standard_Transient > &theFbo) override |
Remove offscreen FBO from the graphic library. More... | |
virtual void | FBOGetDimensions (const Handle< Standard_Transient > &theFbo, Standard_Integer &theWidth, Standard_Integer &theHeight, Standard_Integer &theWidthMax, Standard_Integer &theHeightMax) override |
Read offscreen FBO configuration. More... | |
virtual void | FBOChangeViewport (const Handle< Standard_Transient > &theFbo, const Standard_Integer theWidth, const Standard_Integer theHeight) override |
Change offscreen FBO viewport. More... | |
virtual Aspect_Background | Background () const override |
Returns background fill color. More... | |
virtual void | SetBackground (const Aspect_Background &theBackground) override |
Sets background fill color. More... | |
virtual Aspect_GradientBackground | GradientBackground () const override |
Returns gradient background fill colors. More... | |
virtual void | SetGradientBackground (const Aspect_GradientBackground &theBackground) override |
Sets gradient background fill colors. More... | |
virtual TCollection_AsciiString | BackgroundImage () override |
Returns background image texture file path. More... | |
virtual void | SetBackgroundImage (const TCollection_AsciiString &theFilePath) override |
Sets background image texture file path. More... | |
virtual Aspect_FillMethod | BackgroundImageStyle () const override |
Returns background image fill style. More... | |
virtual void | SetBackgroundImageStyle (const Aspect_FillMethod theFillStyle) override |
Sets background image fill style. More... | |
virtual Handle< Graphic3d_TextureEnv > | TextureEnv () const override |
Returns environment texture set for the view. More... | |
virtual void | SetTextureEnv (const Handle< Graphic3d_TextureEnv > &theTextureEnv) override |
Sets environment texture for the view. More... | |
virtual Standard_Boolean | IsCullingEnabled () const override |
Returns the state of frustum culling optimization. More... | |
virtual void | SetCullingEnabled (const Standard_Boolean theIsEnabled) override |
Enables or disables frustum culling optimization. More... | |
virtual Graphic3d_TypeOfBackfacingModel | BackfacingModel () const override |
Return backfacing model used for the view. More... | |
virtual void | SetBackfacingModel (const Graphic3d_TypeOfBackfacingModel theModel) override |
Sets backfacing model for the view. More... | |
virtual const Handle< Graphic3d_Camera > & | Camera () const override |
Returns camera object of the view. More... | |
const gp_XYZ & | LocalOrigin () const |
Returns local camera origin currently set for rendering, might be modified during rendering. More... | |
void | SetLocalOrigin (const gp_XYZ &theOrigin) |
Setup local camera origin currently set for rendering. More... | |
virtual void | SetCamera (const Handle< Graphic3d_Camera > &theCamera) override |
Sets camera used by the view. More... | |
virtual const Handle< Graphic3d_LightSet > & | Lights () const override |
Returns list of lights of the view. More... | |
virtual void | SetLights (const Handle< Graphic3d_LightSet > &theLights) override |
Sets list of lights for the view. More... | |
virtual const Handle< Graphic3d_SequenceOfHClipPlane > & | ClipPlanes () const override |
Returns list of clip planes set for the view. More... | |
virtual void | SetClipPlanes (const Handle< Graphic3d_SequenceOfHClipPlane > &thePlanes) override |
Sets list of clip planes for the view. More... | |
virtual void | DiagnosticInformation (TColStd_IndexedDataMapOfStringString &theDict, Graphic3d_DiagnosticInfo theFlags) const override |
Fill in the dictionary with diagnostic info. Should be called within rendering thread. More... | |
const Quantity_ColorRGBA & | BackgroundColor () const |
Returns background color. More... | |
OpenGl_GraduatedTrihedron & | ChangeGraduatedTrihedron () |
Change graduated trihedron. More... | |
void | SetTextureEnv (const Handle< OpenGl_Context > &theCtx, const Handle< Graphic3d_TextureEnv > &theTexture) |
void | SetBackgroundTextureStyle (const Aspect_FillMethod FillStyle) |
void | SetBackgroundGradient (const Quantity_Color &AColor1, const Quantity_Color &AColor2, const Aspect_GradientFillMethod AType) |
void | SetBackgroundGradientType (const Aspect_GradientFillMethod AType) |
const OpenGl_LayerList & | LayerList () const |
Returns list of OpenGL Z-layers. More... | |
const Handle< OpenGl_Window > | GlWindow () const |
Returns OpenGL window implementation. More... | |
const Handle< OpenGl_TextureSet > & | GlTextureEnv () const |
Returns OpenGL environment map. More... | |
const OpenGl_BVHTreeSelector & | BVHTreeSelector () const |
Returns selector for BVH tree, providing a possibility to store information about current view volume and to detect which objects are overlapping it. More... | |
bool | HasImmediateStructures () const |
Returns true if there are immediate structures to display. More... | |
Public Member Functions inherited from Graphic3d_CView | |
Graphic3d_CView (const Handle< Graphic3d_StructureManager > &theMgr) | |
Constructor. More... | |
virtual | ~Graphic3d_CView () |
Destructor. More... | |
Standard_Integer | Identification () const |
Returns the identification number of the view. More... | |
virtual void | Activate () |
Activates the view. Maps presentations defined within structure manager onto this view. More... | |
virtual void | Deactivate () |
Deactivates the view. Unmaps presentations defined within structure manager. The view in deactivated state will ignore actions on structures such as Display(). More... | |
Standard_Boolean | IsActive () const |
Returns the activity flag of the view. More... | |
Standard_Boolean | IsRemoved () const |
Returns true if the view was removed. More... | |
Graphic3d_TypeOfShadingModel | ShadingModel () const |
Returns default Shading Model of the view; Graphic3d_TOSM_FRAGMENT by default. More... | |
void | SetShadingModel (Graphic3d_TypeOfShadingModel theModel) |
Sets default Shading Model of the view. Will throw an exception on attempt to set Graphic3d_TOSM_DEFAULT. More... | |
Graphic3d_TypeOfVisualization | VisualizationType () const |
Returns visualization type of the view. More... | |
void | SetVisualizationType (const Graphic3d_TypeOfVisualization theType) |
Sets visualization type of the view. More... | |
void | SetComputedMode (const Standard_Boolean theMode) |
Switches computed HLR mode in the view. More... | |
Standard_Boolean | ComputedMode () const |
Returns the computed HLR mode state. More... | |
void | ReCompute (const Handle< Graphic3d_Structure > &theStructure) |
Computes the new presentation of the structure displayed in this view with the type Graphic3d_TOS_COMPUTED. More... | |
void | Update (const Graphic3d_ZLayerId theLayerId=Graphic3d_ZLayerId_UNKNOWN) |
Invalidates bounding box of specified ZLayerId. More... | |
void | Compute () |
Computes the new presentation of the structures displayed in this view with the type Graphic3d_TOS_COMPUTED. More... | |
Standard_Boolean | ContainsFacet () const |
Returns Standard_True if one of the structures displayed in the view contains Polygons, Triangles or Quadrangles. More... | |
Standard_Boolean | ContainsFacet (const Graphic3d_MapOfStructure &theSet) const |
Returns Standard_True if one of the structures in the set contains Polygons, Triangles or Quadrangles. More... | |
void | DisplayedStructures (Graphic3d_MapOfStructure &theStructures) const |
Returns the set of structures displayed in this view. More... | |
virtual Standard_Integer | NumberOfDisplayedStructures () const |
Returns number of displayed structures in the view. More... | |
const Handle< Graphic3d_NMapOfTransient > & | HiddenObjects () const |
Returns map of objects hidden within this specific view (not viewer-wise). More... | |
Handle< Graphic3d_NMapOfTransient > & | ChangeHiddenObjects () |
Returns map of objects hidden within this specific view (not viewer-wise). More... | |
Standard_Boolean | IsComputed (const Standard_Integer theStructId, Handle< Graphic3d_Structure > &theComputedStruct) const |
Returns Standard_True in case if the structure with the given <theStructId> is in list of structures to be computed and stores computed struct to <theComputedStruct>. More... | |
virtual Bnd_Box | MinMaxValues (const Standard_Boolean theToIncludeAuxiliary=Standard_False) const |
Returns the bounding box of all structures displayed in the view. If theToIncludeAuxiliary is TRUE, then the boundary box also includes minimum and maximum limits of graphical elements forming parts of infinite and other auxiliary structures. More... | |
Bnd_Box | MinMaxValues (const Graphic3d_MapOfStructure &theSet, const Standard_Boolean theToIncludeAuxiliary=Standard_False) const |
Returns the coordinates of the boundary box of all structures in the set <theSet>. If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box also includes minimum and maximum limits of graphical elements forming parts of infinite structures. More... | |
const Handle< Graphic3d_StructureManager > & | StructureManager () const |
Returns the structure manager handle which manage structures associated with this view. More... | |
Standard_Real | ConsiderZoomPersistenceObjects () |
Returns zoom-scale factor. More... | |
virtual void | CopySettings (const Handle< Graphic3d_CView > &theOther) |
Copy visualization settings from another view. Method is used for cloning views in viewer when its required to create view with same view properties. More... | |
const Graphic3d_RenderingParams & | RenderingParams () const |
Returns current rendering parameters and effect settings. More... | |
Graphic3d_RenderingParams & | ChangeRenderingParams () |
Returns reference to current rendering parameters and effect settings. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. More... | |
virtual | ~Standard_Transient () |
Destructor must be virtual. More... | |
virtual void | Delete () const |
Memory deallocator for transient classes. More... | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. More... | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. More... | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. More... | |
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
void | IncrementRefCounter () const |
Increments the reference counter of this object. More... | |
Standard_Integer | DecrementRefCounter () const |
Decrements the reference counter of this object; returns the decremented value. More... | |
Protected Member Functions | |
Internal methods for managing GL resources | |
void | initTextureEnv (const Handle< OpenGl_Context > &theContext) |
Initializes OpenGl resource for environment texture. More... | |
low-level redrawing sub-routines | |
virtual void | redraw (const Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, OpenGl_FrameBuffer *theOitAccumFbo) |
Redraws view for the given monographic camera projection, or left/right eye. More... | |
virtual bool | redrawImmediate (const Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadFbo, OpenGl_FrameBuffer *theDrawFbo, OpenGl_FrameBuffer *theOitAccumFbo, const Standard_Boolean theIsPartialUpdate=Standard_False) |
Redraws view for the given monographic camera projection, or left/right eye. More... | |
bool | blitBuffers (OpenGl_FrameBuffer *theReadFbo, OpenGl_FrameBuffer *theDrawFbo, const Standard_Boolean theToFlip=Standard_False) |
Blit image from/to specified buffers. More... | |
void | bindDefaultFbo (OpenGl_FrameBuffer *theCustomFbo=NULL) |
Setup default FBO. More... | |
methods related to ray-tracing | |
Standard_Boolean | updateRaytraceGeometry (const RaytraceUpdateMode theMode, const Standard_Integer theViewId, const Handle< OpenGl_Context > &theGlContext) |
Updates 3D scene geometry for ray-tracing. More... | |
Standard_Boolean | updateRaytraceLightSources (const OpenGl_Mat4 &theInvModelView, const Handle< OpenGl_Context > &theGlContext) |
Updates 3D scene light sources for ray-tracing. More... | |
Standard_Boolean | toUpdateStructure (const OpenGl_Structure *theStructure) |
Checks to see if the OpenGL structure is modified. More... | |
Standard_Boolean | addRaytraceStructure (const OpenGl_Structure *theStructure, const Handle< OpenGl_Context > &theGlContext) |
Adds OpenGL structure to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceGroups (const OpenGl_Structure *theStructure, const OpenGl_RaytraceMaterial &theStructMat, const Handle< Geom_Transformation > &theTrsf, const Handle< OpenGl_Context > &theGlContext) |
Adds OpenGL groups to ray-traced scene geometry. More... | |
OpenGl_RaytraceMaterial | convertMaterial (const OpenGl_AspectFace *theAspect, const Handle< OpenGl_Context > &theGlContext) |
Creates ray-tracing material properties. More... | |
Handle< OpenGl_TriangleSet > | addRaytracePrimitiveArray (const OpenGl_PrimitiveArray *theArray, const Standard_Integer theMatID, const OpenGl_Mat4 *theTrans) |
Adds OpenGL primitive array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceVertexIndices (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const OpenGl_PrimitiveArray &theArray) |
Adds vertex indices from OpenGL primitive array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceTriangleArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices) |
Adds OpenGL triangle array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceTriangleFanArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices) |
Adds OpenGL triangle fan array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceTriangleStripArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices) |
Adds OpenGL triangle strip array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceQuadrangleArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices) |
Adds OpenGL quadrangle array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytraceQuadrangleStripArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices) |
Adds OpenGL quadrangle strip array to ray-traced scene geometry. More... | |
Standard_Boolean | addRaytracePolygonArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices) |
Adds OpenGL polygon array to ray-traced scene geometry. More... | |
Standard_Boolean | uploadRaytraceData (const Handle< OpenGl_Context > &theGlContext) |
Uploads ray-trace data to the GPU. More... | |
TCollection_AsciiString | generateShaderPrefix (const Handle< OpenGl_Context > &theGlContext) const |
Generates shader prefix based on current ray-tracing options. More... | |
Standard_Boolean | safeFailBack (const TCollection_ExtendedString &theMessage, const Handle< OpenGl_Context > &theGlContext) |
Performs safe exit when shaders initialization fails. More... | |
Handle< OpenGl_ShaderObject > | initShader (const GLenum theType, const ShaderSource &theSource, const Handle< OpenGl_Context > &theGlContext) |
Loads and compiles shader object from specified source. More... | |
Handle< OpenGl_ShaderProgram > | initProgram (const Handle< OpenGl_Context > &theGlContext, const Handle< OpenGl_ShaderObject > &theVertShader, const Handle< OpenGl_ShaderObject > &theFragShader) |
Creates shader program from the given vertex and fragment shaders. More... | |
Standard_Boolean | initRaytraceResources (const Handle< OpenGl_Context > &theGlContext) |
Initializes OpenGL/GLSL shader programs. More... | |
void | releaseRaytraceResources (const Handle< OpenGl_Context > &theGlContext, const Standard_Boolean theToRebuild=Standard_False) |
Releases OpenGL/GLSL shader programs. More... | |
Standard_Boolean | updateRaytraceBuffers (const Standard_Integer theSizeX, const Standard_Integer theSizeY, const Handle< OpenGl_Context > &theGlContext) |
Updates auxiliary OpenGL frame buffers. More... | |
void | updateCamera (const OpenGl_Mat4 &theOrientation, const OpenGl_Mat4 &theViewMapping, OpenGl_Vec3 *theOrigins, OpenGl_Vec3 *theDirects, OpenGl_Mat4 &theView, OpenGl_Mat4 &theUnView) |
Generates viewing rays for corners of screen quad. (ray tracing; path tracing for orthographic camera) More... | |
void | updatePerspCameraPT (const OpenGl_Mat4 &theOrientation, const OpenGl_Mat4 &theViewMapping, Graphic3d_Camera::Projection theProjection, OpenGl_Mat4 &theViewPr, OpenGl_Mat4 &theUnview, const int theWinSizeX, const int theWinSizeY) |
Generate viewing rays (path tracing, perspective camera). More... | |
void | bindRaytraceTextures (const Handle< OpenGl_Context > &theGlContext) |
Binds ray-trace textures to corresponding texture units. More... | |
void | unbindRaytraceTextures (const Handle< OpenGl_Context > &theGlContext) |
Unbinds ray-trace textures from corresponding texture unit. More... | |
Standard_Boolean | setUniformState (const Standard_Integer theProgramId, const Standard_Integer theSizeX, const Standard_Integer theSizeY, Graphic3d_Camera::Projection theProjection, const Handle< OpenGl_Context > &theGlContext) |
Sets uniform state for the given ray-tracing shader program. More... | |
Standard_Boolean | runRaytraceShaders (const Standard_Integer theSizeX, const Standard_Integer theSizeY, Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Handle< OpenGl_Context > &theGlContext) |
Runs ray-tracing shader programs. More... | |
Standard_Boolean | runRaytrace (const Standard_Integer theSizeX, const Standard_Integer theSizeY, Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Handle< OpenGl_Context > &theGlContext) |
Runs classical (Whitted-style) ray-tracing kernel. More... | |
Standard_Boolean | runPathtrace (const Standard_Integer theSizeX, const Standard_Integer theSizeY, Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Handle< OpenGl_Context > &theGlContext) |
Runs path tracing (global illumination) kernel. More... | |
Standard_Boolean | raytrace (const Standard_Integer theSizeX, const Standard_Integer theSizeY, Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Handle< OpenGl_Context > &theGlContext) |
Redraws the window using OpenGL/GLSL ray-tracing or path tracing. More... | |
Protected Member Functions inherited from Graphic3d_DataStructureManager | |
Graphic3d_DataStructureManager () | |
Initializes the manager <me>. More... | |
Protected Attributes | |
Rendering properties | |
GLint | myFboColorFormat |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More... | |
GLint | myFboDepthFormat |
sized format for depth-stencil attachments More... | |
OpenGl_ColorFormats | myFboOitColorConfig |
selected color format configuration for OIT color attachments More... | |
Handle< OpenGl_FrameBuffer > | myMainSceneFbos [2] |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More... | |
Handle< OpenGl_FrameBuffer > | myMainSceneFbosOit [2] |
Additional buffers for transparent draw of main layer. More... | |
Handle< OpenGl_FrameBuffer > | myImmediateSceneFbos [2] |
Additional buffers for immediate layer in stereo mode. More... | |
Handle< OpenGl_FrameBuffer > | myImmediateSceneFbosOit [2] |
Additional buffers for transparency draw of immediate layer. More... | |
OpenGl_VertexBuffer | myFullScreenQuad |
Vertices for full-screen quad rendering. More... | |
OpenGl_VertexBuffer | myFullScreenQuadFlip |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More... | |
Standard_Boolean | myToFlipOutput |
Flag to draw result image upside-down. More... | |
unsigned int | myFrameCounter |
redraw counter, for debugging More... | |
Standard_Boolean | myHasFboBlit |
disable FBOs on failure More... | |
Standard_Boolean | myToDisableOIT |
disable OIT on failure More... | |
Standard_Boolean | myToDisableOITMSAA |
disable OIT with MSAA on failure More... | |
Standard_Boolean | myToDisableMSAA |
disable MSAA after failure More... | |
Standard_Boolean | myTransientDrawToFront |
optimization flag for immediate mode (to render directly to the front buffer) More... | |
Standard_Boolean | myBackBufferRestored |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More... | |
Standard_Boolean | myIsImmediateDrawn |
flag indicates that immediate mode buffer contains some data More... | |
Background parameters | |
OpenGl_AspectFace * | myTextureParams |
Stores texture and its parameters for textured background. More... | |
OpenGl_BackgroundArray * | myBgGradientArray |
Primitive array for gradient background. More... | |
OpenGl_BackgroundArray * | myBgTextureArray |
Primitive array for texture background. More... | |
Protected Attributes inherited from Graphic3d_CView | |
Standard_Integer | myId |
Graphic3d_RenderingParams | myRenderParams |
Handle< Graphic3d_StructureManager > | myStructureManager |
Graphic3d_SequenceOfStructure | myStructsToCompute |
Graphic3d_SequenceOfStructure | myStructsComputed |
Graphic3d_MapOfStructure | myStructsDisplayed |
Handle< Graphic3d_NMapOfTransient > | myHiddenObjects |
Standard_Boolean | myIsInComputedMode |
Standard_Boolean | myIsActive |
Standard_Boolean | myIsRemoved |
Graphic3d_TypeOfShadingModel | myShadingModel |
Graphic3d_TypeOfVisualization | myVisualization |
Rendering of GL graphics (with prepared drawing buffer). | |
typedef std::pair< Standard_Size, Standard_Size > | StateInfo |
main list of displayed structure, sorted by layers More... | |
OpenGl_GraphicDriver * | myDriver |
main list of displayed structure, sorted by layers More... | |
Handle< OpenGl_Window > | myWindow |
main list of displayed structure, sorted by layers More... | |
Handle< OpenGl_Workspace > | myWorkspace |
main list of displayed structure, sorted by layers More... | |
Handle< OpenGl_Caps > | myCaps |
main list of displayed structure, sorted by layers More... | |
Standard_Boolean | myWasRedrawnGL |
main list of displayed structure, sorted by layers More... | |
Standard_Boolean | myCulling |
main list of displayed structure, sorted by layers More... | |
Graphic3d_TypeOfBackfacingModel | myBackfacing |
main list of displayed structure, sorted by layers More... | |
Quantity_ColorRGBA | myBgColor |
main list of displayed structure, sorted by layers More... | |
Handle< Graphic3d_SequenceOfHClipPlane > | myClipPlanes |
main list of displayed structure, sorted by layers More... | |
Handle< Graphic3d_Camera > | myCamera |
main list of displayed structure, sorted by layers More... | |
gp_XYZ | myLocalOrigin |
main list of displayed structure, sorted by layers More... | |
Handle< OpenGl_FrameBuffer > | myFBO |
main list of displayed structure, sorted by layers More... | |
Standard_Boolean | myToShowGradTrihedron |
main list of displayed structure, sorted by layers More... | |
TCollection_AsciiString | myBackgroundImagePath |
main list of displayed structure, sorted by layers More... | |
Handle< Graphic3d_TextureEnv > | myTextureEnvData |
main list of displayed structure, sorted by layers More... | |
Graphic3d_GraduatedTrihedron | myGTrihedronData |
main list of displayed structure, sorted by layers More... | |
Handle< Graphic3d_LightSet > | myNoShadingLight |
main list of displayed structure, sorted by layers More... | |
Handle< Graphic3d_LightSet > | myLights |
main list of displayed structure, sorted by layers More... | |
OpenGl_LayerList | myZLayers |
main list of displayed structure, sorted by layers More... | |
Graphic3d_WorldViewProjState | myWorldViewProjState |
camera modification state More... | |
OpenGl_StateCounter * | myStateCounter |
main list of displayed structure, sorted by layers More... | |
Standard_Size | myCurrLightSourceState |
main list of displayed structure, sorted by layers More... | |
Standard_Size | myLightsRevision |
main list of displayed structure, sorted by layers More... | |
StateInfo | myLastOrientationState |
main list of displayed structure, sorted by layers More... | |
StateInfo | myLastViewMappingState |
main list of displayed structure, sorted by layers More... | |
StateInfo | myLastLightSourceState |
main list of displayed structure, sorted by layers More... | |
OpenGl_BVHTreeSelector | myBVHSelector |
Is needed for selection of overlapping objects and storage of the current view volume. More... | |
OpenGl_GraduatedTrihedron | myGraduatedTrihedron |
main list of displayed structure, sorted by layers More... | |
OpenGl_FrameStatsPrs | myFrameStatsPrs |
main list of displayed structure, sorted by layers More... | |
Handle< OpenGl_TextureSet > | myTextureEnv |
main list of displayed structure, sorted by layers More... | |
Handle< OpenGl_FrameBuffer > | myOpenGlFBO |
Framebuffers for OpenGL output. More... | |
Handle< OpenGl_FrameBuffer > | myOpenGlFBO2 |
main list of displayed structure, sorted by layers More... | |
virtual void | render (Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, OpenGl_FrameBuffer *theOitAccumFbo, const Standard_Boolean theToDrawImmediate) |
Renders the graphical contents of the view into the preprepared window or framebuffer. More... | |
virtual void | renderScene (Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, OpenGl_FrameBuffer *theOitAccumFbo, const Standard_Boolean theToDrawImmediate) |
Renders the graphical scene. More... | |
virtual void | drawBackground (const Handle< OpenGl_Workspace > &theWorkspace) |
Draw background (gradient / image) More... | |
virtual void | renderStructs (Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, OpenGl_FrameBuffer *theOitAccumFbo, const Standard_Boolean theToDrawImmediate) |
Render set of structures presented in the view. More... | |
void | renderTrihedron (const Handle< OpenGl_Workspace > &theWorkspace) |
Renders trihedron. More... | |
void | renderFrameStats () |
Renders frame statistics. More... | |
fields related to ray-tracing | |
RaytraceInitStatus | myRaytraceInitStatus |
Result of RT/PT shaders initialization. More... | |
Standard_Boolean | myIsRaytraceDataValid |
Is ray-tracing geometry data valid? More... | |
Standard_Boolean | myIsRaytraceWarnTextures |
True if warning about missing extension GL_ARB_bindless_texture has been displayed. More... | |
OpenGl_RaytraceGeometry | myRaytraceGeometry |
3D scene geometry data for ray-tracing. More... | |
opencascade::handle< BVH_Builder< Standard_ShortReal, 3 > > | myRaytraceBVHBuilder |
Builder for triangle set. More... | |
RaytracingParams | myRaytraceParameters |
Compile-time ray-tracing parameters. More... | |
Standard_ShortReal | myRaytraceSceneRadius |
Radius of bounding sphere of the scene. More... | |
Standard_ShortReal | myRaytraceSceneEpsilon |
Scene epsilon to prevent self-intersections. More... | |
ShaderSource | myRaytraceShaderSource |
OpenGL/GLSL source of ray-tracing fragment shader. More... | |
ShaderSource | myPostFSAAShaderSource |
OpenGL/GLSL source of adaptive-AA fragment shader. More... | |
ShaderSource | myOutImageShaderSource |
OpenGL/GLSL source of RT/PT display fragment shader. More... | |
Handle< OpenGl_ShaderObject > | myRaytraceShader |
OpenGL/GLSL ray-tracing fragment shader. More... | |
Handle< OpenGl_ShaderObject > | myPostFSAAShader |
OpenGL/GLSL adaptive-AA fragment shader. More... | |
Handle< OpenGl_ShaderObject > | myOutImageShader |
OpenGL/GLSL ray-tracing display fragment shader. More... | |
Handle< OpenGl_ShaderProgram > | myRaytraceProgram |
OpenGL/GLSL ray-tracing shader program. More... | |
Handle< OpenGl_ShaderProgram > | myPostFSAAProgram |
OpenGL/GLSL adaptive-AA shader program. More... | |
Handle< OpenGl_ShaderProgram > | myOutImageProgram |
OpenGL/GLSL program for displaying texture. More... | |
Handle< OpenGl_TextureBufferArb > | mySceneNodeInfoTexture |
Texture buffer of data records of bottom-level BVH nodes. More... | |
Handle< OpenGl_TextureBufferArb > | mySceneMinPointTexture |
Texture buffer of minimum points of bottom-level BVH nodes. More... | |
Handle< OpenGl_TextureBufferArb > | mySceneMaxPointTexture |
Texture buffer of maximum points of bottom-level BVH nodes. More... | |
Handle< OpenGl_TextureBufferArb > | mySceneTransformTexture |
Texture buffer of transformations of high-level BVH nodes. More... | |
Handle< OpenGl_TextureBufferArb > | myGeometryVertexTexture |
Texture buffer of vertex coords. More... | |
Handle< OpenGl_TextureBufferArb > | myGeometryNormalTexture |
Texture buffer of vertex normals. More... | |
Handle< OpenGl_TextureBufferArb > | myGeometryTexCrdTexture |
Texture buffer of vertex UV coords. More... | |
Handle< OpenGl_TextureBufferArb > | myGeometryTriangTexture |
Texture buffer of triangle indices. More... | |
Handle< OpenGl_TextureBufferArb > | myRaytraceMaterialTexture |
Texture buffer of material properties. More... | |
Handle< OpenGl_TextureBufferArb > | myRaytraceLightSrcTexture |
Texture buffer of light source properties. More... | |
Handle< OpenGl_FrameBuffer > | myRaytraceFBO1 [2] |
1st framebuffer (FBO) to perform adaptive FSAA. Used in compatibility mode (no adaptive sampling). More... | |
Handle< OpenGl_FrameBuffer > | myRaytraceFBO2 [2] |
2nd framebuffer (FBO) to perform adaptive FSAA. Used in compatibility mode (no adaptive sampling). More... | |
Handle< OpenGl_Texture > | myRaytraceOutputTexture [2] |
Output textures (2 textures are used in stereo mode). Used if adaptive screen sampling is activated. More... | |
Handle< OpenGl_Texture > | myRaytraceVisualErrorTexture [2] |
Texture containing per-tile visual error estimation (2 textures are used in stereo mode). Used if adaptive screen sampling is activated. More... | |
Handle< OpenGl_Texture > | myRaytraceTileOffsetsTexture [2] |
Texture containing offsets of sampled screen tiles (2 textures are used in stereo mode). Used if adaptive screen sampling is activated. More... | |
OpenGl_VertexBuffer | myRaytraceScreenQuad |
Vertex buffer (VBO) for drawing dummy quad. More... | |
Standard_Integer | myUniformLocations [2][OpenGl_RT_NbVariables] |
Cached locations of frequently used uniform variables. More... | |
std::map< const OpenGl_Structure *, StructState > | myStructureStates |
State of OpenGL structures reflected to ray-tracing. More... | |
std::map< Standard_Size, OpenGl_TriangleSet * > | myArrayToTrianglesMap |
PrimitiveArray to TriangleSet map for scene partial update. More... | |
std::set< Standard_Integer > | myNonRaytraceStructureIDs |
Set of IDs of non-raytracable elements (to detect updates). More... | |
Handle< OpenGl_RaytraceFilter > | myRaytraceFilter |
Render filter to filter out all raytracable structures. More... | |
Standard_Boolean | myToUpdateEnvironmentMap |
Marks if environment map should be updated. More... | |
Standard_Size | myRaytraceLayerListState |
State of OpenGL layer list. More... | |
Standard_Integer | myAccumFrames |
Number of accumulated frames (for progressive rendering). More... | |
OpenGl_Vec3 | myPreviousOrigins [3] |
Stored ray origins used for detection of camera movements. More... | |
math_BullardGenerator | myRNG |
Bullard RNG to produce random sequence. More... | |
OpenGl_TileSampler | myTileSampler |
Tool object for sampling screen tiles in PT mode. More... | |
OpenGl_Vec3 | myEyeOrig |
Camera position used for projective mode. More... | |
OpenGl_Vec3 | myEyeView |
Camera view direction used for projective mode. More... | |
OpenGl_Vec3 | myEyeVert |
Camera's screen vertical direction used for projective mode. More... | |
OpenGl_Vec3 | myEyeSide |
Camera's screen horizontal direction used for projective mode. More... | |
OpenGl_Vec2 | myEyeSize |
Camera's screen size used for projective mode. More... | |
float | myPrevCameraApertureRadius |
Aperture radius of camera on previous frame used for depth-of-field (path tracing) More... | |
float | myPrevCameraFocalPlaneDist |
Focal distance of camera on previous frame used for depth-of-field (path tracing) More... | |
DEFINE_STANDARD_RTTIEXT (OpenGl_View, Graphic3d_CView) friend class OpenGl_GraphicDriver | |
Result of RT/PT shaders initialization. More... | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. More... | |
Static Public Member Functions inherited from Standard_Transient | |
static const char * | get_type_name () |
Returns a type descriptor about this object. More... | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. More... | |
Implementation of OpenGl view.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
|
protected |
|
protected |
|
protected |
Defines frequently used shader variables.
OpenGl_View::OpenGl_View | ( | const Handle< Graphic3d_StructureManager > & | theMgr, |
const Handle< OpenGl_GraphicDriver > & | theDriver, | ||
const Handle< OpenGl_Caps > & | theCaps, | ||
OpenGl_StateCounter * | theCounter | ||
) |
Constructor.
|
virtual |
Default destructor.
|
protected |
Adds OpenGL groups to ray-traced scene geometry.
|
protected |
Adds OpenGL polygon array to ray-traced scene geometry.
|
protected |
Adds OpenGL primitive array to ray-traced scene geometry.
|
protected |
Adds OpenGL quadrangle array to ray-traced scene geometry.
|
protected |
Adds OpenGL quadrangle strip array to ray-traced scene geometry.
|
protected |
Adds OpenGL structure to ray-traced scene geometry.
|
protected |
Adds OpenGL triangle array to ray-traced scene geometry.
|
protected |
Adds OpenGL triangle fan array to ray-traced scene geometry.
|
protected |
Adds OpenGL triangle strip array to ray-traced scene geometry.
|
protected |
Adds vertex indices from OpenGL primitive array to ray-traced scene geometry.
|
overridevirtual |
Insert a new top-level z layer with the given ID.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Return backfacing model used for the view.
Implements Graphic3d_CView.
|
overridevirtual |
Returns background fill color.
Implements Graphic3d_CView.
|
inline |
Returns background color.
|
inlineoverridevirtual |
Returns background image texture file path.
Implements Graphic3d_CView.
|
overridevirtual |
Returns background image fill style.
Implements Graphic3d_CView.
|
protected |
Setup default FBO.
|
protected |
Binds ray-trace textures to corresponding texture units.
|
protected |
Blit image from/to specified buffers.
|
overridevirtual |
Dump active rendering buffer into specified memory buffer. In Ray-Tracing allow to get a raw HDR buffer using Graphic3d_BT_RGB_RayTraceHdrLeft buffer type, only Left view will be dumped ignoring stereoscopic parameter.
Implements Graphic3d_CView.
|
inline |
Returns selector for BVH tree, providing a possibility to store information about current view volume and to detect which objects are overlapping it.
|
inlineoverridevirtual |
Returns camera object of the view.
Implements Graphic3d_CView.
|
inline |
Change graduated trihedron.
|
inlineoverridevirtual |
Returns list of clip planes set for the view.
Implements Graphic3d_CView.
|
protected |
Creates ray-tracing material properties.
OpenGl_View::DEFINE_STANDARD_RTTIEXT | ( | OpenGl_View | , |
Graphic3d_CView | |||
) |
Result of RT/PT shaders initialization.
|
overridevirtual |
Fill in the dictionary with diagnostic info. Should be called within rendering thread.
This API should be used only for user output or for creating automated reports. The format of returned information (e.g. key-value layout) is NOT part of this API and can be changed at any time. Thus application should not parse returned information to weed out specific parameters.
Implements Graphic3d_CView.
|
protectedvirtual |
Draw background (gradient / image)
|
overridevirtual |
Export scene into the one of the Vector graphics formats (SVG, PS, PDF...). In contrast to Bitmaps, Vector graphics is scalable (so you may got quality benefits on printing to laser printer). Notice however that results may differ a lot and do not contain some elements.
Implements Graphic3d_CView.
|
overridevirtual |
Returns pointer to an assigned framebuffer object.
Implements Graphic3d_CView.
|
overridevirtual |
Change offscreen FBO viewport.
Implements Graphic3d_CView.
|
overridevirtual |
Generate offscreen FBO in the graphic library. If not supported on hardware returns NULL.
Implements Graphic3d_CView.
|
overridevirtual |
Read offscreen FBO configuration.
Implements Graphic3d_CView.
|
overridevirtual |
Remove offscreen FBO from the graphic library.
Implements Graphic3d_CView.
|
protected |
Generates shader prefix based on current ray-tracing options.
|
inlineoverridevirtual |
Returns data of a graduated trihedron.
Implements Graphic3d_CView.
|
inline |
Returns OpenGL environment map.
|
inline |
Returns OpenGL window implementation.
|
overridevirtual |
Returns gradient background fill colors.
Implements Graphic3d_CView.
|
overridevirtual |
Displays Graduated Trihedron.
Implements Graphic3d_CView.
|
overridevirtual |
Erases Graduated Trihedron.
Implements Graphic3d_CView.
|
overridevirtual |
Sets minimum and maximum points of scene bounding box for Graduated Trihedron stored in graphic view object.
theMin | [in] the minimum point of scene. |
theMax | [in] the maximum point of scene. |
Implements Graphic3d_CView.
|
inline |
Returns true if there are immediate structures to display.
|
protected |
Creates shader program from the given vertex and fragment shaders.
|
protected |
Initializes OpenGL/GLSL shader programs.
|
protected |
Loads and compiles shader object from specified source.
|
protected |
Initializes OpenGl resource for environment texture.
|
overridevirtual |
Marks BVH tree for given priority list as dirty and marks primitive set for rebuild.
Implements Graphic3d_CView.
|
overridevirtual |
Marks BVH tree and the set of BVH primitives of correspondent priority list with id theLayerId as outdated.
Implements Graphic3d_CView.
|
overridevirtual |
Returns the bounding box of all structures displayed in the Z layer. Never fails. If Z layer does not exist nothing happens.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Returns the state of frustum culling optimization.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Returns True if the window associated to the view is defined.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Return true if view content cache has been invalidated.
Implements Graphic3d_CView.
|
inline |
Returns list of OpenGL Z-layers.
|
inlineoverridevirtual |
Returns list of lights of the view.
Implements Graphic3d_CView.
|
inline |
Returns local camera origin currently set for rendering, might be modified during rendering.
|
protected |
Redraws the window using OpenGL/GLSL ray-tracing or path tracing.
|
overridevirtual |
Redraw content of the view.
Implements Graphic3d_CView.
|
protectedvirtual |
Redraws view for the given monographic camera projection, or left/right eye.
|
overridevirtual |
Redraw immediate content of the view.
Implements Graphic3d_CView.
|
protectedvirtual |
Redraws view for the given monographic camera projection, or left/right eye.
Method will blit snapshot containing main scene (myMainSceneFbos or BackBuffer) into presentation buffer (myMainSceneFbos -> offscreen FBO or myMainSceneFbos -> BackBuffer or BackBuffer -> FrontBuffer), and redraw immediate structures on top.
When scene caching is disabled (myTransientDrawToFront, no double buffer in window, etc.), the first step (blitting) will be skipped.
void OpenGl_View::ReleaseGlResources | ( | const Handle< OpenGl_Context > & | theCtx | ) |
|
protected |
Releases OpenGL/GLSL shader programs.
|
overridevirtual |
Deletes and erases the view.
Reimplemented from Graphic3d_CView.
|
overridevirtual |
Remove a z layer with the given ID.
Implements Graphic3d_CView.
|
protectedvirtual |
Renders the graphical contents of the view into the preprepared window or framebuffer.
theProjection | [in] the projection that should be used for rendering. |
theReadDrawFbo | [in] the framebuffer for rendering graphics. |
theOitAccumFbo | [in] the framebuffer for accumulating color and coverage for OIT process. |
theToDrawImmediate | [in] the flag indicates whether the rendering performs in immediate mode. |
|
protected |
Renders frame statistics.
|
protectedvirtual |
Renders the graphical scene.
theProjection | [in] the projection that is used for rendering. |
theReadDrawFbo | [in] the framebuffer for rendering graphics. |
theOitAccumFbo | [in] the framebuffer for accumulating color and coverage for OIT process. |
theToDrawImmediate | [in] the flag indicates whether the rendering performs in immediate mode. |
|
protectedvirtual |
Render set of structures presented in the view.
theProjection | [in] the projection that is used for rendering. |
theReadDrawFbo | [in] the framebuffer for rendering graphics. |
theOitAccumFbo | [in] the framebuffer for accumulating color and coverage for OIT process. |
theToDrawImmediate | [in] the flag indicates whether the rendering performs in immediate mode. |
|
protected |
Renders trihedron.
|
overridevirtual |
Handle changing size of the rendering window.
Implements Graphic3d_CView.
|
protected |
Runs path tracing (global illumination) kernel.
|
protected |
Runs classical (Whitted-style) ray-tracing kernel.
|
protected |
Runs ray-tracing shader programs.
|
protected |
Performs safe exit when shaders initialization fails.
|
inlineoverridevirtual |
Sets backfacing model for the view.
Implements Graphic3d_CView.
|
overridevirtual |
Sets background fill color.
Implements Graphic3d_CView.
void OpenGl_View::SetBackgroundGradient | ( | const Quantity_Color & | AColor1, |
const Quantity_Color & | AColor2, | ||
const Aspect_GradientFillMethod | AType | ||
) |
void OpenGl_View::SetBackgroundGradientType | ( | const Aspect_GradientFillMethod | AType | ) |
|
overridevirtual |
Sets background image texture file path.
Implements Graphic3d_CView.
|
overridevirtual |
Sets background image fill style.
Implements Graphic3d_CView.
void OpenGl_View::SetBackgroundTextureStyle | ( | const Aspect_FillMethod | FillStyle | ) |
|
overridevirtual |
Sets camera used by the view.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Sets list of clip planes for the view.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Enables or disables frustum culling optimization.
Implements Graphic3d_CView.
|
overridevirtual |
Sets framebuffer object for offscreen rendering.
Implements Graphic3d_CView.
|
overridevirtual |
Sets gradient background fill colors.
Implements Graphic3d_CView.
|
overridevirtual |
theDrawToFrontBuffer | Advanced option to modify rendering mode:
|
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Sets list of lights for the view.
Implements Graphic3d_CView.
void OpenGl_View::SetLocalOrigin | ( | const gp_XYZ & | theOrigin | ) |
Setup local camera origin currently set for rendering.
|
overridevirtual |
Sets environment texture for the view.
Implements Graphic3d_CView.
void OpenGl_View::SetTextureEnv | ( | const Handle< OpenGl_Context > & | theCtx, |
const Handle< Graphic3d_TextureEnv > & | theTexture | ||
) |
|
protected |
Sets uniform state for the given ray-tracing shader program.
|
overridevirtual |
Creates and maps rendering window to the view.
theWindow | [in] the window. |
theContext | [in] the rendering context. If NULL the context will be created internally. |
Implements Graphic3d_CView.
|
overridevirtual |
Sets the settings for a single Z layer of specified view.
Implements Graphic3d_CView.
|
inlineoverridevirtual |
Returns environment texture set for the view.
Implements Graphic3d_CView.
|
protected |
Checks to see if the OpenGL structure is modified.
|
protected |
Unbinds ray-trace textures from corresponding texture unit.
|
protected |
Generates viewing rays for corners of screen quad. (ray tracing; path tracing for orthographic camera)
|
protected |
Generate viewing rays (path tracing, perspective camera).
|
protected |
Updates auxiliary OpenGL frame buffers.
|
protected |
Updates 3D scene geometry for ray-tracing.
|
protected |
Updates 3D scene light sources for ray-tracing.
|
protected |
Uploads ray-trace data to the GPU.
|
inlineoverridevirtual |
Returns window associated with the view.
Implements Graphic3d_CView.
|
overridevirtual |
Returns the bounding box of all structures displayed in the Z layer. If Z layer does not exist the empty box is returned.
theLayerId | layer identifier |
theCamera | camera definition |
theWindowWidth | viewport width (for applying transformation-persistence) |
theWindowHeight | viewport height (for applying transformation-persistence) |
theToIncludeAuxiliary | consider also auxiliary presentations (with infinite flag or with trihedron transformation persistence) |
Implements Graphic3d_CView.
|
overridevirtual |
Returns the maximum Z layer ID. First layer ID is Graphic3d_ZLayerId_Default, last ID is ZLayerMax().
Implements Graphic3d_CView.
|
protected |
Number of accumulated frames (for progressive rendering).
|
protected |
PrimitiveArray to TriangleSet map for scene partial update.
|
protected |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers).
sized format for color attachments
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Primitive array for gradient background.
|
protected |
Primitive array for texture background.
|
protected |
Is needed for selection of overlapping objects and storage of the current view volume.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Camera position used for projective mode.
|
protected |
Camera's screen horizontal direction used for projective mode.
|
protected |
Camera's screen size used for projective mode.
|
protected |
Camera's screen vertical direction used for projective mode.
|
protected |
Camera view direction used for projective mode.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers).
sized format for color attachments
|
protected |
sized format for depth-stencil attachments
|
protected |
selected color format configuration for OIT color attachments
|
protected |
redraw counter, for debugging
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Vertices for full-screen quad rendering.
|
protected |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers).
sized format for color attachments
|
protected |
Texture buffer of vertex normals.
|
protected |
Texture buffer of vertex UV coords.
|
protected |
Texture buffer of triangle indices.
|
protected |
Texture buffer of vertex coords.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
disable FBOs on failure
|
protected |
Additional buffers for immediate layer in stereo mode.
|
protected |
Additional buffers for transparency draw of immediate layer.
|
protected |
flag indicates that immediate mode buffer contains some data
|
protected |
Is ray-tracing geometry data valid?
|
protected |
True if warning about missing extension GL_ARB_bindless_texture has been displayed.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers).
sized format for color attachments
|
protected |
Additional buffers for transparent draw of main layer.
|
protected |
Set of IDs of non-raytracable elements (to detect updates).
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Framebuffers for OpenGL output.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
OpenGL/GLSL program for displaying texture.
|
protected |
OpenGL/GLSL ray-tracing display fragment shader.
|
protected |
OpenGL/GLSL source of RT/PT display fragment shader.
|
protected |
OpenGL/GLSL adaptive-AA shader program.
|
protected |
OpenGL/GLSL adaptive-AA fragment shader.
|
protected |
OpenGL/GLSL source of adaptive-AA fragment shader.
|
protected |
Aperture radius of camera on previous frame used for depth-of-field (path tracing)
|
protected |
Focal distance of camera on previous frame used for depth-of-field (path tracing)
|
protected |
Stored ray origins used for detection of camera movements.
|
protected |
Builder for triangle set.
|
protected |
1st framebuffer (FBO) to perform adaptive FSAA. Used in compatibility mode (no adaptive sampling).
|
protected |
2nd framebuffer (FBO) to perform adaptive FSAA. Used in compatibility mode (no adaptive sampling).
|
protected |
Render filter to filter out all raytracable structures.
|
protected |
3D scene geometry data for ray-tracing.
|
protected |
Result of RT/PT shaders initialization.
|
protected |
State of OpenGL layer list.
|
protected |
Texture buffer of light source properties.
|
protected |
Texture buffer of material properties.
|
protected |
Output textures (2 textures are used in stereo mode). Used if adaptive screen sampling is activated.
|
protected |
Compile-time ray-tracing parameters.
|
protected |
OpenGL/GLSL ray-tracing shader program.
|
protected |
Scene epsilon to prevent self-intersections.
|
protected |
Radius of bounding sphere of the scene.
|
protected |
Vertex buffer (VBO) for drawing dummy quad.
|
protected |
OpenGL/GLSL ray-tracing fragment shader.
|
protected |
OpenGL/GLSL source of ray-tracing fragment shader.
|
protected |
Texture containing offsets of sampled screen tiles (2 textures are used in stereo mode). Used if adaptive screen sampling is activated.
|
protected |
Texture containing per-tile visual error estimation (2 textures are used in stereo mode). Used if adaptive screen sampling is activated.
|
protected |
Bullard RNG to produce random sequence.
|
protected |
Texture buffer of maximum points of bottom-level BVH nodes.
|
protected |
Texture buffer of minimum points of bottom-level BVH nodes.
|
protected |
Texture buffer of data records of bottom-level BVH nodes.
|
protected |
Texture buffer of transformations of high-level BVH nodes.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
State of OpenGL structures reflected to ray-tracing.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Stores texture and its parameters for textured background.
|
protected |
Tool object for sampling screen tiles in PT mode.
|
protected |
disable MSAA after failure
|
protected |
disable OIT on failure
|
protected |
disable OIT with MSAA on failure
|
protected |
Flag to draw result image upside-down.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
Marks if environment map should be updated.
|
protected |
optimization flag for immediate mode (to render directly to the front buffer)
|
protected |
Cached locations of frequently used uniform variables.
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
main list of displayed structure, sorted by layers
|
protected |
camera modification state
|
protected |
main list of displayed structure, sorted by layers
|
staticprotected |
Default ray-tracing depth.
|
staticprotected |
Default size of traversal stack.