[英]Warp texture with opengles
假设我们有一个带有uv坐标(s,t)的矩形R,其中s,t元素[0,1]。 而且我们得到的圆环由中心C,内半径ri和外半径ro给出。
如果要将uv坐标(s,t)映射到环形纹理(s_tex,t_tex)中的坐标,则可以使用以下公式完成此操作:
//alpha: angle
alpha = t * 2 * PI //maps the [0,1] range of t to [0, 2*PI] (circle)
//r: distance from the center
r = ir + s * (or - ir) //maps s=[0,1] to [ir, or]
//d: direction from the center c
d = [sin(alpha), cos(alpha)]
//final coordinates
[s_tex, t_tex] = C + d * r
注意, C, ri, ro
必须在环形纹理的纹理坐标中给出。
根据您想要在环上切割的位置(矩形的开始/结束所映射到的位置),可能有必要在alpha中添加一个常数。 目前,该因子为0,这意味着切割从C水平向右移动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.