main reload
This commit is contained in:
parent
17bb080401
commit
da2de785f6
|
@ -26,11 +26,15 @@ a[href] {
|
||||||
height: calc(100vh - 4.25rem);
|
height: calc(100vh - 4.25rem);
|
||||||
gap: 1.25rem;
|
gap: 1.25rem;
|
||||||
|
|
||||||
|
&-title,
|
||||||
|
&-desc {
|
||||||
|
max-width: 40vw;
|
||||||
|
}
|
||||||
|
|
||||||
&-title {
|
&-title {
|
||||||
max-width: 28vw;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-family: 'Project Space';
|
font-family: 'Project Space';
|
||||||
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
|
@ -38,8 +42,6 @@ a[href] {
|
||||||
}
|
}
|
||||||
|
|
||||||
&-desc {
|
&-desc {
|
||||||
max-width: 28vw;
|
|
||||||
/* text-align: center; */
|
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,11 @@ import { OrbitControls } from '@tresjs/cientos';
|
||||||
import MainLoadModels from './main_load_models.vue';
|
import MainLoadModels from './main_load_models.vue';
|
||||||
import { useItem } from '../../stores/item';
|
import { useItem } from '../../stores/item';
|
||||||
import { useRawData } from '../../stores/raw_data';
|
import { useRawData } from '../../stores/raw_data';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
const raw_dataStore = useRawData()
|
const raw_dataStore = useRawData()
|
||||||
const pageStore = useItem()
|
const pageStore = useItem()
|
||||||
|
const route = useRoute()
|
||||||
|
|
||||||
const camera = ref()
|
const camera = ref()
|
||||||
const controls = ref()
|
const controls = ref()
|
||||||
|
@ -23,15 +25,10 @@ const controlsState = reactive({
|
||||||
autoRotate: true,
|
autoRotate: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
await raw_dataStore.load({ source: pageStore.page.scene_3d })
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (!raw_dataStore.data.id && pageStore.page.id) {
|
pageStore.load(route.params)
|
||||||
await raw_dataStore.load({ source: pageStore.page.scene_3d })
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
watch(() => pageStore.page.id, async () => {
|
|
||||||
await raw_dataStore.load({ source: pageStore.page.scene_3d })
|
await raw_dataStore.load({ source: pageStore.page.scene_3d })
|
||||||
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
@ -47,7 +44,6 @@ watch(() => pageStore.page.id, async () => {
|
||||||
<div class="main-canvas">
|
<div class="main-canvas">
|
||||||
<TresCanvas :output-encoding="SRGBColorSpace">
|
<TresCanvas :output-encoding="SRGBColorSpace">
|
||||||
<TresPerspectiveCamera ref="camera" />
|
<TresPerspectiveCamera ref="camera" />
|
||||||
<Env />
|
|
||||||
<OrbitControls v-bind="controlsState" make-default ref="controls" />
|
<OrbitControls v-bind="controlsState" make-default ref="controls" />
|
||||||
<MainLoadModels v-if="raw_dataStore.data.id" />
|
<MainLoadModels v-if="raw_dataStore.data.id" />
|
||||||
<TresAmbientLight />
|
<TresAmbientLight />
|
||||||
|
|
|
@ -10,8 +10,10 @@ import { IMAGE_URL } from '../../constants';
|
||||||
const { controls, camera } = useTresContext()
|
const { controls, camera } = useTresContext()
|
||||||
const raw_dataStore = useRawData()
|
const raw_dataStore = useRawData()
|
||||||
const models = ref([] as model3DType[])
|
const models = ref([] as model3DType[])
|
||||||
|
const envVars = ref({} as any)
|
||||||
|
|
||||||
const loadModels = async () => {
|
const loadModels = async () => {
|
||||||
|
envVars.value = Object.assign(envVars.value, raw_dataStore.data.env)
|
||||||
for (let index = 0; index < raw_dataStore.data.elements.length; index++) {
|
for (let index = 0; index < raw_dataStore.data.elements.length; index++) {
|
||||||
const element = raw_dataStore.data.elements[index];
|
const element = raw_dataStore.data.elements[index];
|
||||||
const item = {} as model3DType
|
const item = {} as model3DType
|
||||||
|
@ -61,6 +63,7 @@ onAfterRender(() => {
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
<Env v-bind="envVars" />
|
||||||
<template v-for="item in models">
|
<template v-for="item in models">
|
||||||
<TresGroup :name="item.name">
|
<TresGroup :name="item.name">
|
||||||
<TresObject3D v-bind="item.modelFile.clone()" />
|
<TresObject3D v-bind="item.modelFile.clone()" />
|
||||||
|
|
|
@ -51,14 +51,10 @@ const loadEnv = async () => {
|
||||||
document.documentElement.style.setProperty('--primary-color', props.clear_color)
|
document.documentElement.style.setProperty('--primary-color', props.clear_color)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadEnv()
|
||||||
|
|
||||||
watch(() => props, () => {
|
watch(() => props, () => {
|
||||||
try {
|
loadEnv()
|
||||||
loadEnv()
|
}, { deep: true })
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ deep: true }
|
|
||||||
)
|
|
||||||
</script>
|
</script>
|
||||||
<template></template>
|
<template></template>
|
|
@ -66,9 +66,6 @@ const setEnv = async () => {
|
||||||
} else {
|
} else {
|
||||||
delete envVars.env_displacementmap
|
delete envVars.env_displacementmap
|
||||||
delete envVars.env_normalmap
|
delete envVars.env_normalmap
|
||||||
delete envVars.hdr_gainmap
|
|
||||||
delete envVars.hdr_json
|
|
||||||
delete envVars.hdr_webp
|
|
||||||
envVars.clear_color = PROMOBG
|
envVars.clear_color = PROMOBG
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue