用three.js创建一个凹半球

时间:2012-09-14 12:54:12

标签: three.js

我是一名具有良好js经验的网站开发人员,我目前正在探索three.js的可能性。但是,我不太熟悉3D形状和词汇,我无法弄清楚如何构建我需要的形状。

我想创建一个半球,并且能够在这个球体内投影视频。我有一个全景球形视频,我需要扭曲它使它看起来像“飞机”。感谢Paul的教程,我绘制了一个球体,并在其上投射了我的视频。但外球面是凸面的,我需要一个凹面!我无法弄清楚如何实现这一目标。从我最初的球体中挤出一个较小的球体?

请帮忙!

2 个答案:

答案 0 :(得分:11)

您可以通过设置其他SphereGeometry参数来创建半球:

SphereGeometry( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength )

尝试直到你得到你想要的东西。

您还必须将用于球体的材料的side属性设置为THREE.BackSideTHREE.DoubleSide

material.side = THREE.DoubleSide;

EDIT - SphereBufferGeometry,现在也更有效。它的构造函数具有相同的参数。

(Three.js r.82)

答案 1 :(得分:1)

您可以使用SphereBufferGeometry创建半球(Hemisphere)。最后一个论点是:0.5 * Math.PI。另外,为了能够看到您需要使用THREE.DoubleSide作为材料的内容。

var geometry = new THREE.SphereBufferGeometry(5, 8, 6, 0, 2*Math.PI, 0, 0.5 * Math.PI);
...
material.side = THREE.DoubleSide;