繁体   English   中英

扭曲纹理与Opengles

[英]Warp texture with opengles

我正在使用opengles 2.0制作一个Android应用程序,并且具有如下所示的相机预览:

在此处输入图片说明 并将其用作纹理。

但是我只想在红色甜甜圈形状的一侧翘曲。 因此,我正在尝试从纹理中裁剪出该部分并将其映射为矩形等形状。 但是我不知道有什么方法可以有效地进行裁剪吗?

假设我们有一个带有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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM