Geometry
, Material
을 Mesh
생성시 매번 생성하지 않고, 메모리에 저장한 후에 해당 값을 사용한다.Mesh
자체 또한 여러번 사용할경우 메모리에 저장하고, clone 을 사용해서 메쉬를 새로 생성하지 않도록 한다.Geometry
와 Material
, Mesh
간략 설명Geometry
Material
Geometry
위에 입힐 옷Mesh
Geometry
+ Material
을 결합Mesh
vs InstancedMesh
Geometry Instancing
이란?InstancedMesh
는 GPU가속을 이용, drawCall (화면 렌더링 요청횟수)를 낮춰 성능상 이점이 있다.Mesh
보다 좋은 퍼포먼스를 항상 보장하지는 않는다. GPU 부하가 높아지기 때문에, GPU성능이 낮은, 내장그래픽 탑재형 노트북 등에서는 오히려 일반 Mesh 로 객체를 생성하는 것 보다 성능이 떨어질 수 있다.
HiDPI
대응HiDPI
대응HiDPI
환경 일경우에는 FHD 까지 렌더링하도록 설정했더라도, 실제 보여주어야할 픽셀 갯수는 FHD 이상일 수 있다.HiDPI
이란? https://namu.wiki/w/HiDPIHiDPI
환경이라고 보면된다.HiDPI
환경이라 볼 수 있다.window.devicePixelRatio
로 현재 PixelRaito
를 조회해서, 3D renderer의 PPI를 정배율로 강제로 낮춰서 해결한다.const renderer = new THREE.WebGLRenderer();
const dpr = window.devicePixelRatio;
renderer.setSize(window.innerWidth / dpr, window.innerHeight / dpr);
renderer.domElement.style.width = renderer.domElement.width * dpr + 'px';
renderer.domElement.style.height = renderer.domElement.height * dpr + 'px';
renderer.pixelRatio = 1 / dpr;