gpt4 book ai didi

iphone - 在 OpenGL ES 中将不规则形状或其他多边形(卡通、 Sprite )映射到三角形

转载 作者:行者123 更新时间:2023-12-03 19:05:09 27 4
gpt4 key购买 nike

我不明白显示映射到 OpenGL 三角形的 Sprite 的概念。

如果 OpenGL ES 只绘制三角形和点,如何显示/映射非三角形形状?

为什么映射到三角形的形状不会变形?

解释一下:

在我看来,将马里奥的 Sprite 映射到三角形会产生扭曲或裁剪的马里奥。在这种情况下,头部会被压扁或看不见。

最佳答案

如果我正确理解了这个问题:您只需将正方形分成两个三角形,然后使用纹理坐标相应地划分纹理即可。如果操作正确,您将在屏幕上以 1:1 的比例绘制纹理,就像它是一个 Sprite 一样。 (当然,您还可以选择旋转和拉伸(stretch)等。)

0     1  <-- If your square is divided up like this, say, set texcoord
+-----+ for point 0 to be the top left of the sprite; for point 3, the
|\ | bottom right of the sprite; and correspondingly, for points
| \ | 1 and 2.
| \ |
| \ |
| \|
+-----+
2 3

事实证明,你不会像你期望的那样得到一个被压扁的 Sprite 。我想象你正在想象从我上面的图片中绘制三角形 0-3-2,比如说,以明显的方式映射,并将顶部扫描线无限地压缩为一个点(点 0)?但实际上这不会发生,因为点 0 只有一个纹理坐标,因此(如果点 2 和点 3 正确映射)您将只能得到 Sprite 的剪切部分。

(也就是说,您可以将相同的纹理坐标分配给两个点,或者使纹理自身交叉,这样就会出错——仍然有足够的空间造成困惑,不用担心。 )

这在 OpenGL 编程指南中进行了解释,尽管我已经学习这些东西很多年了,所以我不确定如果您遇到困难它会有多大帮助:http://glprogramming.com/red/chapter09.html

关于iphone - 在 OpenGL ES 中将不规则形状或其他多边形(卡通、 Sprite )映射到三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com