|
附件是我写的渲染到3D贴图的一个例子(NV 8系列以上显卡运行),此例子参考了NVIDIA OpenGL SDK 10的Render To Texture 3D的例子,实现方法如下:
创建一个256*256*256 3D贴图
使用256个Camera,3D贴图的每一层使用一个Camera(camera->attach(Camera::COLOR_BUFFER, txt3D.get(), 0, slice, false);)渲染
最后渲染这个3D贴图。
但执行效率非常的低,可能是渲染256个贴图使用了256个Camera的缘故。现在的想法是想将256个Camera合并到一起,然后挂接256个单独的几何体,如下:
Camera(PARENT)
Slice1 Slice2 Slice.... SliceN
但这样的话就需要在渲染每一个Slice的时候控制Camera渲染到3D贴图的哪一层,我试了下在cullCallBack里面访问CullVisitor并得到RenderStage,但我调试的时候并没有发现有用的信息。这应该怎么实现呢,高人是否有些思路呢?先谢谢了~ |
|