Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个用单个 fullscreen 绘制的平面GL_QUAD。
GL_QUAD
我想在 my 指定的每个点使这个表面变形GL_Texture2D,最好是通过某种着色器。
GL_Texture2D
在我看来,黑色可以对应平坦,白色可以对应山丘。
我想在我的地形上拥有大约 400 万个点,并在程序的每一步更新它们。
我将如何使用几何着色器来做到这一点?着色器是否能够生成新的验证?
最简单的方法是生成一个大的三角形带状网格,将其上传到 VBO 并绘制它,使用顶点着色器仅更改上坐标。顶点着色器还可以从高度图生成法线(或提供法线贴图),然后将其传递给片段着色器进行照明。
为避免为顶点存储大量数据,请使用 glVertexID 在顶点着色器中从头开始生成顶点位置。不要绑定任何缓冲区,只需调用 glDrawArrays(GL_TRIANGLE_STRIP, 0,lots)。
正如 GuyRT 所提到的,镶嵌着色器也很好,它允许您根据相机与网格的距离来改变镶嵌细节。不过,这将是更多的工作。