浏览代码

fix: 修改各项异性系数

bill 9 月之前
父节点
当前提交
1f2d609148
共有 2 个文件被更改,包括 15 次插入2 次删除
  1. 13 1
      src/view/pano/env.ts
  2. 2 1
      src/view/pano/pano.vue

+ 13 - 1
src/view/pano/env.ts

@@ -28,6 +28,12 @@ const generatePreset = (gl: WebGL2RenderingContext) => {
     gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
     gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
     gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
+    // 设置各向异性过滤参数  
+    const ext = gl.getExtension('EXT_texture_filter_anisotropic');  
+    if (ext) {  
+        const maxAnisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT);  
+        gl.texParameteri(gl.TEXTURE_CUBE_MAP, ext.TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy); // 设置各向异性系数为6  
+    }  
     gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
   };
 
@@ -36,6 +42,12 @@ const generatePreset = (gl: WebGL2RenderingContext) => {
     gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
     gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
     gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
+    // 设置各向异性过滤参数  
+    const ext = gl.getExtension('EXT_texture_filter_anisotropic');  
+    if (ext) {  
+        const maxAnisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT);  
+        gl.texParameteri(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy); // 设置各向异性系数为6  
+    }  
     gl.bindTexture(gl.TEXTURE_2D, null);
   };
 
@@ -81,7 +93,7 @@ const getDrawVaring = (gl: WebGL2RenderingContext) => {
 
 export const init = (canvas: HTMLCanvasElement, initYaw: number) => {
   let activeTex: "skyCubeTex1" | "skyCubeTex" = "skyCubeTex1";
-  const gl = canvas.getContext("webgl2", { preserveDrawingBuffer: true })!;
+  const gl = canvas.getContext("webgl2", { preserveDrawingBuffer: true, antialias: true })!;
   const program = createProgram(gl, envVertSource, envFragSource);
   const program1 = createProgram(gl, envVertSource, envCubeFragSource);
 

+ 2 - 1
src/view/pano/pano.vue

@@ -58,6 +58,7 @@ import {
   getPointPano,
   ScenePoint,
   scenePoints,
+  SceneType,
 } from "@/store/scene";
 import { copyText, toDegrees, getTextBound } from "@/util";
 import { ElMessage } from "element-plus";
@@ -92,7 +93,7 @@ watchEffect(() => {
 
 const panoUrls = computed(() => {
   return (
-    point.value && getPointPano(point.value, point.value.cameraType === DeviceType.CLUNT)
+    point.value && getPointPano(point.value, [SceneType.CLUNT, SceneType.MESH].includes(point.value.sceneType))
   );
 });
 const update = ref(false);