bx-1379-redesign #15

Merged
ksenia_mikhailova merged 124 commits from bx-1379-redesign into dev 2024-09-06 15:39:13 +03:00
4 changed files with 48 additions and 30 deletions
Showing only changes of commit aae4f7e931 - Show all commits

View File

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, watch } from 'vue'; import { onMounted, render, watch } from 'vue';
import { ACESFilmicToneMapping, Color, Fog, PMREMGenerator, SRGBColorSpace } from 'three'; import { ACESFilmicToneMapping, Color, Fog, PMREMGenerator, SRGBColorSpace } from 'three';
import { GainMapLoader } from '@monogrid/gainmap-js' import { GainMapLoader } from '@monogrid/gainmap-js'
@ -21,24 +21,27 @@ renderer.value.toneMappingExposure = 1.25;
renderer.value.setPixelRatio((window.devicePixelRatio || 1) * 2) renderer.value.setPixelRatio((window.devicePixelRatio || 1) * 2)
const loadEnv = async () => { const loadEnv = async () => {
// console.log('update env') try {
const loader = new GainMapLoader(renderer.value) const loader = new GainMapLoader(renderer.value)
const result = await loader.loadAsync([ const result = await loader.loadAsync([
props.hdr_webp ? `${IMAGE_URL}/${props.hdr_webp}` : hdr_webp, props.hdr_webp ? `${IMAGE_URL}/${props.hdr_webp}` : hdr_webp,
props.hdr_gainmap ? `${IMAGE_URL}/${props.hdr_gainmap}` : hdr_gainmap, props.hdr_gainmap ? `${IMAGE_URL}/${props.hdr_gainmap}` : hdr_gainmap,
props.hdr_json ? `${IMAGE_URL}/${props.hdr_json}` : hdr_json, props.hdr_json ? `${IMAGE_URL}/${props.hdr_json}` : hdr_json,
]) ])
const pmremGenerator = new PMREMGenerator(renderer.value); const pmremGenerator = new PMREMGenerator(renderer.value);
pmremGenerator.compileEquirectangularShader(); pmremGenerator.compileEquirectangularShader();
const exrCubeRenderTarget = pmremGenerator.fromEquirectangular(result.renderTarget.texture); const exrCubeRenderTarget = pmremGenerator.fromEquirectangular(result.renderTarget.texture);
const newEnvMap = exrCubeRenderTarget ? exrCubeRenderTarget.texture : null; const newEnvMap = exrCubeRenderTarget ? exrCubeRenderTarget.texture : null;
// scene.value.background = exrCubeRenderTarget.texture // scene.value.background = exrCubeRenderTarget.texture
scene.value.environment = newEnvMap scene.value.environment = newEnvMap
scene.value.environmentIntensity = 1 scene.value.environmentIntensity = 1
result.renderTarget.texture.dispose(); result.renderTarget.texture.dispose();
} catch (error) {
console.log(error)
}
const c = new Color() const c = new Color()
c.set(props.clear_color || PROMOBG) c.set(props.clear_color || PROMOBG)
@ -48,9 +51,14 @@ const loadEnv = async () => {
document.documentElement.style.setProperty('--primary-color', props.clear_color) document.documentElement.style.setProperty('--primary-color', props.clear_color)
} }
onMounted(async () => { watch(() => props, () => {
// loadEnv() try {
}) loadEnv()
watch(() => props, loadEnv, { deep: true }) } catch (error) {
console.log(error)
}
},
{ deep: true }
)
</script> </script>
<template></template> <template></template>

View File

@ -265,14 +265,19 @@ const gotoCenterAndDistance = () => {
}); });
} }
loadModels()
watch(() => props.source, () => { watch(() => props.source, () => {
const loaded = seekByName(scene.value, 'loaded') if (props.source) {
if (loaded) { const loaded = seekByName(scene.value, 'loaded')
loaded.children = [] if (loaded) {
loaded.children = []
}
sidebar.close()
try {
loadModels()
} catch (error) {
console.log(error)
}
} }
sidebar.close()
loadModels()
}) })
watch(() => sidebar, () => { watch(() => sidebar, () => {
@ -394,6 +399,8 @@ const clickEvent = (event: MouseEvent) => {
} }
const timerEvent = ['click', 'contextmenu', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'touchmove'] const timerEvent = ['click', 'contextmenu', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'touchmove']
onMounted(() => { onMounted(() => {
loadModels()
document.addEventListener('click', clickEvent) document.addEventListener('click', clickEvent)
timerEvent.map((event: string) => { timerEvent.map((event: string) => {

View File

@ -29,13 +29,12 @@ console.log(router)
</div> </div>
<div class="nav-group"> <div class="nav-group">
<span class="nav-icon" :class="[{ disabled: router.options.history.state.back == null }]"> <span class="nav-icon" :class="[{ disabled: router.options.history.state.back == null }]">
<RouterLink :to="(router.options.history.state.back as string) ?? '/'" @click.prevent="router.back()"> <RouterLink :to="(router.options.history.state.back as string) ?? '/'">
<i-mdi:arrow-left /> <i-mdi:arrow-left />
</RouterLink> </RouterLink>
</span> </span>
<span class="nav-icon" :class="[{ disabled: router.options.history.state.forward == null }]"> <span class="nav-icon" :class="[{ disabled: router.options.history.state.forward == null }]">
<RouterLink :to="(router.options.history.state.forward as string) ?? '/'" <RouterLink :to="(router.options.history.state.forward as string) ?? '/'">
@click.prevent="router.forward()">
<i-mdi:arrow-right /> <i-mdi:arrow-right />
</RouterLink> </RouterLink>
</span> </span>

View File

@ -19,6 +19,10 @@ const router = createRouter({
routes, routes,
}) })
router.beforeEach((to, from) => {
console.log(from, to)
return true
})
const pinia = createPinia() const pinia = createPinia()
const app = createApp(App) const app = createApp(App)