2017-01-02 34 views

回答

0

那么实际上没有任何区别。矩形由2个三角形组成,所以你所要求的与绘制矩形的一半,你已经知道如何绘制整个矩形是一样的。

openGL中的大多数对象只能用三角形绘制。它们上的纹理是通过纹理坐标定义的,纹理加载的图像可能很奇怪。尝试搜索“模型纹理”的网页图片,看看我的意思。

我之所以解释这个,是因为我相信你需要开始思考纹理和坐标,就像现在一样。纹理坐标实际上只是纹理上的相对位置,表示纹理的哪一部分应该在形状所绑定的点之间绘制。所以矩形的纹理很可能看起来像一个普通的图像,因为这个普通图像已经是一个矩形。对于一个球体来说,纹理已经看起来很奇怪了,因为你需要以某种方式表示2D球体上的球体上的所有点,通常是一个矩形。

因此,绘制纹理三角形需要位置坐标和纹理坐标。一个最简单的例子可以是:

float vertexData[] = { 
0.0, 0.0, 0.0, 
0.0, 0.0, 
100.0, 0.0, 0.0, 
1.0, 0.0, 
0.0, 100.0, 0.0, 
0.0, 1.0 
}; 

这是一样的矩形,但错过了最后一个坐标:

100.0, 100.0, 0.0, 
1.0, 1.0 

不过这些纹理坐标可以是任何你想要为你的质感。您只需计算相对纹理坐标位置。