围绕 Y 轴的任意纹理位移

Posted

技术标签:

【中文标题】围绕 Y 轴的任意纹理位移【英文标题】:Arbitrary texture displacement around the Y axis 【发布时间】:2014-07-20 08:46:47 【问题描述】:

我有一个单一的云纹理,我想沿着 SCNNode 球形几何体的 Y(“垂直”)轴任意置换,以产生有许多不同云纹理的错觉。

我阅读了有关 SCNMaterialProperty、CATransform3D 旋转的文档,但我完全迷路了。在 3D 程序中,您可以沿 X、Y 和 Z 轴设置纹理“原点”——Scene Kit / Core Animation 中的等价物是什么?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

SCNMaterialProperty 有一个contentsTransform 属性,允许您为纹理坐标设置动画。如果您想要更多控制并根据您想要实现的效果,您也可以使用着色器修改器。

在 WWDC 2014 的 Bananas 示例代码中,此技术用于在背景中为火山喷出的烟雾设置动画。

【讨论】:

【参考方案2】:

我终于得到了这个:

self.cloudNode.rotation = SCNVector4Make(0.0, 
                                         1.0, 
                                         0.0,
                                         arc4random_uniform(360)*M_PI/180.0);

反正我不是数学天才。

【讨论】:

以上是关于围绕 Y 轴的任意纹理位移的主要内容,如果未能解决你的问题,请参考以下文章

通过金属中的任意 (x,y) 点围绕 z 轴旋转

如何围绕任意轴旋转一个点?

位移枚举

css3 transform转换

three.js 围绕 Y 轴的相机旋转似乎关闭

从旋转矩阵获取绕 y 轴的旋转