Matthias Mullie has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/386193 )
Change subject: [WIP] Improve 3D display
......................................................................
[WIP] Improve 3D display
Also todo: 3d2png
Bug: T178360
Change-Id: I8ca5bd13ed490d56cfa38834a37d2dca0bf248b5
---
M modules/mmv.3d.js
1 file changed, 27 insertions(+), 14 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/3D
refs/changes/93/386193/1
diff --git a/modules/mmv.3d.js b/modules/mmv.3d.js
index 4d2e0ec..545762a 100644
--- a/modules/mmv.3d.js
+++ b/modules/mmv.3d.js
@@ -31,26 +31,30 @@
TD.createScene = function () {
var threed = this,
dimensions = this.dimensionsFunc(),
- ambient = new THREE.AmbientLight( 0x666666 ),
- dlight = new THREE.DirectionalLight( 0x999999 );
+ ambient = new THREE.AmbientLight( 0xffffff, 0.1 ),
+ light = new THREE.SpotLight( 0xffffff, 1 );
- dlight.position.set( 0, 0, 1 );
- dlight.castShadow = true;
+ // @todo: adjust position to what makes sense for all images
+ light.position.set( -100, 50, 25 );
+ light.castShadow = true;
+ light.shadow.mapSize.width = dimensions.width;
+ light.shadow.mapSize.height = dimensions.height;
+
+ this.camera = new THREE.PerspectiveCamera( 60,
dimensions.ratio, 1, 5000 );
+ this.camera.up.set( 0, 0, 1 );
+ this.camera.add( new THREE.PointLight( 0xffffff, 0.2 ) );
+ this.camera.add( light );
this.scene = new THREE.Scene();
- this.camera = new THREE.PerspectiveCamera( 60,
dimensions.ratio, 1, 5000 );
+ this.scene.add( this.camera );
+ this.scene.add( ambient );
+
this.manager = new THREE.LoadingManager();
- this.camera.up.set( 0, 0, 1 );
- this.camera.add( new THREE.PointLight( 0xffffff, 0.4 ) );
-
- this.scene.add( ambient );
- this.scene.add( dlight );
- this.scene.add( this.camera );
-
this.renderer = new THREE.WebGLRenderer();
-
this.renderer.setClearColor( 0x222222 );
+ this.renderer.shadowMap.enabled = true;
+ this.renderer.shadowMap.renderReverseSided = false;
this.controls = new THREE.OrbitControls( this.camera,
this.renderer.domElement );
this.controls.addEventListener( 'change', $.proxy( function ()
{ threed.render(); }, threed ) );
@@ -86,7 +90,15 @@
};
TD.geometryToObject = function ( geometry ) {
- var material = new THREE.MeshPhongMaterial( { color: 0xF8F9FA,
shading: THREE.FlatShading } );
+ geometry = new THREE.Geometry().fromBufferGeometry( geometry );
+ geometry.mergeVertices();
+ geometry.computeFaceNormals();
+ geometry.computeVertexNormals();
+
+ // @todo figure out what material/options to use
+// var material = new THREE.MeshPhongMaterial( { color: 0xf0e6cc,
shading: THREE.SmoothShading } );
+// var material = new THREE.MeshLambertMaterial( { color:
0xf0e6cc, shininess: 0, specular: 0x000000 } );
+ var material = new THREE.MeshStandardMaterial( { color:
0xf0e6cc, shading: THREE.FlatShading, shininess: 0, specular: 0x000000,
roughness: 1 } );
return new THREE.Mesh( geometry, material );
};
@@ -109,6 +121,7 @@
}
object.castShadow = true;
+ object.receiveShadow = true;
threed.center( object );
threed.scene.add( object );
--
To view, visit https://gerrit.wikimedia.org/r/386193
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8ca5bd13ed490d56cfa38834a37d2dca0bf248b5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/3D
Gerrit-Branch: master
Gerrit-Owner: Matthias Mullie <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits