Skip to content

Commit 6344fd5

Browse files
committed
Improved webvr_sculpt example.
1 parent cb12e13 commit 6344fd5

File tree

1 file changed

+18
-46
lines changed

1 file changed

+18
-46
lines changed

examples/webvr_sculpt.html

Lines changed: 18 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,21 @@
1818
<script type="module">
1919
import {
2020
BoxBufferGeometry,
21+
CylinderBufferGeometry,
2122
Color,
2223
DirectionalLight,
2324
GridHelper,
2425
HemisphereLight,
2526
IcosahedronBufferGeometry,
2627
Mesh,
27-
MeshBasicMaterial,
2828
MeshStandardMaterial,
2929
PerspectiveCamera,
3030
PlaneBufferGeometry,
3131
Scene,
32-
TextureLoader,
3332
Vector3,
3433
WebGLRenderer
3534
} from "../build/three.module.js";
3635

37-
import { OBJLoader } from './jsm/loaders/OBJLoader.js';
3836
import { MarchingCubes } from './jsm/objects/MarchingCubes.js';
3937

4038
var container;
@@ -57,7 +55,7 @@
5755
scene = new Scene();
5856
scene.background = new Color( 0x222222 );
5957

60-
camera = new PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 50 );
58+
camera = new PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.02, 50 );
6159

6260
var geometry = new BoxBufferGeometry( 0.5, 0.8, 0.5 );
6361
var material = new MeshStandardMaterial( {
@@ -68,8 +66,6 @@
6866
var table = new Mesh( geometry, material );
6967
table.position.y = 0.35;
7068
table.position.z = 0.85;
71-
table.castShadow = true;
72-
table.receiveShadow = true;
7369
scene.add( table );
7470

7571
var geometry = new PlaneBufferGeometry( 4, 4 );
@@ -80,35 +76,25 @@
8076
} );
8177
var floor = new Mesh( geometry, material );
8278
floor.rotation.x = - Math.PI / 2;
83-
floor.receiveShadow = true;
8479
scene.add( floor );
8580

86-
scene.add( new GridHelper( 20, 40, 0x111111, 0x111111 ) );
81+
var grid = new GridHelper( 10, 20, 0x111111, 0x111111 );
82+
grid.material.depthTest = false; // avoid z-fighting
83+
scene.add( grid );
8784

8885
scene.add( new HemisphereLight( 0x888877, 0x777788 ) );
8986

9087
var light = new DirectionalLight( 0xffffff );
9188
light.position.set( 0, 6, 0 );
92-
light.castShadow = true;
93-
light.shadow.camera.top = 2;
94-
light.shadow.camera.bottom = - 2;
95-
light.shadow.camera.right = 2;
96-
light.shadow.camera.left = - 2;
97-
light.shadow.mapSize.set( 4096, 4096 );
98-
9989
scene.add( light );
10090

101-
// scene.add( new DirectionalLightHelper( light ) );
102-
// scene.add( new CameraHelper( light.shadow.camera ) );
103-
10491
//
10592

10693
renderer = new WebGLRenderer( { antialias: true } );
10794
renderer.setPixelRatio( window.devicePixelRatio );
10895
renderer.setSize( window.innerWidth, window.innerHeight );
10996
renderer.gammaInput = true;
11097
renderer.gammaOutput = true;
111-
renderer.shadowMap.enabled = true;
11298
renderer.vr.enabled = true;
11399
container.appendChild( renderer.domElement );
114100

@@ -140,35 +126,20 @@
140126
controller2.userData.id = 1;
141127
scene.add( controller2 );
142128

143-
var loader = new OBJLoader();
144-
loader.setPath( 'models/obj/vive-controller/' );
145-
loader.load( 'vr_controller_vive_1_5.obj', function ( object ) {
146-
147-
var loader = new TextureLoader();
148-
loader.setPath( 'models/obj/vive-controller/' );
149-
150-
var controller = object.children[ 0 ];
151-
controller.material.map = loader.load( 'onepointfive_texture.png' );
152-
controller.material.specularMap = loader.load( 'onepointfive_spec.png' );
153-
controller.castShadow = true;
154-
controller.receiveShadow = true;
155-
156-
// var pivot = new Mesh( new BoxBufferGeometry( 0.01, 0.01, 0.01 ) );
157-
var pivot = new Mesh( new IcosahedronBufferGeometry( 0.002, 2 ), blob.material );
158-
pivot.name = 'pivot';
159-
pivot.position.y = - 0.016;
160-
pivot.position.z = - 0.043;
161-
pivot.rotation.x = Math.PI / 5.5;
162-
controller.add( pivot );
163-
164-
var range = new Mesh( new IcosahedronBufferGeometry( 0.03, 3 ), new MeshBasicMaterial( { opacity: 0.25, transparent: true } ) );
165-
pivot.add( range );
129+
//
166130

167-
controller1.add( controller.clone() );
168-
controller2.add( controller.clone() );
131+
var geometry = new CylinderBufferGeometry( 0.01, 0.02, 0.08, 5 );
132+
geometry.rotateX( - Math.PI / 2 );
133+
var material = new MeshStandardMaterial( { flatShading: true } );
134+
var mesh = new Mesh( geometry, material );
169135

170-
} );
136+
var pivot = new Mesh( new IcosahedronBufferGeometry( 0.01, 2 ) );
137+
pivot.name = 'pivot';
138+
pivot.position.z = - 0.05;
139+
mesh.add( pivot );
171140

141+
controller1.add( mesh.clone() );
142+
controller2.add( mesh.clone() );
172143

173144
//
174145

@@ -194,7 +165,8 @@
194165
color: 0xffffff,
195166
// envMap: reflectionCube,
196167
roughness: 0.9,
197-
metalness: 0.0
168+
metalness: 0.0,
169+
transparent: true
198170
} );
199171

200172
blob = new MarchingCubes( 64, material );

0 commit comments

Comments
 (0)