VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgRenderer.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 #include <vrvOsg/DtSceneRoot.h>
16 
17 #include <vrvCore/DtRenderer.h>
18 
19 #include <osg/OperationThread>
20 #include <osgUtil/RenderBin>
21 #include <osgViewer/Viewer>
22 
23 #include <vector>
24 #include <string>
25 
26 namespace osg
27 {
28  class Group;
29  class Node;
30  class Camera;
31 }
32 
33 namespace osgViewer
34 {
35  class CompositeViewer;
36 }
37 
38 namespace osgShadow
39 {
40  class ShadowedScene;
41 }
42 
43 namespace osgEarth
44 {
45  class MapNode;
46 }
47 
48 namespace makVrv
49 {
50  class DtStatsSet;
51  class DtChannel;
52  class DtOsgChannel;
53  class DtEffectManager;
54  class DtFontManager;
55  class DtOsgWindowManager;
56  class DtOsgProfilerOverlay;
57  class DtOsgPerformanceStatsOverlay;
58  class DtFastMatrixTransform;
59  class DtSceneGraph;
60  class DtOsgGlobalShaderComponent;
61  class DtOsgCullVisitor;
62  class DtShadowSettingsObject;
63  class DtTaxiwaySignManager;
64  class DtRunwayMarkingManager;
65  class DtLightIndicatorManager;
66  class DtMainThreadJobsManager;
67  class DtImGuiLoaderStatsData;
68  class DtImguiHelper;
69 
73  class DT_DLL_VRVOSG DtOsgProfiledGroup : public osg::Group
74  {
75  public:
76  DtOsgProfiledGroup(const char * stat_group_name, const char * profile_name);
77  virtual void traverse(osg::NodeVisitor& nv);
78  protected:
79  const char* myStatGroupName;
80  const char* myTraverseName;
81  };
82 
86  {
87  public:
88  DtMultiViewData(unsigned int numViews = 2);
89 
91  const osg::Vec3& cullViewOffset() const;
92 
94  void setCullViewOffset(const osg::Vec3& offset);
95 
97  const osg::Matrix& projection(unsigned int index) const;
98 
100  void setProjection(const osg::Matrix& projection, unsigned int index);
101 
103  const osg::Vec3& viewOffset(unsigned int index) const;
104 
106  void setViewOffset(const osg::Vec3& offset, unsigned int index);
107 
108  protected:
110  osg::Vec3 myCullViewOffset;
111 
113  std::vector<osg::Matrix> myProjections;
114 
116  std::vector<osg::Vec3> myViewOffsets;
117  };
118 
126  {
127  public:
128  friend class DtSceneGraph;
129  friend class DtOsgRendererCreator;
130  friend class DtSceneGraphTreeLogic;
131 
132  //Render bin definitions.
133  const static int SKY_RENDERBIN = -10;
134  const static int DEFAULT_RENDERBIN = 0;
135  const static int DEPTH_ONLY_RENDERBIN = 5;
136  const static int OCEAN_RENDERBIN = 6;
137  const static int LIGHTPOINT_RENDERBIN = 7;
138  const static int CLOUD_RENDERBIN = 8;
139  const static int OCCLUSION_RENDERBIN = 9;
140  const static int DEFAULT_TRANSPARENT_RENDERBIN = 10; // this has to be 10 otherwise everything goes south, the rest are more flexible
141  const static int COCKPIT_RENDERBIN = 25;
142 
143  //Render bin names
144  static const std::string AlphaToCoverageBin;
145  static const std::string SkyBin;
146  static const std::string DepthOnlyBin;
147  static const std::string OceanBin;
148  static const std::string LightPointBin;
149  static const std::string CloudBin;
150  static const std::string OcclusionRenderBin;
151  static const std::string CockpitBin;
152 
157  static DtOsgRenderer* findInstance(DtDe& de);
158 
160  virtual ~DtOsgRenderer();
161 
163  virtual void update();
164 
166  virtual void render();
167 
169  virtual bool viewExists() const;
170 
172  virtual void resetSceneGraph();
173 
176  virtual void removeChannelRoot(DtChannel* channel);
177 
183  virtual bool isSceneRootEmpty(const DtSceneRoot& sr);
184 
186  virtual void addNodeToRoot(osg::Node* node, const DtSceneRoot& sr, bool createOnAccess = true);
187 
189  virtual void addSceneRootToRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot, bool createOnAccess = true);
190 
192  virtual void removeNodeFromRoot(osg::Node* node, const DtSceneRoot& sr);
193 
196  virtual void removeSceneRootFromRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot);
197 
199  virtual void traverseRoot(osg::NodeVisitor& nv, const DtSceneRoot& sr);
200 
202  virtual void setSceneRootNodeMask(const DtSceneRoot& sr,
203  osg::Node::NodeMask nodemask);
204 
206  virtual osg::Node::NodeMask sceneRootNodeMask(const DtSceneRoot& sr);
207 
209  virtual osg::BoundingSphere sceneRootBound(const DtSceneRoot& sr);
210 
212  virtual osg::BoundingSphere sceneRootListBound(const DtSceneRootList& srList);
213 
215  virtual void addChannelToModelSetRoot(int modelSetId,
216  DtChannel* channel);
217 
219  virtual void removeChannelFromModelSetRoot(int modelSetId,
220  DtChannel* channel);
221 
223  virtual void addChannelToVisualizerRoot(int modelSetId,
224  int visualizerType, DtChannel* channel);
225 
227  virtual void removeChannelFromVisualizerRoot(int modelSetId,
228  int visualizerType, DtChannel* channel);
229 
231  virtual void setSceneDataToRenderRoot(osgViewer::View& view);
232 
234  virtual void addSceneToCamera(osg::Camera* camera);
235 
240  virtual void addSceneRootToNode(const DtSceneRoot& sr,
241  osg::Group* node, bool createOnAccess = true);
242 
247  virtual osg::Group* findSceneRootChildByName(const DtSceneRoot& parent,
248  const std::string& rootName);
249 
251  virtual bool matchesSceneRoot(const DtSceneRoot& sr, osg::Group* group);
252 
254  virtual void releaseResources()
255  {
256  releaseResources(0);
257  }
258 
260  virtual void releaseResources(osg::State* state);
261 
264  void setRootNode(osg::Group*, bool copyChildrenFromOldRoot);
265 
267  void resetRoot();
268 
271  void registerPagedLODs(osg::Node* node);
272 
275  void clearPagedLODs();
276 
278  virtual void setWireframeRendering(bool enabled);
279 
281  virtual void setDdsFlip(bool flip);
282 
284  virtual bool wireframeRendering() const;
285 
287  virtual void setShadowState(bool enabled);
288 
290  virtual bool shadowsEnabled() const;
291 
292  // ! Get global multiview vr mode
293  virtual bool multiViewVrEnabled() const;
294 
295  // ! Set global multiview vr mode, doesn't actually enable it, just indicates it is enabled
296  virtual void setMultiViewVrEnabled(bool enabled);
297 
298  // ! Get reference to global multiview data
299  virtual DtMultiViewData& multiViewData();
300 
302  void setTerrainScalingEnabled(bool enabled);
303 
305  void setTerrainScaleFactor(double scaleFactor);
306 
309  virtual bool makeContextCurrent();
310 
312  DtFontManager& fontManager();
313  const DtFontManager& fontManager() const;
314 
316  DtEffectManager& effectManager();
317  const DtEffectManager& effectManager() const;
318 
319  boost::signal< void(int modelSet, int visualType) > signal_visualizerRootAdded;
320  boost::signal< void(DtChannel*) > signal_channelRootAdded;
321 
322  boost::signal< void(bool active) > signal_treeProfilingChanged;
323  boost::signal< void(bool active) > signal_diguyProfilingChanged;
324 
325  boost::signal< void() > signal_shadowsRemoved;
326 
328  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents);
329 
331  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents, const osg::Quat& orientation);
332 
334  virtual void setChannelShadowState(DtOsgChannel* osgChannel, bool enable);
335 
337  virtual bool channelShadowSettings(DtOsgChannel* osgChannel, DtShadowSettingsObject** shadowSettingObject, bool* isPlanView) const;
338 
340  virtual bool channelCloudShadowMap(DtOsgChannel* osgChannel, unsigned int* textureIndex, osg::Matrix* textureViewProjMatrix,
341  unsigned int* textureIndex2, osg::Matrix* textureViewProjMatrix2) const;
342 
344  virtual bool cameraCloudShadowMap(osg::Camera* camera, unsigned int* textureIndex, osg::Matrix* textureViewProjMatrix,
345  unsigned int* textureIndex2, osg::Matrix* textureViewProjMatrix2) const;
346 
348  osg::StateSet* sgRenderRootStateSet();
349 
351  // structure to expedite culling. We need to clear any memory
352  // that this structure caches to decrement reference count of
353  // StateSets (and hence drawables, textures, etc) when scene
354  // changes completely (e.g. on post processor turned off/on)
355  // so that memory can be reclaimed
356  // This helper function accomplishes that
357  void clearStateGraphForAllChannels(void);
358 
360  virtual void addMainThreadPersistantJob(osg::Operation * opp);
361 
363  virtual void removeMainThreadPersistantJob(osg::Operation * opp);
364 
366  virtual void addMainThreadPreDrawJob(osg::Operation * opp);
367 
369  virtual void addParallelThreadCullJob(osg::Operation * opp);
370 
372  virtual void removeParallelThreadCullJob(osg::Operation* opp);
373 
375  virtual void addParallelThreadSwapBufferJob(osg::Operation * opp);
376 
378  virtual bool addMainThreadTransientJob(osg::Operation * operation, bool requiredThisFrame);
379 
381  virtual void launchPreCullTasks(DtOsgCullVisitor* cv);
382 
384  virtual void launchSwapBufferTasks();
385 
387  virtual DtMainThreadJobsManager * createJobsManager();
388 
390  virtual int alphaToCoverageRenderBin();
391 
392  public:
394  //@ {
395  static DtSceneRoot renderRoot();
396  static DtSceneRoot environmentRoot();
397  static DtSceneRoot terrainRoot();
398  static DtSceneRoot minimapTerrainRoot();
399  static DtSceneRoot minimapFallbackTerrainRoot();
400  static DtSceneRoot propRoot();
401  static DtSceneRoot oceanRoot();
402  static DtSceneRoot modelSetRoot(int modelSet)
403  {
404  return DtSceneRoot(modelSet);
405  }
406  static DtSceneRoot visualizerTypeRoot(int modelSet, int visualizerType)
407  {
408  return DtSceneRoot(modelSet, visualizerType);
409  }
410  static DtSceneRoot channelRoot(int modelSet, DtChannel* channel)
411  {
412  return DtSceneRoot(modelSet, channel);
413  }
414  //@ }
415 
416  static const std::string& shadowedSceneName(void)
417  {
418  return theShadowedSceneName;
419  }
420 
421 
424  osg::Group* sgRenderRoot();
425 
428  osg::Group* sgEnvironmentRoot();
429 
431  osg::Group* sgPropsRoot();
432 
434  osg::Group* sgTerrainRoot();
435 
437  osg::Group* sgScaledTerrainRoot();
438 
440  osg::Group* sgScaledPropsRoot();
441 
443  osg::Group* sgMinimapTerrainRoot();
444 
446  osg::Group* sgMinimapFallbackTerrainRoot();
447 
449  osg::Group* sgStatic2dDebugRoot();
450 
452  osg::Group* sgStatic3dDebugRoot();
453 
455  osg::Group* sgOceanRoot();
456 
458  virtual osg::Group* modelSetSpecificShadowRoot(int modelSet);
459 
461  virtual osgShadow::ShadowedScene*
462  modelSetSpecificShadowScene(int modelSet);
463 
468  virtual osgViewer::ViewerBase& viewer();
469 
470  // Use for the DtMainThreadJobsManager to tell the DtOsgRenderer that
471  // is has been destructed
472  virtual void clearMainThreadJobsManager();
473 
475  virtual DtImGuiLoaderStatsData* getLoaderStatsData();
476 
478  DtMainThreadJobsManager* mainThreadJobsManager();
479 
482  virtual void addIntStat(const std::string& name, int value);
485  virtual void addFloatStat(const std::string& name, float value);
486 
489  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
492  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
493 
494  virtual DtImguiHelper* imGuiHelper() { return myImGuiHelper; }
495 
497  virtual unsigned int numActiveThreads();
498 
499  protected:
500 
502  virtual void moveRootToShadowRoot(const DtSceneRoot& targetRoot,
503  osg::Group* shadowRoot, osg::Group* modelSetRoot);
504 
505 
508  DtOsgRenderer(DtDe& de);
509 
510 
516  osg::Group* sgModelSetRoot(int modelSet);
517 
523  osg::Group* sgVisualizerRoot(int modelSet, int visualizerType,
524  bool createOnAccess = true);
525 
531  osg::Group* sgChannelRoot(int modelSet,
532  DtChannel* channel, bool createOnAccess = true);
533 
535  void slot_onViewCreated();
536 
539  void slot_onViewToBeDestroyed();
540 
542  void slot_onWireframeModeChanged(bool mode);
543 
545  void slot_onDdsFlipChanged(bool flip);
546 
548  void slot_onOcclusionCullingChanged(bool enabled);
549 
551  void slot_onShadowStateChanged(bool shadowMode);
552 
554  void slot_onTerrainScalingEnabledChanged(bool enabled);
555 
557  void slot_onTerrainScaleFactorChanged(double scaleFactor);
558 
560  void slot_onCoordinateSystemChanged(const std::string& coordinateSystemType);
561 
563  void advanceTime();
564 
565  void updateSceneGraph();
566 
569  void clearEmptyWindows();
570 
575  void clearFrameBufferIfChannelChanged();
576 
579  virtual void removeShadows();
580 
582  virtual void createShadowRoots();
583 
587  virtual bool exportTerrainAndProps(const std::string&);
588 
589  virtual osg::Group* createModelSetRoot(int modelSet);
590  virtual osg::Group* createVisualizerRoot(int modelSet,
591  int visualizer);
592 
594  virtual osg::Group* createChannelRoot(int modelSet, DtChannel*);
595 
597  virtual osgShadow::ShadowedScene*
598  createModelSetSpecificShadowRootAndScene(int modelSet);
599 
600  virtual void updateTerrainScaling();
601 
602  virtual void initAerodromeManagers();
603  virtual void updateAerodrome();
604 
605  // replace currentChild in all its parents with newChild
606  void swapChildren(osg::Node* currentChild, osg::Node* newChild);
607 
610  virtual void updateRenderMap(const CullSet& cullSet);
611 
614  void postInitialize();
615 
617  void setupAtcVirtualProgram();
618 
620  virtual void processBackgroundLoaderIcoTasks();
621 
626  virtual void runMainThreadJobs(double timeBudget);
627 
628  protected:
632  static int numDatabasePagerThreads(osgViewer::CompositeViewer& viewer);
633 
635  static void plotHistogram(float frame_duration, int paging_threads, int mipthreads);
636 
637 
638  protected:
640 
643 
645 
652 
653  // This the top of the render graph
655 
658 
661 
664 
667 
668  // This goes directly below the root, and sets the environment (such as sky)
670 
671  // attached under each modelset root except the minimap modelset root, terrains are placed here
673 
674  // attached under each minimap modelset root, minimap terrains are placed here
676 
677  // attached under each minimap terrain root, terrain/props/ocean root is placed her for when
678  // a minimap terrain patch isn't included in a terrain definition
680 
681  // attached under each modelset root, props are placed here
683 
684  // root for triton
686 
687  // when terrain scaling is enabled, this is placed above the
688  // terrain root
690 
691  // when terrain scaling is enabled, this is placed above the
692  // props root
694 
695  osg::Matrix myScaleMatrix;
696 
697  // shadows and visual type roots are done one per model set
698  typedef boost::unordered_map<int, osg::ref_ptr<osg::Group> > RootMap;
699  typedef boost::unordered_map<int, osg::ref_ptr<osgShadow::ShadowedScene> > ShadowedSceneMap;
700 
701  typedef int ModelSet;
702  typedef int VisualizerType;
703 
704  // There is one group for each model set, which is either an osg::Group
705  // or a DtChannelSpecificGroup
706  typedef boost::unordered_map < ModelSet, osg::ref_ptr<osg::Group> >
708 
709  typedef boost::unordered_map < VisualizerType, osg::ref_ptr<osg::Group> >
711 
715  typedef boost::unordered_map < ModelSet, VisualizerTypeRootMap >
717 
718 
719  // This is a map of the model set roots. CWhen a channel uses a model set
720  // (or more correctly, when a channel's observer uses a model set) the
721  // channel subscribes to the appropriate one of these
723 
724  // Under each model set root is a root for each visualizer type. This map
725  // provides another map, by model set, of the roots for each visual type
727 
728  // This is a map of channel roots by model set. Each channel root is a unique
735  typedef boost::unordered_map < DtChannel*, ModelSetRootMap >
737 
741 
750 
753 
756 
760 
766 
768 
772 
774  unsigned int myActiveThreads;
775 
776  protected:
784  static std::string theShadowedSceneName;
785 
787 
789 
791  typedef std::vector<OperationRef> OperationVector;
792 
795  };
796 
800  {
801  public:
802 
804  virtual DtRenderer* create(DtDe& de);
805  };
806 }
static const std::string LightPointBin
Definition: DtOsgRenderer.h:148
static DtSceneRoot thePropRoot
Definition: DtOsgRenderer.h:782
Definition: DtTaxiwaySignManager.h:91
static const std::string SkyBin
Definition: DtOsgRenderer.h:145
osg::ref_ptr< osg::Group > myDebugRoot
Group for drawing debug graphics, cleared after each frame.
Definition: DtOsgRenderer.h:657
Contains makVrv::DtInstanceManager declaration.
Definition: DtRunwayMarkingManager.h:148
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:125
osg::ref_ptr< osgViewer::Viewer > myDefaultViewer
This viewer exists so that when there are no displays, windows, or channels, the scene can be updated...
Definition: DtOsgRenderer.h:651
RootMap myShadowRootMap
Definition: DtOsgRenderer.h:740
static const std::string OcclusionRenderBin
Definition: DtOsgRenderer.h:150
Definition: DtShadowSettingsObject.h:24
std::vector< DtSceneRoot > DtSceneRootList
A list of DtOsgRenderer::SceneRoots.
Definition: DtSceneRoot.h:117
osg::ref_ptr< osgUtil::RenderBin > mySkyBin
Definition: DtOsgRenderer.h:743
OperationVector myParallelSwapBufferJobs
Definition: DtOsgRenderer.h:794
ShadowedSceneMap myShadowedSceneMap
Definition: DtOsgRenderer.h:739
boost::unordered_map< ModelSet, osg::ref_ptr< osg::Group > > ModelSetRootMap
Definition: DtOsgRenderer.h:707
std::vector< OperationRef > OperationVector
Definition: DtOsgRenderer.h:791
bool myTerrainScaleFactorChanged
Definition: DtOsgRenderer.h:762
A light weight system for running jobs in the main thread during cull Transient Jobs run once and are...
Definition: DtMainThreadJobsManager.h:80
osg::ref_ptr< osg::Group > myRenderRoot
Definition: DtOsgRenderer.h:654
virtual void releaseResources()
Release all openGL objects in the scene graph.
Definition: DtOsgRenderer.h:254
boost::unordered_map< int, osg::ref_ptr< osgShadow::ShadowedScene > > ShadowedSceneMap
Definition: DtOsgRenderer.h:699
int VisualizerType
Definition: DtOsgRenderer.h:702
static DtSceneRoot theTerrainRoot
Definition: DtOsgRenderer.h:779
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osgUtil::RenderBin > myOceanBin
Definition: DtOsgRenderer.h:745
ChannelRootMap myChannelRootMap
Definition: DtOsgRenderer.h:738
boost::unordered_map< int, osg::ref_ptr< osg::Group > > RootMap
Definition: DtOsgRenderer.h:698
osg::ref_ptr< osgUtil::RenderBin > myDepthOnlyBin
Definition: DtOsgRenderer.h:744
Contains makVrv::DtOverlayManager class.
DtOsgWindowManager * myOsgWindowManager
Definition: DtOsgRenderer.h:644
DtMultiViewData myMultiViewData
Definition: DtOsgRenderer.h:755
osg::ref_ptr< osg::Group > myMinimapFallbackTerrainRoot
Definition: DtOsgRenderer.h:679
bool myTerrainScalingEnabled
Definition: DtOsgRenderer.h:763
osg::ref_ptr< osg::Geode > myDebugBox
Shared geometry for debug boxes.
Definition: DtOsgRenderer.h:666
Definition: DtImGuiHelper.h:28
boost::unordered_map< VisualizerType, osg::ref_ptr< osg::Group > > VisualizerTypeRootMap
Definition: DtOsgRenderer.h:710
boost::unordered_map< ModelSet, VisualizerTypeRootMap > ModelSetVisualizerTypeRootMap
Under each model set group is another channel group for each visualizer type.
Definition: DtOsgRenderer.h:716
osg::ref_ptr< osgUtil::RenderBin > myOcclusionNodeBin
Definition: DtOsgRenderer.h:749
DtTaxiwaySignManager * myTaxiwaySignManager
Definition: DtOsgRenderer.h:757
DtRunwayMarkingManager * myRunwayMarkingManager
Definition: DtOsgRenderer.h:758
osg::ref_ptr< DtOsgGlobalShaderComponent > myGlobalShaderComponent
Definition: DtOsgRenderer.h:788
osg::ref_ptr< DtFastMatrixTransform > myScaledPropsRoot
Definition: DtOsgRenderer.h:693
std::vector< osg::Vec3 > myViewOffsets
offsets from the main camera for each view
Definition: DtOsgRenderer.h:116
std::vector< osg::Matrix > myProjections
projection matrix for each view
Definition: DtOsgRenderer.h:113
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:75
const char * myStatGroupName
Definition: DtOsgRenderer.h:79
bool myInitializedInRender
Definition: DtOsgRenderer.h:773
bool myWireframeOn
Definition: DtOsgRenderer.h:751
Manages instances of fonts, the font will be kept in memory unless the manager is cleared...
Definition: DtFontManager.h:28
ModelSetVisualizerTypeRootMap myVisualizerRootMap
Definition: DtOsgRenderer.h:726
osg::ref_ptr< osgUtil::RenderBin > myAlphaToCoverageBin
Definition: DtOsgRenderer.h:742
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:36
Definition: DtLightIndicatorManager.h:76
static DtSceneRoot theMinimapFallbackTerrainRoot
Definition: DtOsgRenderer.h:781
unsigned int myActiveThreads
Definition: DtOsgRenderer.h:774
DtOsgCullVisitor will inspect the camera to see which visual mode is active.
Definition: DtOsgCullVisitor.h:25
static DtSceneRoot theEnvironmentRoot
Definition: DtOsgRenderer.h:778
static const std::string OceanBin
Definition: DtOsgRenderer.h:147
The abstract Channel Class.
Definition: DtChannel.h:29
static DtSceneRoot theRenderRoot
Definition: DtOsgRenderer.h:777
class DtImguiHelper * myImGuiHelper
Definition: DtOsgRenderer.h:786
boost::unordered_map< DtChannel *, ModelSetRootMap > ChannelRootMap
DtChannelSpecificGroup that contains only the channel it represents.
Definition: DtOsgRenderer.h:736
Abstract index into the scene graph.
Definition: DtSceneRoot.h:19
bool myTerrainScalingEnabledChanged
Definition: DtOsgRenderer.h:764
boost::signal< void(int modelSet, int visualType) > signal_visualizerRootAdded
Definition: DtOsgRenderer.h:319
osg::Vec3 myCullViewOffset
view space offset for the camera when culling so the main camera frustum encapsulates the multiview f...
Definition: DtOsgRenderer.h:110
bool myReaddJobSystem
Definition: DtOsgRenderer.h:771
static const std::string & shadowedSceneName(void)
Definition: DtOsgRenderer.h:416
boost::signal< void(bool active) > signal_treeProfilingChanged
Definition: DtOsgRenderer.h:322
boost::signal< void() > signal_shadowsRemoved
Definition: DtOsgRenderer.h:325
osg::ref_ptr< osg::Group > myTerrainRoot
Definition: DtOsgRenderer.h:672
static DtSceneRoot modelSetRoot(int modelSet)
Definition: DtOsgRenderer.h:402
static DtSceneRoot visualizerTypeRoot(int modelSet, int visualizerType)
Definition: DtOsgRenderer.h:406
DtMainThreadJobsManager * myMainThreadJobsManager
system for doing work during cull
Definition: DtOsgRenderer.h:770
static DtSceneRoot theOceanRoot
Definition: DtOsgRenderer.h:783
boost::signal< void(DtChannel *) > signal_channelRootAdded
Definition: DtOsgRenderer.h:320
Logic for scene graph tree display widget.
Definition: DtSceneGraphTreeLogic.h:256
osg::ref_ptr< osg::Group > myStatic3dDebugRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:663
osg::ref_ptr< osgUtil::RenderBin > myCockpitBin
Definition: DtOsgRenderer.h:748
static const std::string AlphaToCoverageBin
Definition: DtOsgRenderer.h:144
The effect manager provides a way of creating and sharing effects.
Definition: DtEffectManager.h:21
Abstract creator base class.
Definition: DtOsgRenderer.h:799
simple class to encapsulate the different views in a multiview vr setup
Definition: DtOsgRenderer.h:85
osg::Matrix myScaleMatrix
Definition: DtOsgRenderer.h:695
osg::ref_ptr< osgUtil::RenderBin > myLightPointBin
Definition: DtOsgRenderer.h:746
Owns and manages OpenSceneGraph windows.
Definition: DtOsgWindowManager.h:35
DtLightIndicatorManager * myLightIndicatorManager
Definition: DtOsgRenderer.h:759
The DtRenderer is the component responsible for rendering 3D images onto the screen.
Definition: DtRenderer.h:43
double myTerrainScaleFactor
Definition: DtOsgRenderer.h:761
OperationVector myParallelCullJobs
Definition: DtOsgRenderer.h:793
osg::ref_ptr< osg::Group > myEnvironmentRoot
Definition: DtOsgRenderer.h:669
static DtSceneRoot theMinimapTerrainRoot
Definition: DtOsgRenderer.h:780
static const std::string DepthOnlyBin
Definition: DtOsgRenderer.h:146
Contains makVrv::DtSceneRoot class.
Abstract creator base class.
Definition: DtRenderer.h:153
DtFontManager * myFontManager
Definition: DtOsgRenderer.h:641
osg::ref_ptr< osg::Operation > OperationRef
Definition: DtOsgRenderer.h:790
int ModelSet
Definition: DtOsgRenderer.h:701
bool myMultiViewVrEnabled
Definition: DtOsgRenderer.h:754
osg::ref_ptr< osg::Group > myMinimapTerrainRoot
Definition: DtOsgRenderer.h:675
static DtSceneRoot channelRoot(int modelSet, DtChannel *channel)
Definition: DtOsgRenderer.h:410
osg::ref_ptr< osg::Group > myStatic2dDebugRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:660
const char int mode
Definition: ioapi.h:38
bool myResourcesReleased
Definition: DtOsgRenderer.h:765
ModelSetRootMap myModelSetMap
Definition: DtOsgRenderer.h:722
static const std::string CloudBin
Definition: DtOsgRenderer.h:149
osg::ref_ptr< osg::Group > myOceanRoot
Definition: DtOsgRenderer.h:685
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::ref_ptr< DtFastMatrixTransform > myScaledTerrainRoot
Definition: DtOsgRenderer.h:689
virtual DtImguiHelper * imGuiHelper()
Definition: DtOsgRenderer.h:494
static std::string theShadowedSceneName
Definition: DtOsgRenderer.h:784
voidpf uLong offset
Definition: ioapi.h:42
DtEffectManager * myEffectManager
Definition: DtOsgRenderer.h:642
osg::ref_ptr< osg::Group > myPropsRoot
Definition: DtOsgRenderer.h:682
simple class that allows a group to get automatically profiled with both DtPROFILE markers and concur...
Definition: DtOsgRenderer.h:73
const char * myTraverseName
Definition: DtOsgRenderer.h:80
std::vector< DtUniqueID > CullSet
Definition: DtInstancedCullSet.h:16
static const std::string CockpitBin
Definition: DtOsgRenderer.h:151
int myAlphaToCoverageRenderBin
Definition: DtOsgRenderer.h:767
osg::ref_ptr< osgUtil::RenderBin > myCloudBin
Definition: DtOsgRenderer.h:747
bool myShadowsEnabled
Definition: DtOsgRenderer.h:752
Abstraction over the OSG scene graph.
Definition: DtSceneGraph.h:22
DtSceneGraph * mySceneGraph
Definition: DtOsgRenderer.h:639
Contains the DtOsgGlobalShaderComponent class.
boost::signal< void(bool active) > signal_diguyProfilingChanged
Definition: DtOsgRenderer.h:323

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)