如何在 three.js 中使用 gltf 模型投射阴影?
How to cast a shadow with a gltf model in three.js?
嘿,我是三个 js 的新手,想知道如何使用 gltf 模型投射阴影?
我可以看到这是可能的,因为它正在工作 here
我假设我没有正确构建我的代码-
var model = new THREE.GLTFLoader();
model.load('https://threejs.org/examples/models/gltf/Duck/glTF/Duck.gltf', function(gltf) {scene.add(gltf.scene);});
model.castShadow = true;
这是fiddlehttps://jsfiddle.net/steveham/ckpfwy24/87/
干杯!
您需要在每个子网格上设置 castShadow = true
,如下所示:
var loader = new THREE.GLTFLoader();
loader.load( 'https://threejs.org/examples/models/gltf/Duck/glTF/Duck.gltf', function( gltf ) {
gltf.scene.traverse( function( node ) {
if ( node.isMesh ) { node.castShadow = true; }
} );
scene.add( gltf.scene );
} );
three.js r.113
var loader = new THREE.GLTFLoader();
loader.load( 'file path/gltf.gltf', function ( gltf ) {
gltf.scene.traverse( function ( node ) {
if ( node.isMesh || node.isLight ) node.castShadow = true;
if ( node.isMesh || node.isLight ) node.receiveShadow = true;
} );
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
child.material.envMap = envMap; //reflection of the world
}
} );
scene.add( gltf.scene );
嘿,我是三个 js 的新手,想知道如何使用 gltf 模型投射阴影? 我可以看到这是可能的,因为它正在工作 here 我假设我没有正确构建我的代码-
var model = new THREE.GLTFLoader();
model.load('https://threejs.org/examples/models/gltf/Duck/glTF/Duck.gltf', function(gltf) {scene.add(gltf.scene);});
model.castShadow = true;
这是fiddlehttps://jsfiddle.net/steveham/ckpfwy24/87/
干杯!
您需要在每个子网格上设置 castShadow = true
,如下所示:
var loader = new THREE.GLTFLoader();
loader.load( 'https://threejs.org/examples/models/gltf/Duck/glTF/Duck.gltf', function( gltf ) {
gltf.scene.traverse( function( node ) {
if ( node.isMesh ) { node.castShadow = true; }
} );
scene.add( gltf.scene );
} );
three.js r.113
var loader = new THREE.GLTFLoader();
loader.load( 'file path/gltf.gltf', function ( gltf ) {
gltf.scene.traverse( function ( node ) {
if ( node.isMesh || node.isLight ) node.castShadow = true;
if ( node.isMesh || node.isLight ) node.receiveShadow = true;
} );
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
child.material.envMap = envMap; //reflection of the world
}
} );
scene.add( gltf.scene );