【发布时间】:2017-01-02 17:40:06
【问题描述】:
如何将纹理应用到三角形。只是一个基本的总结如何去做就行了。我已经知道如何在正方形上画一个,那么它与三角形会有多大不同。顺便说一句,我正在使用安卓。
谢谢
【问题讨论】:
如何将纹理应用到三角形。只是一个基本的总结如何去做就行了。我已经知道如何在正方形上画一个,那么它与三角形会有多大不同。顺便说一句,我正在使用安卓。
谢谢
【问题讨论】:
其实根本没有区别。一个矩形由 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
这些纹理坐标仍然可以是您想要的任何纹理坐标。您只需要计算相对纹理坐标位置。
【讨论】: