1

有人知道如何在这里进行聚光灯反射:http ://web251.merkur.ibone.ch/webgl/three/看起来像这里的一个:http ://web251.merkur.ibone.ch/webgl ?即它会反射到相机上?奇怪的是它不会自动这样做。如果你用鼠标在地球上移动,你会注意到。在这个场景中,除了相机之外,一切都是静止的,随着相机的移动,眼睛 E 也会四处移动,对吧?所以我期望的是行星上的聚光灯反射一直被重新渲染/重新计算,例如使用 Blinn 的 Halfvector,导致在 E 和聚光灯之间的行星上的反射。

非常感谢您的帮助,我们已经搜索了几个小时,但找不到我们的代码出了什么问题的线索!

在此先感谢 Doidel

4

1 回答 1

1

我用来玩这个的第一个起始代码是: http: //mrdoob.github.com/three.js/examples/webgl_materials_shaders.html

关键是为 (Phong) 材质添加具有 specularMap 属性的高光度贴图。

可以按如下方式进行:

var MySpecularMap = THREE.ImageUtils.loadTexture( "MySpecularImage.jpg" );

var Color = THREE.ImageUtils.loadTexture( "MyColorImage.jpg" );
var mappedTexture = new THREE.MeshPhongMaterial( { color: 0xffffff, map: Color, specular: 0xffffff, specularMap: MymapSpecular} );

sphere = new THREE.SphereGeometry( 600, 32, 32 );
globe = new THREE.Mesh( sphere, mappedTexture );
scene.add( globe );

此外,对于这种类型的演示,OrbitControls 似乎是最好的。

这是一个带有 {ColorMap, SpecularMap, BumpMap, Clouds, SkyDome} 的完整示例: http ://randompast.github.io/randomtests/three.js/earth/1/index.html

于 2013-01-21T13:13:53.980 回答