在我的previouse question中,我在OpenGL ES 2.0中遇到了一些关于纹理化的问题。在一些帮助下,这个问题现在已经解决了,但也出现了一些相关的问题:
glVertexAttribPointer方法的第二个参数?为什么在这种情况下我要设2呢?发布于 2015-08-16 12:21:19
要点1听起来像是与GL中的纹理来源有关。
(0,0)映射到纹理图像的左下角。
如果您假设类似于另一个图形API (可能(0,0)位于左上角),这将无助于您的理解。
圆点2,假设它是纹理坐标,定义了二维共弦。
如果你说的是用纹理坐标调用glVertexAttribPointer (...),那是因为它们是二维的。纹理坐标可以是1,2,3或4维,就像一开始听起来那样不寻常。最常见的用例是2D,但3D和4D纹理坐标有自己的专用应用程序。
实际上,如果您调用glVertexAttribPointer (..., 2, ...),则顶点属性会像这样通过GLSL自动展开:
vec2 (x,y) ==> vec4 (x,y,0.0,1.0)因此,实际上,所有纹理坐标(或任何顶点属性)在技术上都是四维的.上面的函数调用只为x和y提供了足够的数据,而GL填充了其余的数据。继续,把这些看作2D坐标,因为向量的其余部分是一个恒等式。
https://stackoverflow.com/questions/32025683
复制相似问题