make 3d great again

This commit is contained in:
Kseninia Mikhaylova 2024-06-11 12:35:01 +03:00
parent 91de92ddfa
commit fac1f4bffe
10 changed files with 46 additions and 26 deletions

View File

@ -6,7 +6,7 @@ const controlsState = reactive({
minDistance: 1,
maxDistance: 10,
enablePan: false,
enableZoom: false,
// enableZoom: false,
maxPolarAngle: (Math.PI / 2) - 0.2,
})
const { hasFinishLoading, progress, items } = await useProgress()

View File

@ -25,46 +25,66 @@ const pbrTexture = await useTexture({
normalMap: '/texture/Rock035_2K_NormalGL.jpg',
ambientOcclusion: '/texture/Rock035_2K_AmbientOcclusion.jpg',
})
const { scene: bottom } = await useGLTF('/models_one/verh_100.glb', { draco: true })
const { scene: verh } = await useGLTF('/models_one/bottom.glb', { draco: true })
const { scene: stolb } = await useGLTF('/models_one/stolb.glb', { draco: true })
const { scene: lamelle } = await useGLTF('/models_one/lamel_100.glb', { draco: true })
const { scene: top } = await useGLTF('/models_one/verh_100.glb')
const { scene: fence } = await useGLTF('/models_one/fence.glb')
const { scene: fastening } = await useGLTF('/models_one/krepleniye_planok (1).glb')
const { scene: lamelle } = await useGLTF('/models_one/lamel_100.glb')
const pillar_one_pos = fence_section.value * -0.5
const pillar_two_pos = fence_section.value * 0.5 + pillar_size + bSize
</script>
<template>
<TresGroup :scale="3" :rotate-y="-Math.PI * -0.5" :translate-y="-3.25">
<TresMesh receive-shadow cast-shadow :translate-y="-0.25">
<TresMesh receive-shadow cast-shadow :translate-y="-0.25" v-if="false">
<TresCircleGeometry :args="[8, 8, 8]" :rotate-x="-Math.PI * 0.5" />
<TresMeshStandardMaterial v-bind="pbrTexture" />
<TresMeshStandardMaterial v-bind="pbrTexture" color="violet" />
</TresMesh>
<ModelItem :model="bottom" :position="[-fence_section * 0.5 - pillar_size, -bSize, 0]" :remove-pos="true"
:color="pillar_color" />
<ModelItem :model="bottom" :position="[fence_section * 0.5 + pillar_size, -bSize, 0]" :remove-pos="true"
:color="pillar_color" />
<ModelItem :model="verh" :position="[-fence_section * 0.5, lamelles_count * lSize, 0]" :remove-pos="true"
:color="pillar_color" />
<ModelItem :model="verh" :position="[fence_section * 0.5, lamelles_count * lSize, 0]" :remove-pos="true"
:color="pillar_color" />
<TresGroup :position="[pillar_one_pos, (lSize * -0.5), 0]" :scale="[1, 0.5, 1]">
<ModelItem :model="fence" :remove-pos="true" :color="pillar_color" />
</TresGroup>
<template v-for="(n, i) in lamelles_count">
<TresGroup :position="[-fence_section * 0.5 - pillar_size, (lSize * i), 0]">
<ModelItem :model="stolb" :remove-pos="true" :color="pillar_color" />
<TresGroup :position="[pillar_one_pos, (lSize * i), 0]">
<ModelItem :model="fence" :remove-pos="true" :color="pillar_color" />
</TresGroup>
</template>
<TresGroup :position="[pillar_one_pos, (lSize * lamelles_count), 0]" :scale="[1, 0.5, 1]">
<ModelItem :model="fence" :remove-pos="true" :color="pillar_color" />
</TresGroup>
<TresGroup :position="[pillar_two_pos, (lSize * -0.5), 0]" :scale="[-1, 0.5, 1]">
<ModelItem :model="fence" :remove-pos="true" :color="pillar_color" />
</TresGroup>
<template v-for="(n, i) in lamelles_count">
<TresGroup :position="[fence_section * 0.5 + pillar_size, (lSize * i), 0]" :scale="[-1, 1, 1]">
<ModelItem :model="stolb" :remove-pos="true" :color="pillar_color" />
<TresGroup :position="[pillar_two_pos, (lSize * i), 0]" :scale="[-1, 1, 1]">
<ModelItem :model="fence" :remove-pos="true" :color="pillar_color" />
</TresGroup>
</template>
<TresGroup :position="[pillar_two_pos, (lSize * lamelles_count), 0]"
:scale="[-1, 0.5, 1]">
<ModelItem :model="fence" :remove-pos="true" :color="pillar_color" />
</TresGroup>
<template v-for="(n, i) in lamelles_count">
<TresGroup :scale-x="fence_section * 10" :position="[0, (lSize * i), 0.03]">
<TresGroup :scale-x="fence_section * 10" :position="[pillar_size * 0.5, (lSize * i), 0.02]">
<ModelItem :model="lamelle" :remove-pos="true" :color="lamelle_color" />
</TresGroup>
</template>
<TresGroup :scale-x="fence_section * 10" :position="[0, lamelles_count * lSize, 0]">
<ModelItem :model="verh" :remove-pos="true" :color="pillar_color" />
</TresGroup>
<ModelItem :model="bottom" :position="[-fence_section * 0.5 - pillar_size, lamelles_count * lSize, 0]"
:remove-pos="true" :color="pillar_color" />
<ModelItem :model="bottom" :position="[fence_section * 0.5 + pillar_size, lamelles_count * lSize, 0]"
:remove-pos="true" :color="pillar_color" />
<template v-for="(n, i) in lamelles_count">
<TresGroup :position="[pillar_one_pos, (lSize * i), 0]">
<ModelItem :model="fastening" :remove-pos="true" :color="pillar_color" />
</TresGroup>
</template>
<template v-for="(n, i) in lamelles_count">
<TresGroup :position="[pillar_two_pos, (lSize * i), 0]" :scale="[-1, 1, 1]">
<ModelItem :model="fastening" :remove-pos="true" :color="pillar_color" />
</TresGroup>
</template>
<TresGroup :scale-x="fence_section * 10" :position="[pillar_size - bSize, lamelles_count * lSize, 0]" v-if=false>
<ModelItem :model="top" :remove-pos="true" :color="pillar_color" />
</TresGroup>
</TresGroup>
</template>

Binary file not shown.

BIN
public/models_one/fence.glb Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.