0

我可以通过在 OpenGL 2.1 中将 Z 值设置为 0 来将 3D tex coord 函数用于 2D 纹理吗?有没有我不能用于 2D 的3D 功能?我不能使用 2D 函数,因为这是用于 2D/3D 包装器的,当这两个函数可以一起使用时,尝试猜测用户是输入 2D 还是 3D 坐标太低效了。

4

1 回答 1

2

这听起来很有趣,但 OpenGL 中的所有纹理坐标始终是 4D。顶点位置也是如此。

为了更好地解释这一点,请考虑一个已弃用的函数,例如glTexCoord2f (...)- 它会自动分配r= 0.0q= 1.0。此行为扩展到顶点数组,如果您有一个仅提供 2 个组件的纹理坐标指针,GL 会自动将0.01.0分配给剩余的 2 个,如上图所示。

顺便说一下,我建议您strq在提及纹理坐标时使用该命名法。您可以像xyzw在着色器中一样访问它们,但(固定功能)管道始终记录为通过strq.

于 2014-02-03T01:36:13.157 回答