识别从特定视点可见的顶点的最有效方法是什么?
我有一个由多个 3D 模型组成的场景。我想为每个顶点附加一个标识符(ModelID、VertexID),然后从不同的角度生成 2D 图像,并为每个图像生成可见顶点标识符的列表(本质上这是用于图像处理应用程序)。
最初我想在顶点法线和相机 View 向量之间执行点积来确定顶点是否面向相机,但是如果模型被另一个对象遮挡,则此测试将不起作用。
提前致谢
最佳答案
- 禁用所有照明/纹理
- 渲染几何图形 (
GL_TRIANGLES
) 以填充 Z 缓冲区 - 再次渲染几何体 (
GL_POINTS
),为每个顶点选择不同的 RGB 颜色,该颜色映射到您的模型/顶点 ID - 读回帧缓冲区并扫描您之前使用的颜色,映射回您的模型/顶点 ID。
不是很快,但应该可以。
关于opengl - 识别 OpenGL 中的可见顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4073442/