-
TIL-2024.03.06 - 3js - Fonts - 1. 3D 폰트 만들기> Frontend/ThreeJS 2024. 3. 7. 20:59
------- Fonts
목표:
보기에는 2D지만, 일단 3D.. 순서:
1. font.json 파일을 준비하고, root > assers > fonts 아래 위치
The Jamsil 5 Bold_Regular.json7.72MB2. Import
import { FontLoader } from "three/addons"; import { TextGeometry } from "three/addons"; import { OrbitControls } from "three/addons";
3. 코드 작성
/*Font Loader*/ const fontLoader = new FontLoader(); // 폰트 파일을 비동기적으로 로드하기 위한 FontLoader 인스턴스 const jamsilFont = await fontLoader.loadAsync("./assets/fonts/The Jamsil 5 Bold_Regular.json"); // 폰트 파일을 비동기적으로 로드하고, jamsilFont 변수에 할당합니다. const textGeometry = new TextGeometry("안녕하세요. ", { font: jamsilFont, size: 0.5, height: 0.1, }); // 로드된 폰트를 사용하여 "안녕하세요."라는 텍스트를 만듭니다. // size와 height 매개변수는 텍스트의 크기와 높이를 정의 const textMaterial = new THREE.MeshPhongMaterial({color: 0x00c896}); // 녹색으로 색상이 채워진 새로운 MeshPhongMaterial const text = new THREE.Mesh(textGeometry, textMaterial); // 텍스트 지오메트리와 재료를 결합하여 새 Mesh 인스턴스 생성 scene.add(text); // SECTION: LIGHT const ambientLight = new THREE.AmbientLight(0xffffff, 1); // 모든 방향에서 동일한 강도로 장면을 조명 const pointLight = new THREE.PointLight(0xffffff, 1); // 한 점에서 방사형으로 조명하는 조명 유형 const pointLightHelper = new THREE.PointLightHelper(pointLight, 0.5, 0xffffff); // 포인트 빛의 위치를 시각적으로 나타 pointLight.position.set(3, 0, 2); scene.add(ambientLight); scene.add(pointLight, pointLightHelper);
'> Frontend > ThreeJS' 카테고리의 다른 글
TIL-2024.03.12 - 3js - Fonts - 3 (0) 2024.03.12 TIL-2024.03.11 - 3js - Fonts - 2 (0) 2024.03.11 TIL-2024.03.04 - 3js - Resizing & Animation (0) 2024.03.04 TIL-2024.03.03 - 3js - Light (0) 2024.03.03 TIL-2024.03.02 - 3js - 기초 Scene, Camera, renderer (0) 2024.03.02