dev #84
|
@ -15,7 +15,7 @@ const controlsState = reactive({
|
||||||
enablePan: false,
|
enablePan: false,
|
||||||
enableZoom: false,
|
enableZoom: false,
|
||||||
minPolarAngle: degToRad(60),
|
minPolarAngle: degToRad(60),
|
||||||
maxPolarAngle: degToRad(90),
|
maxPolarAngle: degToRad(100),
|
||||||
})
|
})
|
||||||
const cameraStat = reactive({
|
const cameraStat = reactive({
|
||||||
position: [0, 0, 5],
|
position: [0, 0, 5],
|
||||||
|
@ -48,7 +48,10 @@ watch(fence_section, () => {
|
||||||
<Suspense>
|
<Suspense>
|
||||||
<ModelCamera />
|
<ModelCamera />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
<TresGroup :position-y="-0.5">
|
<Suspense>
|
||||||
|
<ModelEnv />
|
||||||
|
</Suspense>
|
||||||
|
<TresGroup>
|
||||||
<Suspense>
|
<Suspense>
|
||||||
<ModelParametric />
|
<ModelParametric />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {
|
||||||
|
PCFSoftShadowMap,
|
||||||
|
CineonToneMapping,
|
||||||
|
PMREMGenerator,
|
||||||
|
} from 'three';
|
||||||
|
import { GainMapLoader, } from '@monogrid/gainmap-js'
|
||||||
|
|
||||||
|
const { scene, renderer, camera } = useTresContext()
|
||||||
|
renderer.value.toneMapping = CineonToneMapping
|
||||||
|
renderer.value.toneMappingExposure = 1
|
||||||
|
|
||||||
|
renderer.value.shadowMap.enabled = true
|
||||||
|
renderer.value.shadowMap.type = PCFSoftShadowMap
|
||||||
|
|
||||||
|
const pmremGenerator = new PMREMGenerator(renderer.value);
|
||||||
|
pmremGenerator.compileEquirectangularShader();
|
||||||
|
onMounted(async () => {
|
||||||
|
const loader = new GainMapLoader(renderer.value)
|
||||||
|
const result = await loader.loadAsync([
|
||||||
|
'hdrmaps/hdr.webp',
|
||||||
|
'hdrmaps/hdr-gainmap.webp',
|
||||||
|
'hdrmaps/hdr.json',
|
||||||
|
])
|
||||||
|
if (renderer.value && camera.value) {
|
||||||
|
renderer.value.render(scene.value, camera.value)
|
||||||
|
}
|
||||||
|
const exrCubeRenderTarget = pmremGenerator.fromEquirectangular(result.renderTarget.texture);
|
||||||
|
const newEnvMap = exrCubeRenderTarget ? exrCubeRenderTarget.texture : null;
|
||||||
|
|
||||||
|
scene.value.environment = newEnvMap
|
||||||
|
scene.value.environmentIntensity = 1
|
||||||
|
result.renderTarget.texture.dispose();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<template></template>
|
|
@ -19,11 +19,6 @@ const lamelle_count = use_lamelles_count()
|
||||||
const extra_section = use_extra_section()
|
const extra_section = use_extra_section()
|
||||||
|
|
||||||
const { scene, renderer, camera, controls } = useTresContext()
|
const { scene, renderer, camera, controls } = useTresContext()
|
||||||
renderer.value.toneMapping = CineonToneMapping
|
|
||||||
renderer.value.toneMappingExposure = 0.5
|
|
||||||
|
|
||||||
renderer.value.shadowMap.enabled = true
|
|
||||||
renderer.value.shadowMap.type = PCFSoftShadowMap
|
|
||||||
|
|
||||||
const { scene: top_model } = await useGLTF('/models_one/verh_100.glb', { draco: true })
|
const { scene: top_model } = await useGLTF('/models_one/verh_100.glb', { draco: true })
|
||||||
const { scene: model_fence_top } = await useGLTF('/fence_one/top.glb')
|
const { scene: model_fence_top } = await useGLTF('/fence_one/top.glb')
|
||||||
|
@ -139,25 +134,6 @@ watch(lamelle_count, () => {
|
||||||
}
|
}
|
||||||
) });
|
) });
|
||||||
})
|
})
|
||||||
const pmremGenerator = new PMREMGenerator(renderer.value);
|
|
||||||
pmremGenerator.compileEquirectangularShader();
|
|
||||||
onMounted(async () => {
|
|
||||||
const loader = new GainMapLoader(renderer.value)
|
|
||||||
const result = await loader.loadAsync([
|
|
||||||
'hdrmaps/hdr.webp',
|
|
||||||
'hdrmaps/hdr-gainmap.webp',
|
|
||||||
'hdrmaps/hdr.json',
|
|
||||||
])
|
|
||||||
if (renderer.value && camera.value) {
|
|
||||||
renderer.value.render(scene.value, camera.value)
|
|
||||||
}
|
|
||||||
const exrCubeRenderTarget = pmremGenerator.fromEquirectangular(result.renderTarget.texture);
|
|
||||||
const newEnvMap = exrCubeRenderTarget ? exrCubeRenderTarget.texture : null;
|
|
||||||
|
|
||||||
scene.value.environment = newEnvMap
|
|
||||||
scene.value.environmentIntensity = 1.5
|
|
||||||
result.renderTarget.texture.dispose();
|
|
||||||
})
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
|
Loading…
Reference in New Issue