Geometry, Material 을 Mesh 생성시 매번 생성하지 않고, 메모리에 저장한 후에 해당 값을 사용한다.Mesh 자체 또한 여러번 사용할경우 메모리에 저장하고, clone 을 사용해서 메쉬를 새로 생성하지 않도록 한다.Geometry와 Material, Mesh 간략 설명
Geometry MaterialGeometry 위에 입힐 옷MeshGeometry + Material 을 결합Mesh vs InstancedMeshGeometry 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;