3
A
回答
1
你并不需要特殊的着色器,你可能只是使用点精灵。这基本上意味着将VBO绘制为一个点集(使用glDrawArrays(GL_POINTS, ...)
)并且使得点精灵能够在每个点的位置处绘制纹理正方形(具有'X'的纹理),假设点大小大于1像素。
对于实际在每个点的位置生成几何图形,可以使用几何着色器。这样,您还可以将VBO渲染为点集,并为几何着色器内的每个点生成两行('X')或任何几何图形。
几何着色器的替代方案是实例化阵列(需要几何着色器需要相同的GL3/DX10硬件)。通过这种方式,您可以绘制多个“X”形状实例,并通过使用索引每个实例进行一次的属性,从VBO的角度获取实例的各个位置。
最后一种方法是在CPU上手动生成形状的几何图形,以便最终生成一个线集或四个集合,其中包含所有'X'作为线或精灵或任何其他元素。
但是,最简单的(也许最快的,不确定的)方式应该是首先提到的点精灵方法,因为他们通常的裁剪问题不应该在你的情况下是一个很大的问题,你似乎没有反正需要3D形状。这样你既不需要在CPU上自己生成几何图形,也不需要特殊的着色器或GL3/DX10硬件(尽管现在这种情况很常见)。所有你需要的是一个纹理的形状和启用点精灵(这应该是自GL 1.5以来的核心)。
如果所有这些一般的想法都没有告诉你什么,你可能想深入研究一下OpenGL和实时计算机图形。
相关问题
- 1. OpenGL着色器?
- 2. 与OpenGL VBO和着色器的Qt应用程序不产生
- 3. 渲染BSP与VBO或着色器? OpenGL的
- 4. 有和没有着色器的VBO OpenGL C++
- 5. OpenGL GLSL着色器统计
- 6. QGLShaderProgram的OpenGL着色器
- 7. OpenGL着色过滤器
- 8. C++,OpenGL - 几何着色器
- 9. OpenGL着色器问题
- 10. OpenGL着色器发布
- 11. 着色器和opengl转换
- 12. OpenGL ES 1.x着色器
- 13. OpenGL计算着色器SSBO
- 14. OpenGL的着色器错误
- 15. 的OpenGL着色器输入
- 16. OpenGL着色器和常量
- 17. Qt/OpenGL着色器问题
- 18. OpenGL ES和OpenGL兼容着色器
- 19. OpenGL - 使用相同着色器的具有多个VBO和VAO的glVertexAttribPointer
- 20. OpenGL着色器生成颜色
- 21. OpenGL向着色器发送颜色
- 22. OpenGL着色器:不插值颜色
- 23. opengl着色器使颜色“消失”
- 24. OpenGL使用着色器定义颜色
- 25. 剪下一个着色器渲染的VBO
- 26. 使用OpenGL着色器语言编写简单的着色器
- 27. OpenGL着色器没有链接着色器程序
- 28. OpenGL片段着色器VS DirectX片段着色器
- 29. Opengl Es 2.0着色器管理器
- 30. OpenGL着色问题