728x90
반응형
// texture
const cubeTextureLoader = new THREE.CubeTextureLoader();
const cubeTexture = cubeTextureLoader
.setPath('/textures/cubemap/')
.load([
'px.png', 'nx.png',
'py.png', 'ny.png',
'pz.png', 'nz.png'
]);
...
// Scene
const scene = new THREE.Scene();
scene.background = cubeTexture;
...
// Mesh
const geometry = new THREE.BoxGeometry(1, 1, 1);
// const material = new THREE.MeshBasicMaterial({
// envMap: cubeTexture
// });
const material = new THREE.MeshStandardMaterial({
metalness: 2,
roughness: 0.1,
envMap: cubeTexture
});
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
environment map texture를 이용하여 texture객체를 따로 설정하고, 이를 Scene에 사용하는 방식으로 skybox를 구현할 수 있다. 또한 mesh에도 적용할 수 있다.
MeshBasicMaterial의 경우 envMap으로 texture를 설정하기만 해도 적용할 수 있지만, MeshStandardMaterial은 metalness 및 roughness를 설정하지 않으면 envMap texture가 제대로 렌더링 되지 않는다.
728x90
반응형
'개발 · 컴퓨터공학' 카테고리의 다른 글
Unity Student Lisence 갱신했는데 안됨 (시리얼 키 오류) (1) | 2022.10.04 |
---|---|
three.js Light 객체 사용하기 (0) | 2022.10.03 |
three.js EnvironmentMap + PolyHaven(3D asset site) (0) | 2022.09.29 |
three.js MeshStandardMaterial에 다양한 효과 입히기 (0) | 2022.09.28 |
three.js Material - MeshMatcapMaterial + (Free MatCaps Site) (0) | 2022.09.27 |