18 #ifndef GZ_RENDERING_OGRE2_OGRE2GPURAYS_HH_
19 #define GZ_RENDERING_OGRE2_OGRE2GPURAYS_HH_
27 #include "gz/rendering/ogre2/Export.hh"
33 #include "gz/common/Event.hh"
34 #include "gz/common/Console.hh"
48 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
51 class Ogre2GpuRaysPrivate;
76 public:
virtual void Init()
override;
91 public:
virtual const float *
Data()
const override;
94 public:
virtual void Copy(
float *_data)
override;
99 unsigned int _height,
unsigned int _channels,
100 const std::string &_format)> _subscriber)
override;
109 private:
virtual void Set1stTextureSize(
const unsigned int _w,
110 const unsigned int _h = 1);
116 private:
virtual void SetRangeCount(
const unsigned int _w,
117 const unsigned int _h = 1);
120 private:
virtual void Render()
override;
123 private:
void ConfigureCamera();
126 private:
void CreateCamera();
129 private:
virtual void CreateGpuRaysTextures();
132 private:
void UpdateRenderTarget1stPass();
135 private:
void UpdateRenderTarget2ndPass();
139 private:
void CreateSampleTexture();
142 private:
void Setup1stPass();
145 private:
void Setup2ndPass();
153 unsigned int &_faceIndex);