|
@@ -22,8 +22,6 @@ self.onmessage = function( e ) {
|
|
worker = data.worker;
|
|
worker = data.worker;
|
|
workers = data.workers;
|
|
workers = data.workers;
|
|
BLOCK = data.blockSize;
|
|
BLOCK = data.blockSize;
|
|
- eval( data.initScene );
|
|
|
|
- initScene( width, height );
|
|
|
|
|
|
|
|
renderer = new THREE.RaytracingRendererWorker();
|
|
renderer = new THREE.RaytracingRendererWorker();
|
|
loader = new THREE.ObjectLoader();
|
|
loader = new THREE.ObjectLoader();
|
|
@@ -41,11 +39,25 @@ self.onmessage = function( e ) {
|
|
scene = loader.parse( data.scene );
|
|
scene = loader.parse( data.scene );
|
|
camera = loader.parse( data.camera );
|
|
camera = loader.parse( data.camera );
|
|
|
|
|
|
- var positions = data.positions;
|
|
|
|
- copyPositions( camera, positions );
|
|
|
|
|
|
+ var meta = data.annex;
|
|
scene.traverse( function( o ) {
|
|
scene.traverse( function( o ) {
|
|
|
|
|
|
- copyPositions( o, positions );
|
|
|
|
|
|
+ if ( o instanceof THREE.PointLight ) {
|
|
|
|
+
|
|
|
|
+ o.physicalAttenuation = true;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var mat = o.material;
|
|
|
|
+
|
|
|
|
+ if (!mat) return;
|
|
|
|
+
|
|
|
|
+ var material = meta[ mat.uuid ];
|
|
|
|
+ for (var m in material) {
|
|
|
|
+
|
|
|
|
+ mat[ m ] = material[ m ];
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
} );
|
|
} );
|
|
|
|
|
|
@@ -61,16 +73,6 @@ self.onmessage = function( e ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-function copyPositions( object, positions ) {
|
|
|
|
-
|
|
|
|
- var info = positions[ object.uuid ];
|
|
|
|
-
|
|
|
|
- object.position.fromArray( info.position );
|
|
|
|
- object.scale.fromArray( info.scale );
|
|
|
|
- object.rotation.fromArray( info.rotation );
|
|
|
|
-
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* DOM-less version of Raytracing Renderer
|
|
* DOM-less version of Raytracing Renderer
|
|
* @author mrdoob / http://mrdoob.com/
|
|
* @author mrdoob / http://mrdoob.com/
|