Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这段代码中的顶点和纹理坐标代表什么?_C++_Opengl Es_Cocos2d Iphone - Fatal编程技术网

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

C++ 这段代码中的顶点和纹理坐标代表什么?,c++,opengl-es,cocos2d-iphone,C++,Opengl Es,Cocos2d Iphone,我正在看这个教程: 无法理解某些计算的目的: _hillVertices[_nHillVertices] = CGPointMake(pt0.x, 0 + minY); _hillTexCoords[_nHillVertices++] = CGPointMake(pt0.x/512, 1.0f); _hillVertices[_nHillVertices] = CGPointMake(pt1.x, 0 + minY); _hillT

我正在看这个教程:

无法理解某些计算的目的:

        _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是如何使用它们的呢?为什么顺序很重要?

看起来额外顶点和纹理坐标的计算是为了平滑地形轮廓

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

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


您可以将其用于其他视觉效果,但在本教程中可能不是这样。

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


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

请提供有关您不了解的计算的更多信息。另外,与提供教程链接相反,请将教程的相关部分复制到您的答案中。我怀疑是否有人会关注这一联系
CGPointMake()
将是一个良好的开端。