fix: harden item and baked scene rendering (#522)

This commit is contained in:
Wassim SAMAD
2026-07-20 12:15:08 -04:00
committed by GitHub
parent 1d43a39f9a
commit 10c9c6ad27
9 changed files with 125 additions and 61 deletions
@@ -525,7 +525,7 @@ export function GlbScene({
_camBox.setFromObject(object)
} else {
bookmarkNode = rootNode
_camBox.setFromObject(gltf.scene)
_camBox.setFromObject(rootNode ?? gltf.scene)
}
const bookmark = (bookmarkNode?.userData as PascalExtras | undefined)?.camera
+2 -5
View File
@@ -1,16 +1,13 @@
import { useGLTF } from '@react-three/drei'
import { useThree } from '@react-three/fiber'
import { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js'
import { ensureKtx2Support, ktx2Loader } from '../lib/ktx2-loader'
import { configureKtx2Support } from '../lib/ktx2-loader'
const useGLTFKTX2 = (path: string): ReturnType<typeof useGLTF> => {
const gl = useThree((state) => state.gl)
return useGLTF(path, true, true, (loader) => {
if (ensureKtx2Support(gl)) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
loader.setKTX2Loader(ktx2Loader as any)
}
configureKtx2Support(loader, gl)
loader.setMeshoptDecoder(MeshoptDecoder)
})
}
+1 -1
View File
@@ -69,7 +69,7 @@ export {
collectIsolationSubtree,
isIsolationActive,
} from './lib/isolation'
export { ensureKtx2Support } from './lib/ktx2-loader'
export { configureKtx2Support, ensureKtx2Support } from './lib/ktx2-loader'
export { GRID_LAYER, OVERLAY_LAYER, SCENE_LAYER, ZONE_LAYER } from './lib/layers'
export {
applyMaterialPresetToMaterials,
+9
View File
@@ -162,6 +162,15 @@ export function ensureKtx2Support(renderer: unknown): boolean {
}
}
export function configureKtx2Support<T>(
loader: { setKTX2Loader: (ktx2: T) => unknown },
renderer: unknown,
): boolean {
if (!ensureKtx2Support(renderer)) return false
loader.setKTX2Loader(ktx2Loader as unknown as T)
return true
}
export function isKtx2Url(url: string): boolean {
return url.toLowerCase().endsWith('.ktx2')
}