Opengl 2.0如何将纹理应用于三角形?

时间:2017-01-02 17:40:06

标签: android opengl-es

如何将纹理应用于三角形。只是如何做的基本总结将做。我已经知道如何画一个正方形,所以它与三角形有多么不同。我正在使用android btw。

由于

1 个答案:

答案 0 :(得分: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

这些纹理坐标仍然可以是纹理所需的任何东西。您只需计算相对纹理坐标位置。