【发布时间】:2013-06-06 16:32:22
【问题描述】:
我正在阅读红皮书(OpenGL 编程指南)中的“程序纹理”一章。在他们的程序纹理示例中,从应用程序传递到着色器的参数之一是纹理坐标。但是,它们没有说明如何生成纹理坐标。
有人可以提供一个在进行程序纹理时如何生成纹理坐标的示例吗?
【问题讨论】:
-
程序纹理和纹理坐标的自动生成是完全正交的。你可以做一个没有另一个,而另一个也不需要工作。
我正在阅读红皮书(OpenGL 编程指南)中的“程序纹理”一章。在他们的程序纹理示例中,从应用程序传递到着色器的参数之一是纹理坐标。但是,它们没有说明如何生成纹理坐标。
有人可以提供一个在进行程序纹理时如何生成纹理坐标的示例吗?
【问题讨论】:
我没有 OpenGL 编程指南,所以我无法具体评论他们的示例,但总的来说:
如果您的程序纹理基于二维坐标计算颜色,则这些与普通纹理坐标没有什么不同。只需像往常一样从应用程序中传入它们(或根据顶点着色器中的某些投影计算它们)。
如果您的程序纹理基于三维坐标计算颜色,您通常会使用(未转换的)顶点位置作为程序纹理计算的输入。将顶点位置属性复制到顶点着色器中的 varying(或最近的 GLSL 方言中的 out)vec3 变量。
【讨论】: