Skip to content

Commit 0f88f5d

Browse files
committed
Fix renderer alias resolution and encoding fallback
1 parent 6b6c71c commit 0f88f5d

File tree

3 files changed

+42
-36
lines changed

3 files changed

+42
-36
lines changed

jsconfig.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@
2424
"@postprocessing/*": ["src/postprocessing/*"],
2525
"@shaders/*": ["src/shaders/*"],
2626
"@controls/*": ["src/controls/*"],
27-
"@config/*": ["src/config/*"]
27+
"@config/*": ["src/config/*"],
28+
"@renderers/*": ["src/core/renderers/*"],
29+
"@cameras/*": ["src/core/components/cameras/*"],
30+
"@presets/*": ["src/presets/*"],
31+
"@tests/*": ["src/tests/*"]
2832
}
2933
},
3034
"include": ["src/**/*"],

src/core/renderers/BasicRenderer.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,14 @@ export class BasicRenderer extends THREE.WebGLRenderer {
8080
// Update encoding
8181
const encodingTypes = {
8282
'Linear': THREE.LinearEncoding,
83-
'sRGB': THREE.sRGBEncoding,
84-
'Gamma': THREE.GammaEncoding
83+
'sRGB': THREE.sRGBEncoding
8584
};
86-
this.outputEncoding = encodingTypes[this.debugObject.outputEncoding];
85+
if (this.debugObject.outputEncoding === 'Gamma') {
86+
console.warn(
87+
'[BasicRenderer] GammaEncoding is not available in this version of three.js; falling back to sRGBEncoding.'
88+
);
89+
}
90+
this.outputEncoding = encodingTypes[this.debugObject.outputEncoding] ?? THREE.sRGBEncoding;
8791

8892
// Update shadow map type
8993
const shadowMapTypes = {

vite.config.js

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { defineConfig } from "vite";
22
import glsl from "vite-plugin-glsl";
3-
import { fileURLToPath } from "url";
4-
import { dirname, resolve } from "path";
3+
import { fileURLToPath } from "node:url";
54

6-
const __filename = fileURLToPath(import.meta.url);
7-
const __dirname = dirname(__filename);
5+
const resolveSrc = (path) => fileURLToPath(new URL(`./src/${path}`, import.meta.url));
86

97
export default defineConfig({
108
plugins: [glsl()],
@@ -13,40 +11,40 @@ export default defineConfig({
1311
},
1412
resolve: {
1513
alias: {
16-
"@": resolve(__dirname, "./src"),
14+
"@": resolveSrc(""),
1715
// Core
18-
"@core": resolve(__dirname, "./src/core"),
19-
"@components": resolve(__dirname, "./src/core/components"),
20-
"@managers": resolve(__dirname, "./src/core/managers"),
21-
"@generators": resolve(__dirname, "./src/core/generators"),
22-
"@scenes": resolve(__dirname, "./src/core/scenes"),
23-
"@utils": resolve(__dirname, "./src/core/utils"),
16+
"@core": resolveSrc("core"),
17+
"@components": resolveSrc("core/components"),
18+
"@managers": resolveSrc("core/managers"),
19+
"@generators": resolveSrc("core/generators"),
20+
"@scenes": resolveSrc("core/scenes"),
21+
"@utils": resolveSrc("core/utils"),
2422
// Components sub-directories
25-
"@encoders": resolve(__dirname, "./src/core/components/encoders"),
26-
"@environments": resolve(__dirname, "./src/core/components/environments"),
27-
"@geometries": resolve(__dirname, "./src/core/components/geometries"),
28-
"@lights": resolve(__dirname, "./src/core/components/lights"),
29-
"@loaders": resolve(__dirname, "./src/core/components/loaders"),
30-
"@materials": resolve(__dirname, "./src/core/components/materials"),
31-
"@cameras": resolve(__dirname, "./src/core/components/cameras"),
23+
"@encoders": resolveSrc("core/components/encoders"),
24+
"@environments": resolveSrc("core/components/environments"),
25+
"@geometries": resolveSrc("core/components/geometries"),
26+
"@lights": resolveSrc("core/components/lights"),
27+
"@loaders": resolveSrc("core/components/loaders"),
28+
"@materials": resolveSrc("core/components/materials"),
29+
"@cameras": resolveSrc("core/components/cameras"),
3230

3331
// Assets
34-
"@assets": resolve(__dirname, "./src/assets"),
35-
"@models": resolve(__dirname, "./src/assets/models"),
36-
"@textures": resolve(__dirname, "./src/assets/textures"),
37-
"@environmentMaps": resolve(__dirname, "./src/assets/environmentMaps"),
38-
"@panoramas": resolve(__dirname, "./src/assets/panoramas"),
32+
"@assets": resolveSrc("assets"),
33+
"@models": resolveSrc("assets/models"),
34+
"@textures": resolveSrc("assets/textures"),
35+
"@environmentMaps": resolveSrc("assets/environmentMaps"),
36+
"@panoramas": resolveSrc("assets/panoramas"),
3937

4038
// Other directories
41-
"@effects": resolve(__dirname, "./src/effects"),
42-
"@monitoring": resolve(__dirname, "./src/monitoring"),
43-
"@postprocessing": resolve(__dirname, "./src/postprocessing"),
44-
"@shaders": resolve(__dirname, "./src/shaders"),
45-
"@controls": resolve(__dirname, "./src/controls"),
46-
"@config": resolve(__dirname, "./src/config"),
47-
"@presets": resolve(__dirname, "./src/presets"),
48-
"@renderers": resolve(__dirname, "./src/core/renderers"),
49-
"@tests": resolve(__dirname, "./src/tests"),
39+
"@effects": resolveSrc("effects"),
40+
"@monitoring": resolveSrc("monitoring"),
41+
"@postprocessing": resolveSrc("postprocessing"),
42+
"@shaders": resolveSrc("shaders"),
43+
"@controls": resolveSrc("controls"),
44+
"@config": resolveSrc("config"),
45+
"@presets": resolveSrc("presets"),
46+
"@renderers": resolveSrc("core/renderers"),
47+
"@tests": resolveSrc("tests"),
5048
},
5149
},
5250
server: {

0 commit comments

Comments
 (0)