在three.js中绘制半个球体的问题

Issue with drawing half of a sphere in three.js

本文关键字:半个 问题 js three 绘制      更新时间:2023-09-26

我正在三个.js中创建一个skydome,如下所示:

var geometry = new THREE.SphereGeometry( 40, 32, 15, 1*Math.PI/2, 2*Math.PI, Math.PI, Math.PI);
var material = new THREE.MeshBasicMaterial( { color: 0xddddff } );
mesh = new THREE.Mesh( geometry, material );
mesh.material.side = THREE.DoubleSide;
scene.add( mesh );

这确实绘制了一半的球体,但它也为我期望打开的部分着色(它为我需要skydome的网格表面着色)。我该如何解决这个问题?

  1. 问题是,即使绘制了半个球体,我也怀疑它是否能正确放置UV,所以我非常建议您使用自定义网格制作自己的skydome。

  2. 对于skydome,您可以使用mesh.material.side=THREE.BackSide而不是.DoubleSide,顺便说一句,除非您一直停留在曲面上。

我没有正确绘制球体:

var geometry = new THREE.SphereGeometry( 50, 60, 60, Math.PI, Math.PI, 3*Math.PI/2);
var material = new THREE.MeshBasicMaterial( { color: 0xddddff } );
mesh = new THREE.Mesh( geometry, material );
mesh.material.side = THREE.DoubleSide;
scene.add( mesh );