我正在制作一个360度观看者,所以纹理在圆柱体内.问题是它们看起来是水平倒置的.
我知道texture.flipY
,但我还没有找到一个texture.flipX
对的来源.
那么如何直接在代码中水平或沿x轴翻转纹理呢?(不使用图像编辑器)
在上一个问题中,我希望将立体投影映射到球体上,以便直播虚拟现实事件。
我最终学到了很多关于 UV 贴图的知识,并且能够构建一个看起来令人难以置信的非常精确的贴图。然而,我不喜欢这种映射方法的一件事:有一个技巧,球体的底部必须映射到“无”,所以我将其映射到纹理的一角。
为了改进这个解决方案,我尝试根据SphereGeometry 上的 Three.JS 文档调整 theta 长度来仅创建部分球体。
虽然我得到了正确的球体形状,但我注意到 UV 贴图有些奇怪:
var fov = 270;
var geometry = new THREE.SphereGeometry(
1, // Radius
50, // Horizontal segments
50, // Vertical segments
0, // Phi start
2 * Math.PI, // Phi length
Math.acos((360 - fov) * Math.PI / 180 / 2), // Theta start
Math.PI - Math.acos((360 - fov) * Math.PI / 180 / 2) // Theta length
);
var minX, minY, minZ, maxX, maxY, …
Run Code Online (Sandbox Code Playgroud)