VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtFxOglParticleSystemRenderer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <diguyParticleSystem.h>
12 
13 #include <vrvFx/vrvFx.h>
15 
16 namespace osg
17 {
18  class Camera;
19  class RenderInfo;
20 }
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtFxParticleDesc;
26  struct DtFxParticleVertex;
27 
31  {
32  // number of scratch buffers to support
33  static const int BUFFER_COUNT = 6; // 1 main, 1 shadow map, 2 copying to driver, 2 rendering
34 
35  public:
38 
41 
43  virtual void releaseGLObjects(osg::State* state);
44 
46  virtual void setup_particle_rendering(int render_pass_flags) { ; }
47 
50  virtual void setup_particle_rendering(int render_pass_flags, osg::RenderInfo& renderInfo);
51 
53  virtual void end_particle_rendering(int render_pass_flags);
54 
55  // vrv helper
56  virtual void updateProgramCache(osg::RenderInfo &renderInfo);
57 
59  virtual DtFxParticleVertex* getMemoryPointer(int datasize);
60 
62  virtual void unmapMemory();
63 
65  virtual void draw_particle_buffer(const diguyParticleDrawDesc* draw_desc, void* data) { ; }
67  virtual void draw_particle_buffer(osg::RenderInfo& renderInfo, const diguyParticleDrawDesc* draw_desc, void* data);
68 
70  virtual void setCameraPos(double x, double y, double z);
71 
73  virtual bdiFarPosition& cameraPos();
74 
76  virtual DtFxGizmoRenderer& gizmoRenderer();
77 
79  virtual DtDe& de();
80 
82  virtual void setWireframeMode(bool mode);
83 
84  protected:
86  bdiFarPosition myCameraPos;
87 
92 
94  unsigned int myVertexObject[BUFFER_COUNT];
95  int myBufferSize[BUFFER_COUNT];
97 
99  unsigned int myBillboardObject;
100  unsigned int myBillboardZObject;
101  unsigned int myBillboardXZObject;
102 
106 
108  const void* myLastProgram;
110  const void* myLastParticleDesc;
111 
123 
140  };
141 
142 }
int myAttrNormal
Definition: DtFxOglParticleSystemRenderer.h:117
class that executes low level OpenGL draw calls from the particle system data.
Definition: DtFxOglParticleSystemRenderer.h:30
a class to quickly render a bunch of basic primitives as debugging aids
Definition: DtFxGizmoRenderer.h:79
int myUniformUseNormalTexture
Definition: DtFxOglParticleSystemRenderer.h:126
int myAttrVertex
cache these draw to draw to avoid re-looking them up updated when the program changes ...
Definition: DtFxOglParticleSystemRenderer.h:114
int myUniformBasePosition
Definition: DtFxOglParticleSystemRenderer.h:124
int myUniformAdditiveRendering
Definition: DtFxOglParticleSystemRenderer.h:139
int myUniformYframes
Definition: DtFxOglParticleSystemRenderer.h:132
int myUniformMaterialSpecularity
Definition: DtFxOglParticleSystemRenderer.h:129
int myAttrRotation
Definition: DtFxOglParticleSystemRenderer.h:121
int myAttrFrame
Definition: DtFxOglParticleSystemRenderer.h:118
bdiFarPosition myCameraPos
current camera position
Definition: DtFxOglParticleSystemRenderer.h:86
int myUniformTranslucency
Definition: DtFxOglParticleSystemRenderer.h:137
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
unsigned int myBillboardObject
instanced object we render every frame
Definition: DtFxOglParticleSystemRenderer.h:99
int myUniformRotationVector
Definition: DtFxOglParticleSystemRenderer.h:134
Contains DLL export macros.
DtDe & myDe
Definition: DtFxOglParticleSystemRenderer.h:88
const void * myLastParticleDesc
used to track when things should be relooked up not useable
Definition: DtFxOglParticleSystemRenderer.h:110
a gpu vbo representation of the particle
Definition: DtFxParticleSystem.h:364
Contains makVrv::DtFxGizmoRenderer class.
int myUniformEmissivityFactor
Definition: DtFxOglParticleSystemRenderer.h:128
DtFxGizmoRenderer myGizmoRenderer
Definition: DtFxOglParticleSystemRenderer.h:89
int myUniformHdrGain
Definition: DtFxOglParticleSystemRenderer.h:127
bool myWireframeMode
current rendering info
Definition: DtFxOglParticleSystemRenderer.h:91
int myUniformVertCount
Definition: DtFxOglParticleSystemRenderer.h:133
int myUniformSoftness
Definition: DtFxOglParticleSystemRenderer.h:138
int myAttrAge
Definition: DtFxOglParticleSystemRenderer.h:119
int myAttrColor
Definition: DtFxOglParticleSystemRenderer.h:116
int myUniformXframes
Definition: DtFxOglParticleSystemRenderer.h:131
const void * myLastProgram
used to track when things should be relooked up not useable
Definition: DtFxOglParticleSystemRenderer.h:108
int myUniformLightDirection
Definition: DtFxOglParticleSystemRenderer.h:135
virtual void setup_particle_rendering(int render_pass_flags)
needed by base class, now no-ops so that render info can get passed in.
Definition: DtFxOglParticleSystemRenderer.h:46
virtual void draw_particle_buffer(const diguyParticleDrawDesc *draw_desc, void *data)
needed by base class, now no-ops
Definition: DtFxOglParticleSystemRenderer.h:65
int myAttrSize
Definition: DtFxOglParticleSystemRenderer.h:120
int myAttrPositions
Definition: DtFxOglParticleSystemRenderer.h:115
int myRenderPassFlags
current render pass info, these are from diguyApp
Definition: DtFxOglParticleSystemRenderer.h:105
const char int mode
Definition: ioapi.h:38
int myUniformMaterialMetallicness
Definition: DtFxOglParticleSystemRenderer.h:130
unsigned int myBillboardXZObject
Definition: DtFxOglParticleSystemRenderer.h:101
int myAttrVelocity
Definition: DtFxOglParticleSystemRenderer.h:122
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
int myUniformUseTexture
Definition: DtFxOglParticleSystemRenderer.h:125
int myUniformLighting
Definition: DtFxOglParticleSystemRenderer.h:136
bdiVec3f myRotationVector
Definition: DtFxOglParticleSystemRenderer.h:103
unsigned int myBillboardZObject
Definition: DtFxOglParticleSystemRenderer.h:100
int myCurrentVBOIndex
Definition: DtFxOglParticleSystemRenderer.h:96

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)