|
@@ -46,13 +46,16 @@
|
|
var container, stats;
|
|
var container, stats;
|
|
|
|
|
|
var camera, controls, scene, renderer;
|
|
var camera, controls, scene, renderer;
|
|
-
|
|
|
|
|
|
+ var specularMapScene,specularMapTarget;
|
|
|
|
|
|
var mesh;
|
|
var mesh;
|
|
|
|
|
|
init();
|
|
init();
|
|
|
|
+ renderer.setClearColor2(1, 0, 0, 1)
|
|
animate();
|
|
animate();
|
|
-
|
|
|
|
|
|
+ //setClearColor();
|
|
|
|
+ renderer.setClearColor2(0.0582, 0.06772, 0.07805, 1)
|
|
|
|
+ //renderer.setClearColor2(0.5, 0.5, 0.5, 1)
|
|
function init() {
|
|
function init() {
|
|
|
|
|
|
container = document.getElementById( 'container' );
|
|
container = document.getElementById( 'container' );
|
|
@@ -62,10 +65,10 @@
|
|
camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, .1, 2000000 );
|
|
camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, .1, 2000000 );
|
|
|
|
|
|
scene = new THREE.Scene();
|
|
scene = new THREE.Scene();
|
|
-
|
|
|
|
|
|
+ specularMapScene = new THREE.Scene();
|
|
//
|
|
//
|
|
|
|
|
|
- scene.add( new THREE.AmbientLight( 0x999999 ) );
|
|
|
|
|
|
+ //scene.add( new THREE.AmbientLight( 0x999999 ) );
|
|
|
|
|
|
// var light1 = new THREE.DirectionalLight( 0xffffff, 0.5 );
|
|
// var light1 = new THREE.DirectionalLight( 0xffffff, 0.5 );
|
|
// light1.position.set( 1, 1, 1 );
|
|
// light1.position.set( 1, 1, 1 );
|
|
@@ -124,14 +127,15 @@
|
|
fragmentShader: shader.fragmentShader,
|
|
fragmentShader: shader.fragmentShader,
|
|
side:2
|
|
side:2
|
|
} );
|
|
} );
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ //scene.json里backgroundBrightness对应的是0.488874
|
|
material.uniforms.b.value = 7 * Math.sqrt(0.488874);
|
|
material.uniforms.b.value = 7 * Math.sqrt(0.488874);
|
|
material.uniforms.tex.value = texture;
|
|
material.uniforms.tex.value = texture;
|
|
mesh = new THREE.Mesh( geometry, material );
|
|
mesh = new THREE.Mesh( geometry, material );
|
|
- mesh.position.set(0,5,0);
|
|
|
|
- scene.add( mesh );
|
|
|
|
|
|
+ specularMapScene.add( mesh );
|
|
|
|
|
|
}.bind(this));
|
|
}.bind(this));
|
|
|
|
+
|
|
|
|
|
|
// this.material = new RawShaderMaterial( {
|
|
// this.material = new RawShaderMaterial( {
|
|
// uniforms: shader.uniforms,
|
|
// uniforms: shader.uniforms,
|
|
@@ -148,11 +152,12 @@
|
|
mesh1 = new THREE.Mesh( geometry1, material1 );
|
|
mesh1 = new THREE.Mesh( geometry1, material1 );
|
|
scene.add( mesh1 );
|
|
scene.add( mesh1 );
|
|
|
|
|
|
|
|
+ //View();
|
|
renderer = new THREE.WebGLRenderer({ antialias: true });
|
|
renderer = new THREE.WebGLRenderer({ antialias: true });
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|
|
container.appendChild( renderer.domElement );
|
|
container.appendChild( renderer.domElement );
|
|
-
|
|
|
|
|
|
+
|
|
controls = new THREE.OrbitControls( camera, renderer.domElement );
|
|
controls = new THREE.OrbitControls( camera, renderer.domElement );
|
|
controls.target.set( 0, 0, 0 );
|
|
controls.target.set( 0, 0, 0 );
|
|
controls.update();
|
|
controls.update();
|
|
@@ -160,6 +165,8 @@
|
|
|
|
|
|
initGUI();
|
|
initGUI();
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
stats = new Stats();
|
|
stats = new Stats();
|
|
container.appendChild( stats.dom );
|
|
container.appendChild( stats.dom );
|
|
|
|
|
|
@@ -180,6 +187,8 @@
|
|
function animate() {
|
|
function animate() {
|
|
requestAnimationFrame( animate );
|
|
requestAnimationFrame( animate );
|
|
renderer.render( scene, camera );
|
|
renderer.render( scene, camera );
|
|
|
|
+ renderer.render( specularMapScene, camera, specularMapTarget);
|
|
|
|
+
|
|
//controls.update();
|
|
//controls.update();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -202,6 +211,36 @@
|
|
gui.add( effectController, "cameraPositionZ", -5, 1, 0.1 ).onChange( guiChanged );
|
|
gui.add( effectController, "cameraPositionZ", -5, 1, 0.1 ).onChange( guiChanged );
|
|
guiChanged();
|
|
guiChanged();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ function View(){
|
|
|
|
+ var transform = new THREE.Matrix4();
|
|
|
|
+ //对应scene.json里的orbitRadius
|
|
|
|
+ transform.set(1,0,0,0,0,1,0,0,0,0,1,20.1192,0,0,0,1);
|
|
|
|
+ //对应scene.json里的angles
|
|
|
|
+ //transform = transform.rotation(3.33705);
|
|
|
|
+ //transform = transform.rotation(-19.8208);
|
|
|
|
+ var c = transform.rotation(new THREE.Matrix4(), 3.33705, 0);
|
|
|
|
+ var b = transform.rotation(new THREE.Matrix4(), -19.8208, 1);
|
|
|
|
+ c = transform.mul(c, b, c);
|
|
|
|
+ transform.elements = transform.mul(transform.elements, c, transform.elements);
|
|
|
|
+ //对应scene.json里的pivot
|
|
|
|
+ transform.elements[12] += 1.26448;
|
|
|
|
+ transform.elements[13] += 1.59621;
|
|
|
|
+ transform.elements[14] += -1.35686;
|
|
|
|
+ camera.Matrix4 = transform.invert(new THREE.Matrix4(), transform.elements);
|
|
|
|
+ camera.updateProjectionMatrix();
|
|
|
|
+ console.log('ok');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function setClearColor() {
|
|
|
|
+ renderer.setClearColor2(0.0582, 0.06772, 0.07805, 1)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function setSpecularTexture(){
|
|
|
|
+ var pars = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat };
|
|
|
|
+ specularMapTarget = new THREE.WebGLRenderTarget( window.innerWidth, window.innerHeight, pars );
|
|
|
|
+ }
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
|
|
|
|
</body>
|
|
</body>
|