diff --git a/packages/stage-ui/src/components/Scenarios/Settings/ModelSettings/VRM.vue b/packages/stage-ui/src/components/Scenarios/Settings/ModelSettings/VRM.vue
index 9570042ff..209275374 100644
--- a/packages/stage-ui/src/components/Scenarios/Settings/ModelSettings/VRM.vue
+++ b/packages/stage-ui/src/components/Scenarios/Settings/ModelSettings/VRM.vue
@@ -202,7 +202,7 @@ const tabList = [
import type { TresContext } from '@tresjs/core'
-import type { Texture,
+import type { SphericalHarmonics3, Texture, WebGLRenderTarget,
} from 'three'
import { TresCanvas } from '@tresjs/core'
@@ -95,7 +95,13 @@ const raycaster = new Raycaster()
const mouse = new Vector2()
// For NPR skybox shader
-const nprEquirectTex = ref(null)
+const hdriTex = ref(null)
+const irrSHTex = ref(null)
+
+function onEnvReady(EnvPayload: { hdri: Texture | null, pmrem?: WebGLRenderTarget | null, irrSH: SphericalHarmonics3 | null }) {
+ hdriTex.value = EnvPayload.hdri
+ irrSHTex.value = EnvPayload.irrSH || null
+}
watch(cameraFOV, (newFov) => {
if (camera.value) {
@@ -300,7 +306,7 @@ defineExpose({
ref="skyBoxEnvRef"
:sky-box-src="skyBoxSrc"
:as-background="true"
- @equirect-skybox-ready="(tex) => nprEquirectTex = tex"
+ @skybox-ready="onEnvReady"
/>
emit('loadModelProgress', val)"
@model-ready="handleLoadModelProgress"
@error="(val) => emit('error', val)"
diff --git a/packages/stage-ui/src/components/Scenes/VRM/Model.vue b/packages/stage-ui/src/components/Scenes/VRM/Model.vue
index 59af510f2..43b55e395 100644
--- a/packages/stage-ui/src/components/Scenes/VRM/Model.vue
+++ b/packages/stage-ui/src/components/Scenes/VRM/Model.vue
@@ -1,7 +1,7 @@