为程序纹理生成纹理坐标

时间:2013-06-06 03:01:03

标签: opengl 3d shader

我正在阅读红皮书(OpenGL编程指南)中的程序纹理章节。在其程序纹理示例中,从应用程序传递到着色器的参数之一是纹理坐标。但是,它们没有显示如何生成纹理坐标。

有人可以举例说明在进行程序纹理时如何生成纹理坐标吗?

1 个答案:

答案 0 :(得分:2)

我没有OpenGL编程指南,所以我不能专门评论他们的例子,但一般来说:

如果程序纹理基于二维坐标计算颜色,则这些纹理与普通纹理坐标没有区别。只需从应用程序中传入它们(或根据顶点着色器中的某些投影计算它们),就像平常一样。

如果程序纹理基于三维坐标计算颜色,则通常使用(未转换的)顶点位置作为程序纹理计算的输入。将顶点位置属性复制到顶点着色器中的varying(或最近GLSL方言中的outvec3变量。