有一个非常酷的 Three.js 演示,它有一个 3D 地球:http ://data-arts.appspot.com/globe/
我想将地球本身的颜色从黑色更改为深蓝色。我正在查看所有源文件并不断更改内容,但对地球颜色没有任何影响。
我不太了解 Three.js 或 WebGL。有人可以帮忙吗?
有一个非常酷的 Three.js 演示,它有一个 3D 地球:http ://data-arts.appspot.com/globe/
我想将地球本身的颜色从黑色更改为深蓝色。我正在查看所有源文件并不断更改内容,但对地球颜色没有任何影响。
我不太了解 Three.js 或 WebGL。有人可以帮忙吗?
试图在全球范围内做到这一点将是困难的。代码是
var geometry = new THREE.Sphere(200, 40, 30);
shader = Shaders['earth'];
uniforms = THREE.UniformsUtils.clone(shader.uniforms);
uniforms['texture'].texture = THREE.ImageUtils.loadTexture(imgDir+'world' +
'.jpg');
material = new THREE.MeshShaderMaterial({
uniforms: uniforms,
vertexShader: shader.vertexShader,
fragmentShader: shader.fragmentShader
});
mesh = new THREE.Mesh(geometry, material);
mesh.matrixAutoUpdate = false;
scene.addObject(mesh);
所以地球有一个自定义着色器,并且正在使用纹理。
我认为最容易做的事情是创建第二个球体,并给这个球体一个标准材料。就像是
var geometry2 = new THREE.Sphere(200, 40, 30);
var material2 = new THREE.MeshLambertMaterial({ color: 'blue' });
var mesh2 = new THREE.Mesh(geometry2, material2);
scene.addObject(mesh2);