three.js 에서 glTF 모델을 불러올 때 아래와 같이 코딩하면 그림자가 적용되지 않습니다.
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;
// 그림자가 적용되지 않음
이럴때는 아래와 같이 각 하위 Mesh에 설정해야 합니다.
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 instanceof THREE.Mesh ) {
node.castShadow = true;
node.receiveShadow = true;
}
} );
scene.add( gltf.scene );
} );
// 그림자가 적용됨
출처 : https://stackoverflow.com/questions/49869345/how-to-cast-a-shadow-with-a-gltf-model-in-three-js
'프론트엔드 개발 놀이터 > Three.js' 카테고리의 다른 글
최신버전 DirectionalLight 에서 그림자가 잘리는 현상 (0) | 2020.02.26 |
---|---|
Three.js를 사용하여 3D 모델에 대한 색상 사용자 지정자 앱을 빌드 하는 방법 (0) | 2020.02.25 |
WebGL을 사용한 애니메이션 및 상호 작용 기법 탐색 (사례 연구) (0) | 2020.02.05 |
Shadows(그림자) 적용하기 (0) | 2020.02.05 |
3D 모델 불러 오기 (0) | 2020.02.04 |