mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0024130: Implementing ray tracing visualization core
The purpose of this functionality is to bring a basic ray-tracing solution to existing OCCT visualization toolkit (TKOpenGL). Currently ray-tracing visualization core supports sharp shadows, specular reflections, transparency and adaptive anti-aliasing. However, the basis for all ray-tracing algorithms is versatile, allowing you to add new ray-tracing features easily (such as ambient occlusion). All ray-tracing computations are performed on the GPU using OpenCL framework, allowing real-time rendering performance. It is important to note, that real-time ray-tracing is possible using high-performance GPUs with support of OpenCL 1.1 and higher (such as NVIDIA GeForce 660 or ATI/AMD Radeon 7850). When using low-end GPUs (such as NVIDIA GeForce 640) the ray-tracing performance may slow down significantly. Therefore, even with NVIDIA GeForce 640 you can render scenes with the millions of triangles. The support of OpenCL-enabled CPUs and integrated graphics cards is not guaranteed.
This commit is contained in:
@@ -26,7 +26,9 @@ public:
|
||||
ViewAxoId, ViewRotationId, ViewResetId, ViewHlrOffId, ViewHlrOnId };
|
||||
|
||||
View( Handle(AIS_InteractiveContext) theContext,
|
||||
QWidget* parent);
|
||||
QWidget* parent,
|
||||
bool theRT = false );
|
||||
|
||||
~View();
|
||||
|
||||
virtual void init();
|
||||
@@ -35,6 +37,10 @@ public:
|
||||
void noActiveActions();
|
||||
bool isShadingMode();
|
||||
|
||||
void setRaytracedShadows( int state );
|
||||
void setRaytracedReflections( int state );
|
||||
void setRaytracedAntialiasing( int state );
|
||||
|
||||
static QString GetMessages( int type,TopAbs_ShapeEnum aSubShapeType,
|
||||
TopAbs_ShapeEnum aShapeType );
|
||||
static QString GetShapeType( TopAbs_ShapeEnum aShapeType );
|
||||
@@ -70,6 +76,7 @@ public slots:
|
||||
void hlrOff();
|
||||
void updateToggled( bool );
|
||||
void onBackground();
|
||||
void onEnvironmentMap();
|
||||
|
||||
protected:
|
||||
virtual void paintEvent( QPaintEvent* );
|
||||
@@ -107,6 +114,7 @@ private:
|
||||
const int MaxX, const int MaxY, const bool Draw );
|
||||
|
||||
private:
|
||||
bool myIsRT;
|
||||
bool myFirst;
|
||||
bool myDrawRect; // set when a rect is used for selection or magnify
|
||||
Handle(V3d_View) myView;
|
||||
@@ -119,6 +127,7 @@ private:
|
||||
Quantity_Factor myCurZoom;
|
||||
Standard_Boolean myHlrModeIsOn;
|
||||
QList<QAction*>* myViewActions;
|
||||
QMenu* myBackMenu;
|
||||
QRubberBand* myRectBand; //!< selection rectangle rubber band
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user