Commit 98daac85a7429b56c5082a0958ed37b41be241e1
1 parent
fef8ee5f
feat(src/packages): 优化三维模型拖动时,webgl上下文丢失问题
Showing
2 changed files
with
4 additions
and
22 deletions
... | ... | @@ -185,15 +185,9 @@ |
185 | 185 | <SettingItem v-if="optionData.enableDamping" name="阻尼值"> |
186 | 186 | <n-input-number v-model:value="optionData.dampingFactor" :min="0" :max="1" size="small"></n-input-number> |
187 | 187 | </SettingItem> |
188 | - <SettingItem name="启用动画"> | |
189 | - <n-switch v-model:value="optionData.autoPlay" size="small" /> | |
190 | - </SettingItem> | |
191 | - <SettingItem name="输出编码"> | |
188 | + <SettingItem name="输出编码,可取值为 liner 或 sRGB。linear 是 LinearEncoding 线性编码, sRGB 即 sRGBEncoding rgb 模式编码(sRGBEncoding 能更好的还原材质颜色)"> | |
192 | 189 | <n-select v-model:value="optionData.outputEncoding" size="small" :options="encodinghList"></n-select> |
193 | 190 | </SettingItem> |
194 | - <SettingItem name="是否清空场景"> | |
195 | - <n-switch @change="handleChange" v-model:value="optionData.clearScene" size="small" /> | |
196 | - </SettingItem> | |
197 | 191 | </setting-item-box> |
198 | 192 | </collapse-item> |
199 | 193 | </template> |
... | ... | @@ -258,10 +252,6 @@ const encodinghList = [ |
258 | 252 | { label: 'sRGB ', value: 'sRGB ' } |
259 | 253 | ] |
260 | 254 | |
261 | -const handleChange = (e: boolean) => { | |
262 | - if (e) props.optionData.dataset = [''] | |
263 | -} | |
264 | - | |
265 | 255 | const handleFileStaticUri = (value: UploadFileInfo[]) => { |
266 | 256 | props.optionData.dataset = value.map(item => item?.url)?.filter(Boolean) as any |
267 | 257 | if (Array.isArray(props.optionData.dataset) && props.optionData.dataset.length === 0) { | ... | ... |
1 | 1 | <template> |
2 | 2 | <div class="go-content-box" :style="{ border: !borderConfig.show ? 'none' : '' }"> |
3 | - <div v-if="useDetectWebGLContext()"> | |
3 | + <div> | |
4 | 4 | <vue3dLoader |
5 | 5 | ref="vue3dLoaderRef" |
6 | 6 | :webGLRendererOptions="webGLRendererOptions" |
... | ... | @@ -29,15 +29,13 @@ |
29 | 29 | <n-progress type="line" :color="themeColor" :percentage="process" :indicator-placement="'inside'" processing /> |
30 | 30 | </div> |
31 | 31 | </div> |
32 | - <div v-else>您的浏览器不支持WebGL!</div> | |
33 | 32 | </div> |
34 | 33 | </template> |
35 | 34 | <script setup lang="ts"> |
36 | -import { PropType, toRefs, ref, nextTick, computed, watch } from 'vue' | |
35 | +import { PropType, toRefs, ref, nextTick, computed } from 'vue' | |
37 | 36 | import { CreateComponentType } from '@/packages/index.d' |
38 | 37 | import { vue3dLoader } from 'vue-3d-loader' |
39 | 38 | import { useDesignStore } from '@/store/modules/designStore/designStore' |
40 | -import { useDetectWebGLContext } from '@/utils/external/useSupportWebGL' | |
41 | 39 | |
42 | 40 | const designStore = useDesignStore() |
43 | 41 | |
... | ... | @@ -54,7 +52,6 @@ const themeColor = computed(() => { |
54 | 52 | |
55 | 53 | const vue3dLoaderRef = ref(null) |
56 | 54 | |
57 | -//threejs配置 | |
58 | 55 | const webGLRendererOptions = { |
59 | 56 | alpha: true, // 透明 |
60 | 57 | antialias: true, // 抗锯齿 |
... | ... | @@ -98,12 +95,7 @@ const { |
98 | 95 | showFps, |
99 | 96 | labels, |
100 | 97 | lightInput |
101 | -} = toRefs(props.chartConfig.option) as any | |
102 | - | |
103 | -watch(dataset, (newData: string) => { | |
104 | - //dateset为空则清除场景 | |
105 | - if (!newData) clearScene.value = true | |
106 | -}) | |
98 | +} = toRefs(props.chartConfig.option) as any | |
107 | 99 | </script> |
108 | 100 | |
109 | 101 | <style lang="scss" scoped> | ... | ... |