提交 7643c637 编写于 作者: M Mr.doob

Examples: Moved js/SkyShader to js/objects/Sky.

上级 7927ecf3
......@@ -16,26 +16,21 @@
THREE.Sky = function () {
var skyShader = THREE.Sky.SkyShader;
var shader = THREE.Sky.SkyShader;
var skyUniforms = THREE.UniformsUtils.clone( skyShader.uniforms );
var skyMat = new THREE.ShaderMaterial( {
fragmentShader: skyShader.fragmentShader,
vertexShader: skyShader.vertexShader,
uniforms: skyUniforms,
var material = new THREE.ShaderMaterial( {
fragmentShader: shader.fragmentShader,
vertexShader: shader.vertexShader,
uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
side: THREE.BackSide
} );
var skyGeo = new THREE.SphereBufferGeometry( 1, 32, 15 );
var skyMesh = new THREE.Mesh( skyGeo, skyMat );
// Expose variables
this.mesh = skyMesh;
this.uniforms = skyUniforms;
THREE.Mesh.call( this, new THREE.SphereBufferGeometry( 1, 32, 15 ), material );
};
THREE.Sky.prototype = Object.create( THREE.Mesh.prototype );
THREE.Sky.SkyShader = {
uniforms: {
......
......@@ -44,7 +44,7 @@
<script src="../build/three.js"></script>
<script src="js/controls/OrbitControls.js"></script>
<script src="js/SkyShader.js"></script>
<script src="js/objects/Sky.js"></script>
<script src="js/Detector.js"></script>
<script src="js/libs/dat.gui.min.js"></script>
......@@ -65,12 +65,10 @@
function initSky() {
// Add Sky Mesh
// Add Sky
sky = new THREE.Sky();
sky.mesh.scale.setScalar( 450000 );
sky.mesh.matrixAutoUpdate = false;//The sky is still (see https://threejs.org/docs/#manual/introduction/How-to-update-things)
sky.mesh.updateMatrixWorld();//So only compute its matrix now.
scene.add( sky.mesh );
sky.scale.setScalar( 450000 );
scene.add( sky );
// Add Sun Helper
sunSphere = new THREE.Mesh(
......@@ -98,7 +96,7 @@
function guiChanged() {
var uniforms = sky.uniforms;
var uniforms = sky.material.uniforms;
uniforms.turbidity.value = effectController.turbidity;
uniforms.rayleigh.value = effectController.rayleigh;
uniforms.luminance.value = effectController.luminance;
......@@ -114,7 +112,7 @@
sunSphere.visible = effectController.sun;
sky.uniforms.sunPosition.value.copy( sunSphere.position );
uniforms.sunPosition.value.copy( sunSphere.position );
renderer.render( scene, camera );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册