Skip to content

Commit 0dbf090

Browse files
committed
Migrate models to Blender + GLTF
1 parent 13557ac commit 0dbf090

18 files changed

+10
-13610
lines changed

src/lib/asset-cache.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import * as THREE from 'three';
21
import { Font, FontLoader } from 'three/addons/loaders/FontLoader.js';
3-
import { OBJLoader } from 'three/addons/loaders/OBJLoader.js';
2+
import { GLTF, GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
43

54
export class AssetCache {
65
readonly fonts: Map<string, Font>;
7-
readonly models: Map<string, THREE.Group>;
6+
readonly models: Map<string, GLTF>;
87
readonly sounds: Map<string, HTMLAudioElement>;
98

109
constructor() {
@@ -24,8 +23,13 @@ export class AssetCache {
2423
}
2524

2625
async loadModels(): Promise<void> {
27-
const loader = new OBJLoader();
28-
const filenames = Array.from({ length: 4 }, (_, i) => `${i + 1}.obj`);
26+
const filenames = [
27+
'half_note.glb',
28+
'quarter_note.glb',
29+
'double_eighth_note.glb',
30+
'double_sixteenth_note.glb',
31+
];
32+
const loader = new GLTFLoader();
2933

3034
for (const filename of filenames) {
3135
const model = await loader.loadAsync(`models/${filename}`);

src/lib/scene-manager.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ export class SceneManager {
114114
}
115115

116116
private spawnModel(): void {
117-
const model = sample([...this.assetCache.models.values()])!.clone();
117+
const model = sample([...this.assetCache.models.values()])!.scene.clone();
118118
model.position.set(...this.computeModelSpawnPosition());
119119
model.scale.x = model.scale.y = model.scale.z = 15;
120120
model.children.forEach((child) => {

src/models/1.model

-12
This file was deleted.

0 commit comments

Comments
 (0)