1

我目前正在思考如何以从后到前的顺序有效地在顶点缓冲区中渲染多边形以使透明度正常工作..

我设置了顶点缓冲区和索引缓冲区,进行 glDrawElements 渲染,除了透明度之外,一切都运行良好,因为我目前以任意(创建对象的顺序)顺序渲染..

稍后我将实现八叉树渲染,但这只会有助于整体顶点缓冲区渲染顺序(首先渲染哪个顶点缓冲区),而不是顶点缓冲区内的顺序。

我唯一能想到的就是每次我更改相机位置时重新排序我的索引缓冲区,这感觉非常低效,因为我每个 vbo 存储了大约 65.000 个顶点(使用 GLushort 作为索引以实现大约 1- 的最佳 vbo 大小4MB)..

有没有更好的方法来排序顶点缓冲区对象中的顶点(或者更好地表述索引缓冲区对象中的相应索引)?

4

1 回答 1

1

有两种方法(虽然我自己没有使用过)

  1. 剥离(双剥离)http://developer.download.nvidia.com/SDK/10/opengl/src/dual_depth_peeling/doc/DualDepthPeeling.pdf

  2. 随机透明度 http://www.cse.chalmers.se/~d00sint/StochasticTransparency_I3D2010.pdf

此外,如果您的对象是凸面剥离,则可以通过第一次绘制back facesfront faces(使用GL_CULL_FACE和反转法线以在着色器中正确照明)轻松实现

于 2013-04-24T14:05:22.863 回答