18 #ifndef GZ_RENDERING_OGRE2_OGRE2GPURAYS_HH_
19 #define GZ_RENDERING_OGRE2_OGRE2GPURAYS_HH_
26 #include "gz/rendering/ogre2/Export.hh"
32 #include "gz/common/Event.hh"
33 #include "gz/common/Console.hh"
47 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
50 class Ogre2GpuRaysPrivate;
75 public:
virtual void Init()
override;
78 public:
virtual void Destroy()
override;
81 public:
virtual void CreateRenderTexture();
84 public:
virtual void PreRender()
override;
87 public:
virtual void PostRender()
override;
90 public:
virtual const float *Data()
const override;
93 public:
virtual void Copy(
float *_data)
override;
98 unsigned int _height,
unsigned int _channels,
108 private:
virtual void Set1stTextureSize(
const unsigned int _w,
109 const unsigned int _h = 1);
115 private:
virtual void SetRangeCount(
const unsigned int _w,
116 const unsigned int _h = 1);
119 private:
virtual void Render()
override;
122 private:
void ConfigureCamera();
125 private:
void CreateCamera();
128 private:
virtual void CreateGpuRaysTextures();
131 private:
void UpdateRenderTarget1stPass();
134 private:
void UpdateRenderTarget2ndPass();
138 private:
void CreateSampleTexture();
141 private:
void Setup1stPass();
144 private:
void Setup2ndPass();
152 unsigned int &_faceIndex);