Skip to content

Commit 92f08cc

Browse files
committed
Examples: Improved webvr_paint.
1 parent 5f62daf commit 92f08cc

File tree

1 file changed

+18
-73
lines changed

1 file changed

+18
-73
lines changed

examples/webvr_paint.html

Lines changed: 18 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
BufferAttribute,
2222
BufferGeometry,
2323
Color,
24+
CylinderBufferGeometry,
2425
DirectionalLight,
25-
DoubleSide,
2626
GridHelper,
2727
HemisphereLight,
2828
IcosahedronBufferGeometry,
@@ -32,14 +32,11 @@
3232
PerspectiveCamera,
3333
PlaneBufferGeometry,
3434
Scene,
35-
TextureLoader,
3635
VertexColors,
3736
Vector3,
3837
WebGLRenderer
3938
} from "../build/three.module.js";
4039

41-
import { OBJLoader } from './jsm/loaders/OBJLoader.js';
42-
4340
var container;
4441
var camera, scene, renderer;
4542
var controller1, controller2;
@@ -77,18 +74,7 @@
7774
var table = new Mesh( geometry, material );
7875
table.position.y = 0.35;
7976
table.position.z = 0.85;
80-
table.castShadow = true;
81-
table.receiveShadow = true;
82-
scene.add( table );
83-
84-
/*
85-
var table = new Mesh( geometry, material );
86-
table.position.y = 0.35;
87-
table.position.z = -0.85;
88-
table.castShadow = true;
89-
table.receiveShadow = true;
9077
scene.add( table );
91-
*/
9278

9379
var geometry = new PlaneBufferGeometry( 4, 4 );
9480
var material = new MeshStandardMaterial( {
@@ -98,34 +84,25 @@
9884
} );
9985
var floor = new Mesh( geometry, material );
10086
floor.rotation.x = - Math.PI / 2;
101-
floor.receiveShadow = true;
10287
scene.add( floor );
10388

104-
scene.add( new GridHelper( 20, 40, 0x111111, 0x111111 ) );
89+
var grid = new GridHelper( 10, 20, 0x111111, 0x111111 );
90+
grid.material.depthTest = false; // avoid z-fighting
91+
scene.add( grid );
10592

10693
scene.add( new HemisphereLight( 0x888877, 0x777788 ) );
10794

108-
var light = new DirectionalLight( 0xffffff );
109-
light.position.set( 0, 6, 0 );
110-
light.castShadow = true;
111-
light.shadow.camera.top = 2;
112-
light.shadow.camera.bottom = - 2;
113-
light.shadow.camera.right = 2;
114-
light.shadow.camera.left = - 2;
115-
light.shadow.mapSize.set( 4096, 4096 );
95+
var light = new DirectionalLight( 0xffffff, 0.5 );
96+
light.position.set( 0, 4, 0 );
11697
scene.add( light );
11798

118-
// scene.add( new DirectionalLightHelper( light ) );
119-
// scene.add( new CameraHelper( light.shadow.camera ) );
120-
12199
//
122100

123101
renderer = new WebGLRenderer( { antialias: true } );
124102
renderer.setPixelRatio( window.devicePixelRatio );
125103
renderer.setSize( window.innerWidth, window.innerHeight );
126104
renderer.gammaInput = true;
127105
renderer.gammaOutput = true;
128-
renderer.shadowMap.enabled = true;
129106
renderer.vr.enabled = true;
130107
container.appendChild( renderer.domElement );
131108

@@ -159,34 +136,20 @@
159136
controller2.userData.matrices = [ new Matrix4(), new Matrix4() ];
160137
scene.add( controller2 );
161138

162-
var loader = new OBJLoader();
163-
loader.setPath( 'models/obj/vive-controller/' );
164-
loader.load( 'vr_controller_vive_1_5.obj', function ( object ) {
165-
166-
var loader = new TextureLoader();
167-
loader.setPath( 'models/obj/vive-controller/' );
168-
169-
var controller = object.children[ 0 ];
170-
controller.material.map = loader.load( 'onepointfive_texture.png' );
171-
controller.material.specularMap = loader.load( 'onepointfive_spec.png' );
172-
controller.castShadow = true;
173-
controller.receiveShadow = true;
174-
175-
// var pivot = new Group();
176-
// var pivot = new Mesh( new BoxBufferGeometry( 0.01, 0.01, 0.01 ) );
177-
var pivot = new Mesh( new IcosahedronBufferGeometry( 0.01, 2 ) );
178-
pivot.name = 'pivot';
179-
pivot.position.y = - 0.016;
180-
pivot.position.z = - 0.043;
181-
pivot.rotation.x = Math.PI / 5.5;
182-
controller.add( pivot );
139+
//
183140

184-
controller1.add( controller.clone() );
141+
var geometry = new CylinderBufferGeometry( 0.01, 0.02, 0.08, 5 );
142+
geometry.rotateX( - Math.PI / 2 );
143+
var material = new MeshStandardMaterial( { flatShading: true } );
144+
var mesh = new Mesh( geometry, material );
185145

186-
pivot.material = pivot.material.clone();
187-
controller2.add( controller.clone() );
146+
var pivot = new Mesh( new IcosahedronBufferGeometry( 0.01, 2 ) );
147+
pivot.name = 'pivot';
148+
pivot.position.z = - 0.05;
149+
mesh.add( pivot );
188150

189-
} );
151+
controller1.add( mesh.clone() );
152+
controller2.add( mesh.clone() );
190153

191154
//
192155

@@ -212,32 +175,14 @@
212175

213176
geometry.drawRange.count = 0;
214177

215-
//
216-
217-
/*
218-
var path = "textures/cube/SwedishRoyalCastle/";
219-
var format = '.jpg';
220-
var urls = [
221-
path + 'px' + format, path + 'nx' + format,
222-
path + 'py' + format, path + 'ny' + format,
223-
path + 'pz' + format, path + 'nz' + format
224-
];
225-
226-
var reflectionCube = new CubeTextureLoader().load( urls );
227-
*/
228-
229178
var material = new MeshStandardMaterial( {
230179
roughness: 0.9,
231180
metalness: 0.0,
232-
// envMap: reflectionCube,
233-
vertexColors: VertexColors,
234-
side: DoubleSide
181+
vertexColors: VertexColors
235182
} );
236183

237184
line = new Mesh( geometry, material );
238185
line.frustumCulled = false;
239-
line.castShadow = true;
240-
line.receiveShadow = true;
241186
scene.add( line );
242187

243188
// Shapes

0 commit comments

Comments
 (0)