我正在读红皮书(OpenGL编程指南)中的过程纹理一章。在它们的程序纹理示例中,从应用程序传递到着色器的参数之一是纹理坐标。但是,它们没有显示如何生成纹理坐标。
有没有人可以提供一个例子,说明如何在进行过程纹理时生成纹理坐标?
发布于 2013-06-06 08:32:23
我没有OpenGL编程指南,所以我不能特别评论他们的例子,但总的来说:
如果程序纹理基于二维坐标计算颜色,则这些坐标与普通纹理坐标没有什么不同。只需从应用程序中传递它们(或根据顶点着色器中的一些投影计算它们),就像您通常所做的那样。
如果程序纹理基于三维坐标计算颜色,则通常会使用(未变换的)顶点位置作为程序纹理计算的输入。将顶点位置属性复制到顶点着色器中的varying
(或最近的GLSL方言中的out
) vec3
变量。
https://stackoverflow.com/questions/16953042
复制相似问题