我正在尝试解构这个使用 ThreeExtras.js 的 webGL moon 。
Threeextras.js 似乎是 Three.js 的一些变体,加上 repo 中其他地方的一些片段;是否有任何文档,或描述它与标准 Three.js 有何不同?
(我还发现了一个变体构建存储库,但除了three.js 存储库之外没有文档或提及来源。) http://www.chandlerprall.com/threebuilds/
我正在尝试解构这个使用 ThreeExtras.js 的 webGL moon 。
Threeextras.js 似乎是 Three.js 的一些变体,加上 repo 中其他地方的一些片段;是否有任何文档,或描述它与标准 Three.js 有何不同?
(我还发现了一个变体构建存储库,但除了three.js 存储库之外没有文档或提及来源。) http://www.chandlerprall.com/threebuilds/
ThreeExtras.js 在 r49 之前一直存在于存储库中。你可以在https://github.com/mrdoob/three.js/tree/r49查看它。在那之后,事情发生了变化。您必须查看migration guide
https://github.com/mrdoob/three.js/wiki/Migration和https://github.com/mrdoob/three.js以changes log
了解如何将代码带到最新版本或询问有关特定问题的问题。
如果您希望在 WebGL 月球演示中解构基于纹理的效果,这里有一些信息:在最近的 Three.js 版本中,一些纹理效果(例如凹凸贴图和镜面贴图)被合并到 THREE 中.MeshPhong材料。有关一组类似效果的示例(例如,对于地球),请查看以下示例:
http://stemkoski.github.io/Three.js/Earth.html
特别相关的代码是:
// Create the Earth with nice texturing - normal map for elevation, specular highlights
var sphereGeo = new THREE.SphereGeometry(100, 64, 32);
var colors = THREE.ImageUtils.loadTexture( "images/earth-day.jpg" );
var bumps = THREE.ImageUtils.loadTexture( "images/earth-topo.jpg" );
var shine = THREE.ImageUtils.loadTexture( "images/earth-specular.jpg" );
var earthMaterial = new THREE.MeshPhongMaterial( { color: 0xffffff, map: colors,
bumpMap: bumps, bumpScale: 4, specular: 0xffffff, specularMap: shine, emissive: 0x888888 } );
var earthSphere = new THREE.Mesh( sphereGeo, earthMaterial );
scene.add(earthSphere);
希望这可以帮助!