VR-Forces 4.10 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) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 #include <vrvOsg/DtSceneRoot.h>
15 #include <vrvOsg/DtMultiViewData.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 
83 
91  {
92  public:
93  friend class DtSceneGraph;
94  friend class DtOsgRendererCreator;
95  friend class DtSceneGraphTreeLogic;
96 
97  //Render bin definitions.
98  const static int SKY_RENDERBIN = -10;
99  const static int DEFAULT_RENDERBIN = 0;
100  const static int DEPTH_ONLY_RENDERBIN = 5;
101  const static int OCEAN_RENDERBIN = 6;
102  const static int LIGHTPOINT_RENDERBIN = 7;
103  const static int CLOUD_RENDERBIN = 8;
104  const static int OCCLUSION_RENDERBIN = 9;
105  const static int DEFAULT_TRANSPARENT_RENDERBIN = 10; // this has to be 10 otherwise everything goes south, the rest are more flexible
106  const static int COCKPIT_RENDERBIN = 25;
107 
108  //Render bin names
109  static const std::string AlphaToCoverageBin;
110  static const std::string SkyBin;
111  static const std::string DepthOnlyBin;
112  static const std::string OceanBin;
113  static const std::string LightPointBin;
114  static const std::string CloudBin;
115  static const std::string OcclusionRenderBin;
116  static const std::string CockpitBin;
117 
122  static DtOsgRenderer* findInstance(DtDe& de);
123 
125  virtual ~DtOsgRenderer();
126 
129  virtual void cleanup() override;
130 
132  virtual void update();
133 
135  virtual void render();
136 
138  virtual bool viewExists() const;
139 
141  virtual void resetSceneGraph();
142 
145  virtual void removeChannelRoot(DtChannel* channel);
146 
152  virtual bool isSceneRootEmpty(const DtSceneRoot& sr);
153 
155  virtual void addNodeToRoot(osg::Node* node, const DtSceneRoot& sr, bool createOnAccess = true);
156 
158  virtual void addSceneRootToRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot, bool createOnAccess = true);
159 
161  virtual void removeNodeFromRoot(osg::Node* node, const DtSceneRoot& sr);
162 
165  virtual void removeSceneRootFromRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot);
166 
168  virtual void traverseRoot(osg::NodeVisitor& nv, const DtSceneRoot& sr);
169 
171  virtual void setSceneRootNodeMask(const DtSceneRoot& sr,
172  osg::Node::NodeMask nodemask);
173 
175  virtual osg::Node::NodeMask sceneRootNodeMask(const DtSceneRoot& sr);
176 
178  virtual osg::BoundingSphere sceneRootBound(const DtSceneRoot& sr);
179 
181  virtual osg::BoundingSphere sceneRootListBound(const DtSceneRootList& srList);
182 
184  virtual void addChannelToModelSetRoot(int modelSetId,
185  DtChannel* channel);
186 
188  virtual void removeChannelFromModelSetRoot(int modelSetId,
189  DtChannel* channel);
190 
192  virtual void addChannelToVisualizerRoot(int modelSetId,
193  int visualizerType, DtChannel* channel);
194 
196  virtual void removeChannelFromVisualizerRoot(int modelSetId,
197  int visualizerType, DtChannel* channel);
198 
200  virtual void setSceneDataToRenderRoot(osgViewer::View& view);
201 
203  virtual void addSceneToCamera(osg::Camera* camera);
204 
209  virtual void addSceneRootToNode(const DtSceneRoot& sr,
210  osg::Group* node, bool createOnAccess = true);
211 
216  virtual osg::Group* findSceneRootChildByName(const DtSceneRoot& parent,
217  const std::string& rootName);
218 
220  virtual bool matchesSceneRoot(const DtSceneRoot& sr, osg::Group* group);
221 
223  virtual void releaseResources()
224  {
225  releaseResources(0);
226  }
227 
229  virtual void releaseResources(osg::State* state);
230 
233  void setRootNode(osg::Group*, bool copyChildrenFromOldRoot);
234 
236  void resetRoot();
237 
240  void registerPagedLODs(osg::Node* node);
241 
244  void clearPagedLODs();
245 
247  virtual void setWireframeRendering(bool enabled);
248 
250  virtual void setDdsFlip(bool flip);
251 
253  virtual bool wireframeRendering() const;
254 
256  virtual void setShadowState(bool enabled);
257 
259  virtual bool shadowsEnabled() const;
260 
261  // ! Get global multiview vr mode
262  virtual bool multiViewVrEnabled() const;
263 
264  // ! Set global multiview vr mode, doesn't actually enable it, just indicates it is enabled
265  virtual void setMultiViewVrEnabled(bool enabled);
266 
267  // ! Get reference to multiview data for specific camera
268  virtual DtMultiViewData& getOrCreateMultiViewData(osg::Camera* camera);
269 
271  void setTerrainScalingEnabled(bool enabled);
272 
274  void setTerrainScaleFactor(double scaleFactor);
275 
278  virtual bool makeContextCurrent();
279 
281  DtFontManager& fontManager();
282  const DtFontManager& fontManager() const;
283 
285  DtEffectManager& effectManager();
286  const DtEffectManager& effectManager() const;
287 
288  boost::signalslib::signal< void(int modelSet, int visualType) > signal_visualizerRootAdded;
289  boost::signalslib::signal< void(DtChannel*) > signal_channelRootAdded;
290 
291  boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged;
292  boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged;
293 
294  boost::signalslib::signal< void() > signal_shadowsRemoved;
295 
297  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents);
298 
300  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents, const osg::Quat& orientation);
301 
303  virtual void setChannelShadowState(DtOsgChannel* osgChannel, bool enable);
304 
306  virtual bool channelShadowSettings(DtOsgChannel* osgChannel, DtShadowSettingsObject** shadowSettingObject, bool* isPlanView) const;
307 
309  virtual bool channelCloudShadowMap(DtOsgChannel* osgChannel, unsigned int* textureIndex, osg::Matrix* textureViewProjMatrix,
310  unsigned int* textureIndex2, osg::Matrix* textureViewProjMatrix2) const;
311 
313  virtual bool cameraCloudShadowMap(osg::Camera* camera, unsigned int* textureIndex, osg::Matrix* textureViewProjMatrix,
314  unsigned int* textureIndex2, osg::Matrix* textureViewProjMatrix2) const;
315 
317  osg::StateSet* sgRenderRootStateSet();
318 
320  // structure to expedite culling. We need to clear any memory
321  // that this structure caches to decrement reference count of
322  // StateSets (and hence drawables, textures, etc) when scene
323  // changes completely (e.g. on post processor turned off/on)
324  // so that memory can be reclaimed
325  // This helper function accomplishes that
326  void clearStateGraphForAllChannels(void);
327 
329  virtual void addMainThreadPersistantJob(osg::Operation * opp);
330 
332  virtual void removeMainThreadPersistantJob(osg::Operation * opp);
333 
335  virtual void addMainThreadPreDrawJob(osg::Operation * opp);
336 
338  virtual void addParallelThreadCullJob(osg::Operation * opp);
339 
341  virtual void removeParallelThreadCullJob(osg::Operation* opp);
342 
344  virtual void addParallelThreadSwapBufferJob(osg::Operation * opp);
345 
347  virtual bool addMainThreadTransientJob(osg::Operation * operation, bool requiredThisFrame);
348 
350  virtual void launchPreCullTasks(DtOsgCullVisitor* cv);
351 
353  virtual void launchSwapBufferTasks();
354 
356  virtual DtMainThreadJobsManager * createJobsManager();
357 
359  virtual int alphaToCoverageRenderBin();
360 
361  public:
363  //@ {
364  static DtSceneRoot renderRoot();
365  static DtSceneRoot environmentRoot();
366  static DtSceneRoot terrainRoot();
367  static DtSceneRoot minimapTerrainRoot();
368  static DtSceneRoot minimapFallbackTerrainRoot();
369  static DtSceneRoot propRoot();
370  static DtSceneRoot intersectOnlyPropRoot();
371  static DtSceneRoot oceanRoot();
372  static DtSceneRoot intersectOnlyRoot(int modelSet)
373  {
375  }
376  static DtSceneRoot normalizedOverlayRoot();
377  static DtSceneRoot modelSetRoot(int modelSet)
378  {
379  return DtSceneRoot(modelSet);
380  }
381  static DtSceneRoot visualizerTypeRoot(int modelSet, int visualizerType)
382  {
383  return DtSceneRoot(modelSet, visualizerType);
384  }
385  static DtSceneRoot channelRoot(int modelSet, DtChannel* channel)
386  {
387  return DtSceneRoot(modelSet, channel);
388  }
389  //@ }
390 
391  static const std::string& shadowedSceneName(void)
392  {
393  return theShadowedSceneName;
394  }
395 
396 
399  osg::Group* sgRenderRoot();
400 
403  osg::Group* sgEnvironmentRoot();
404 
406  osg::Group* sgPropsRoot();
407 
409  osg::Group* sgIntersectoOnlyPropsRoot();
410 
412  osg::Group* sgTerrainRoot();
413 
415  osg::Group* sgScaledTerrainRoot();
416 
418  osg::Group* sgScaledPropsRoot();
419 
421  osg::Group* sgMinimapTerrainRoot();
422 
424  osg::Group* sgMinimapFallbackTerrainRoot(bool createOnAccess);
425 
427  osg::Group* sgNormalizedOverlayRoot();
428 
430  osg::Group* sgStatic3dDebugRoot();
431 
433  osg::Group* sgOceanRoot();
434 
436  virtual osg::Group* modelSetSpecificShadowRoot(int modelSet);
437 
439  virtual osgShadow::ShadowedScene*
440  modelSetSpecificShadowScene(int modelSet);
441 
444  osg::Group* sgIntersectOnlyRoot(int modelSet);
445 
450  virtual osgViewer::ViewerBase& viewer();
451 
452  // Use for the DtMainThreadJobsManager to tell the DtOsgRenderer that
453  // is has been destructed
454  virtual void clearMainThreadJobsManager();
455 
457  virtual DtImGuiLoaderStatsData* getLoaderStatsData();
458 
460  DtMainThreadJobsManager* mainThreadJobsManager();
461 
464  virtual void addIntStat(const std::string& name, int value);
467  virtual void addFloatStat(const std::string& name, float value);
468 
471  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
474  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
475 
476  virtual DtImguiHelper* imGuiHelper() { return myImGuiHelper; }
477 
479  virtual unsigned int numActiveThreads();
480 
482  void advanceTime();
483 
484  protected:
485 
487  virtual void moveRootToShadowRoot(const DtSceneRoot& targetRoot,
488  osg::Group* shadowRoot, osg::Group* modelSetRoot);
489 
490 
493  DtOsgRenderer(DtDe& de);
494 
495 
501  osg::Group* sgModelSetRoot(int modelSet);
502 
508  osg::Group* sgVisualizerRoot(int modelSet, int visualizerType,
509  bool createOnAccess = true);
510 
516  osg::Group* sgChannelRoot(int modelSet,
517  DtChannel* channel, bool createOnAccess = true);
518 
520  void slot_onViewCreated();
521 
524  void slot_onViewToBeDestroyed();
525 
527  void slot_onWireframeModeChanged(bool mode);
528 
530  void slot_onDdsFlipChanged(bool flip);
531 
533  void slot_onOcclusionCullingChanged(bool enabled);
534 
536  void slot_onShadowStateChanged(bool shadowMode);
537 
539  void slot_onTerrainScalingEnabledChanged(bool enabled);
540 
542  void slot_onTerrainScaleFactorChanged(double scaleFactor);
543 
545  void slot_onCoordinateSystemChanged(const std::string& coordinateSystemType);
546 
547  void updateSceneGraph();
548 
551  void clearEmptyWindows();
552 
557  void clearFrameBufferIfChannelChanged();
558 
561  virtual void removeShadows();
562 
564  virtual void createShadowRoots();
565 
569  virtual bool exportTerrainAndProps(const std::string&);
570 
571  virtual osg::Group* createModelSetRoot(int modelSet);
572  virtual osg::Group* createVisualizerRoot(int modelSet,
573  int visualizer);
574 
576  virtual osg::Group* createChannelRoot(int modelSet, DtChannel*);
577 
579  virtual osgShadow::ShadowedScene*
580  createModelSetSpecificShadowRootAndScene(int modelSet);
581 
582  virtual void updateTerrainScaling();
583 
584  virtual void initAerodromeManagers();
585  virtual void updateAerodrome();
586 
587  // replace currentChild in all its parents with newChild
588  void swapChildren(osg::Node* currentChild, osg::Node* newChild);
589 
592  void postInitialize();
593 
595  void setupAtcVirtualProgram();
596 
598  virtual void processBackgroundLoaderIcoTasks();
599 
604  virtual void runMainThreadJobs(double timeBudget);
605 
606  protected:
610  static int numDatabasePagerThreads(osgViewer::CompositeViewer& viewer);
611 
613  static void plotHistogram(float frame_duration, int paging_threads, int mipthreads);
614 
615 
616  protected:
618 
621 
623 
630 
631  // This the top of the render graph
633 
636 
639 
642 
645 
646  // This goes directly below the root, and sets the environment (such as sky)
648 
649  // attached under each modelset root except the minimap modelset root, terrains are placed here
651 
652  // attached under each minimap modelset root, minimap terrains are placed here
654 
655  // attached under each minimap terrain root, terrain/props/ocean root is placed her for when
656  // a minimap terrain patch isn't included in a terrain definition
658 
659  // attached under each modelset root, props are placed here
661 
662  //root for props that should only be intersected and not rendered (indirected)
664 
665  // root for triton
667 
668  // when terrain scaling is enabled, this is placed above the
669  // terrain root
671 
672  // when terrain scaling is enabled, this is placed above the
673  // props root
675 
676  osg::Matrix myScaleMatrix;
677 
678  // shadows and visual type roots are done one per model set
679  typedef boost::unordered_map<int, osg::ref_ptr<osg::Group> > RootMap;
680  typedef boost::unordered_map<int, osg::ref_ptr<osgShadow::ShadowedScene> > ShadowedSceneMap;
681 
682  typedef int ModelSet;
683  typedef int VisualizerType;
684 
685  // There is one group for each model set, which is either an osg::Group
686  // or a DtChannelSpecificGroup
687  typedef boost::unordered_map < ModelSet, osg::ref_ptr<osg::Group> >
689 
690  typedef boost::unordered_map < VisualizerType, osg::ref_ptr<osg::Group> >
692 
696  typedef boost::unordered_map < ModelSet, VisualizerTypeRootMap >
698 
699 
700  // This is a map of the model set roots. CWhen a channel uses a model set
701  // (or more correctly, when a channel's observer uses a model set) the
702  // channel subscribes to the appropriate one of these
704 
705  //Map to roots that are intersect only on a per model set basis
707 
708 
709  // Under each model set root is a root for each visualizer type. This map
710  // provides another map, by model set, of the roots for each visual type
712 
713  // This is a map of channel roots by model set. Each channel root is a unique
720  typedef boost::unordered_map < DtChannel*, ModelSetRootMap >
722 
726 
735 
738 
740  std::map<osg::Camera*, DtMultiViewData*> myMultiViewData;
741 
745 
751 
753 
757 
759  unsigned int myActiveThreads;
760 
761  protected:
771 
772  static std::string theShadowedSceneName;
773 
775 
777 
779  typedef std::vector<OperationRef> OperationVector;
780 
783  };
784 
788  {
789  public:
790 
792  virtual DtRenderer* create(DtDe& de);
793  };
794 }
static const std::string LightPointBin
Definition: DtOsgRenderer.h:113
ModelSetRootMap myIntersectOnlyRootMap
Definition: DtOsgRenderer.h:706
static DtSceneRoot thePropRoot
Definition: DtOsgRenderer.h:767
Definition: DtTaxiwaySignManager.h:91
static const std::string SkyBin
Definition: DtOsgRenderer.h:110
osg::ref_ptr< osg::Group > myDebugRoot
Group for drawing debug graphics, cleared after each frame.
Definition: DtOsgRenderer.h:635
Definition: DtRunwayMarkingManager.h:148
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:90
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:629
boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged
Definition: DtOsgRenderer.h:291
RootMap myShadowRootMap
Definition: DtOsgRenderer.h:725
static const std::string OcclusionRenderBin
Definition: DtOsgRenderer.h:115
Definition: DtShadowSettingsObject.h:24
static DtSceneRoot theNormalizedOverlayRoot
Definition: DtOsgRenderer.h:770
std::vector< DtSceneRoot > DtSceneRootList
A list of DtOsgRenderer::SceneRoots.
Definition: DtSceneRoot.h:133
osg::ref_ptr< osgUtil::RenderBin > mySkyBin
Definition: DtOsgRenderer.h:728
OperationVector myParallelSwapBufferJobs
Definition: DtOsgRenderer.h:782
ShadowedSceneMap myShadowedSceneMap
Definition: DtOsgRenderer.h:724
boost::unordered_map< ModelSet, osg::ref_ptr< osg::Group > > ModelSetRootMap
Definition: DtOsgRenderer.h:688
std::vector< OperationRef > OperationVector
Definition: DtOsgRenderer.h:779
bool myTerrainScaleFactorChanged
Definition: DtOsgRenderer.h:747
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:632
virtual void releaseResources()
Release all openGL objects in the scene graph.
Definition: DtOsgRenderer.h:223
boost::unordered_map< int, osg::ref_ptr< osgShadow::ShadowedScene > > ShadowedSceneMap
Definition: DtOsgRenderer.h:680
int VisualizerType
Definition: DtOsgRenderer.h:683
static DtSceneRoot theTerrainRoot
Definition: DtOsgRenderer.h:764
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osgUtil::RenderBin > myOceanBin
Definition: DtOsgRenderer.h:730
ChannelRootMap myChannelRootMap
Definition: DtOsgRenderer.h:723
boost::unordered_map< int, osg::ref_ptr< osg::Group > > RootMap
Definition: DtOsgRenderer.h:679
osg::ref_ptr< osgUtil::RenderBin > myDepthOnlyBin
Definition: DtOsgRenderer.h:729
Contains makVrv::DtOverlayManager class.
DtOsgWindowManager * myOsgWindowManager
Definition: DtOsgRenderer.h:622
boost::signalslib::signal< void() > signal_shadowsRemoved
Definition: DtOsgRenderer.h:294
osg::ref_ptr< osg::Group > myMinimapFallbackTerrainRoot
Definition: DtOsgRenderer.h:657
bool myTerrainScalingEnabled
Definition: DtOsgRenderer.h:748
osg::ref_ptr< osg::Geode > myDebugBox
Shared geometry for debug boxes.
Definition: DtOsgRenderer.h:644
Definition: DtImGuiHelper.h:28
boost::unordered_map< VisualizerType, osg::ref_ptr< osg::Group > > VisualizerTypeRootMap
Definition: DtOsgRenderer.h:691
boost::unordered_map< ModelSet, VisualizerTypeRootMap > ModelSetVisualizerTypeRootMap
Under each model set group is another channel group for each visualizer type.
Definition: DtOsgRenderer.h:697
osg::ref_ptr< osgUtil::RenderBin > myOcclusionNodeBin
Definition: DtOsgRenderer.h:734
DtTaxiwaySignManager * myTaxiwaySignManager
Definition: DtOsgRenderer.h:742
DtRunwayMarkingManager * myRunwayMarkingManager
Definition: DtOsgRenderer.h:743
osg::ref_ptr< DtOsgGlobalShaderComponent > myGlobalShaderComponent
Definition: DtOsgRenderer.h:776
osg::ref_ptr< DtFastMatrixTransform > myScaledPropsRoot
Definition: DtOsgRenderer.h:674
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:77
const char * myStatGroupName
Definition: DtOsgRenderer.h:79
bool myInitializedInRender
Definition: DtOsgRenderer.h:758
bool myWireframeOn
Definition: DtOsgRenderer.h:736
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:711
osg::ref_ptr< osgUtil::RenderBin > myAlphaToCoverageBin
Definition: DtOsgRenderer.h:727
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:42
Definition: DtLightIndicatorManager.h:76
static DtSceneRoot theMinimapFallbackTerrainRoot
Definition: DtOsgRenderer.h:766
unsigned int myActiveThreads
Definition: DtOsgRenderer.h:759
DtOsgCullVisitor will inspect the camera to see which visual mode is active.
Definition: DtOsgCullVisitor.h:25
static DtSceneRoot theEnvironmentRoot
Definition: DtOsgRenderer.h:763
static const std::string OceanBin
Definition: DtOsgRenderer.h:112
The abstract Channel Class.
Definition: DtChannel.h:30
static DtSceneRoot theRenderRoot
Definition: DtOsgRenderer.h:762
class DtImguiHelper * myImGuiHelper
Definition: DtOsgRenderer.h:774
boost::unordered_map< DtChannel *, ModelSetRootMap > ChannelRootMap
DtChannelSpecificGroup that contains only the channel it represents.
Definition: DtOsgRenderer.h:721
Abstract index into the scene graph.
Definition: DtSceneRoot.h:22
bool myTerrainScalingEnabledChanged
Definition: DtOsgRenderer.h:749
bool myReaddJobSystem
Definition: DtOsgRenderer.h:756
static const std::string & shadowedSceneName(void)
Definition: DtOsgRenderer.h:391
osg::ref_ptr< osg::Group > myTerrainRoot
Definition: DtOsgRenderer.h:650
static DtSceneRoot modelSetRoot(int modelSet)
Definition: DtOsgRenderer.h:377
boost::signalslib::signal< void(DtChannel *) > signal_channelRootAdded
Definition: DtOsgRenderer.h:289
static DtSceneRoot visualizerTypeRoot(int modelSet, int visualizerType)
Definition: DtOsgRenderer.h:381
DtMainThreadJobsManager * myMainThreadJobsManager
system for doing work during cull
Definition: DtOsgRenderer.h:755
static DtSceneRoot theOceanRoot
Definition: DtOsgRenderer.h:768
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:641
osg::ref_ptr< osgUtil::RenderBin > myCockpitBin
Definition: DtOsgRenderer.h:733
static const std::string AlphaToCoverageBin
Definition: DtOsgRenderer.h:109
The effect manager provides a way of creating and sharing effects.
Definition: DtEffectManager.h:18
static DtSceneRoot theIntersectOnlyPropRoot
Definition: DtOsgRenderer.h:769
Abstract creator base class.
Definition: DtOsgRenderer.h:787
std::map< osg::Camera *, DtMultiViewData * > myMultiViewData
Definition: DtOsgRenderer.h:740
simple class to encapsulate the different views in a multiview vr setup
Definition: DtMultiViewData.h:23
osg::Matrix myScaleMatrix
Definition: DtOsgRenderer.h:676
osg::ref_ptr< osgUtil::RenderBin > myLightPointBin
Definition: DtOsgRenderer.h:731
Owns and manages OpenSceneGraph windows.
Definition: DtOsgWindowManager.h:32
DtLightIndicatorManager * myLightIndicatorManager
Definition: DtOsgRenderer.h:744
The DtRenderer is the component responsible for rendering 3D images onto the screen.
Definition: DtRenderer.h:43
double myTerrainScaleFactor
Definition: DtOsgRenderer.h:746
OperationVector myParallelCullJobs
Definition: DtOsgRenderer.h:781
osg::ref_ptr< osg::Group > myEnvironmentRoot
Definition: DtOsgRenderer.h:647
static DtSceneRoot theMinimapTerrainRoot
Definition: DtOsgRenderer.h:765
static const std::string DepthOnlyBin
Definition: DtOsgRenderer.h:111
Contains makVrv::DtSceneRoot class.
Abstract creator base class.
Definition: DtRenderer.h:159
DtFontManager * myFontManager
Definition: DtOsgRenderer.h:619
osg::ref_ptr< osg::Operation > OperationRef
Definition: DtOsgRenderer.h:778
int ModelSet
Definition: DtOsgRenderer.h:682
bool myMultiViewVrEnabled
Definition: DtOsgRenderer.h:739
osg::ref_ptr< osg::Group > myMinimapTerrainRoot
Definition: DtOsgRenderer.h:653
static DtSceneRoot channelRoot(int modelSet, DtChannel *channel)
Definition: DtOsgRenderer.h:385
boost::signalslib::signal< void(int modelSet, int visualType) > signal_visualizerRootAdded
Definition: DtOsgRenderer.h:288
const char int mode
Definition: ioapi.h:38
bool myResourcesReleased
Definition: DtOsgRenderer.h:750
boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged
Definition: DtOsgRenderer.h:292
ModelSetRootMap myModelSetMap
Definition: DtOsgRenderer.h:703
static const std::string CloudBin
Definition: DtOsgRenderer.h:114
osg::ref_ptr< osg::Group > myOceanRoot
Definition: DtOsgRenderer.h:666
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:670
virtual DtImguiHelper * imGuiHelper()
Definition: DtOsgRenderer.h:476
static std::string theShadowedSceneName
Definition: DtOsgRenderer.h:772
DtEffectManager * myEffectManager
Definition: DtOsgRenderer.h:620
osg::ref_ptr< osg::Group > myPropsRoot
Definition: DtOsgRenderer.h:660
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
osg::ref_ptr< osg::Group > myIntersectOnlyPropsRoot
Definition: DtOsgRenderer.h:663
static DtSceneRoot intersectOnlyRoot(int modelSet)
Definition: DtOsgRenderer.h:372
static const std::string CockpitBin
Definition: DtOsgRenderer.h:116
int myAlphaToCoverageRenderBin
Definition: DtOsgRenderer.h:752
osg::ref_ptr< osgUtil::RenderBin > myCloudBin
Definition: DtOsgRenderer.h:732
osg::ref_ptr< osg::Group > myNormalizedOverlayRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:638
bool myShadowsEnabled
Definition: DtOsgRenderer.h:737
Abstraction over the OSG scene graph.
Definition: DtSceneGraph.h:22
DtSceneGraph * mySceneGraph
Definition: DtOsgRenderer.h:617
Contains the DtOsgGlobalShaderComponent class.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)