这段代码中的顶点和纹理坐标代表什么?

时间:2014-05-06 02:58:10

标签: c++ opengl-es cocos2d-iphone

我在看这个教程:http://www.raywenderlich.com/32954/how-to-create-a-game-like-tiny-wings-with-cocos2d-2-x-part-1

并且无法理解一些计算的用途:

        _hillVertices[_nHillVertices] = CGPointMake(pt0.x, 0 + minY);
        _hillTexCoords[_nHillVertices++] = CGPointMake(pt0.x/512, 1.0f);
        _hillVertices[_nHillVertices] = CGPointMake(pt1.x, 0 + minY);
        _hillTexCoords[_nHillVertices++] = CGPointMake(pt1.x/512, 1.0f);

        _hillVertices[_nHillVertices] = CGPointMake(pt0.x, pt0.y);
        _hillTexCoords[_nHillVertices++] = CGPointMake(pt0.x/512, 0);
        _hillVertices[_nHillVertices] = CGPointMake(pt1.x, pt1.y);
        _hillTexCoords[_nHillVertices++] = CGPointMake(pt1.x/512, 0);

openGl如何使用顶点和纹理坐标?从教程中,我了解到你需要绘制的三角形的顶点构成图像的边界,这似乎是有意义的。

但是什么是纹理坐标,OpenGL如何使用它们?为什么订单很重要?

2 个答案:

答案 0 :(得分:1)

纹理坐标告诉OpenGL将给定 flat 图像的哪个区域映射到定义的三角形。没有办法自动解决这个问题。通常,艺术家将在创建3D模型时定义纹理坐标mappins。

最近迪斯尼动画开发了一种名为PTex的新纹理方案,其中每个三角形都有自己的纹理;除了解除艺术家对纹理坐标的关注之外,它还在尝试将拓扑平面图像映射到不同拓扑的几何图形时消除了数学问题。

答案 1 :(得分:0)

看起来额外顶点和纹理坐标的计算用于平滑地形轮廓。

本教程通过使用新创建的顶点生成三角形条带来实现此目的。 对于三角形条带,顶点的顺序很重要。

纹理就像颜色。对于每个顶点,您需要一个颜色值或纹理坐标来插值并填充顶点之间的像素值。如果没有为每个顶点正确设置纹理坐标,您将看到在屏幕上呈现的扭曲纹理。

您可以将其用于其他视觉效果,但在本案例中可能不适用于本教程。