瀏覽代碼

depth:突然发现ratio>1的用resolution不对,得用2才对。但是之前明明记得不是这样

xzw 2 年之前
父節點
當前提交
5adbfa8d73
共有 3 個文件被更改,包括 4 次插入4 次删除
  1. 2 2
      libs/three.js/lines/LineMaterial.js
  2. 1 1
      src/custom/materials/DepthBasicMaterial.js
  3. 1 1
      src/custom/objects/Sprite.js

+ 2 - 2
libs/three.js/lines/LineMaterial.js

@@ -274,7 +274,7 @@ ShaderLib[ 'line' ] = {
 				offset *= lineWidth;
 
 				// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...
-				offset /= resolution.y * devicePixelRatio;
+				offset /= resolution.y; //* devicePixelRatio;
 
 				// select end
 				vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;
@@ -860,7 +860,7 @@ class LineMaterial extends ShaderMaterial {
         this.events = {
             setSize:(e)=>{//如果出现横条状的异常,往往是viewportOffset出错  //地图不需要
                 let viewport = e.viewport 
-                this.uniforms.resolution.value.copy(viewport.resolution)  
+                this.uniforms.resolution.value.copy(viewport.resolution2)  
                 this.uniforms.devicePixelRatio.value = window.devicePixelRatio 
                 this.lineWidth = this.lineWidth_ //update
                 if(!this.useDepth || !e.viewport.camera.isPerspectiveCamera || !e.viewport)return

+ 1 - 1
src/custom/materials/DepthBasicMaterial.js

@@ -43,7 +43,7 @@ export default class DepthBasicMaterial extends THREE.ShaderMaterial{
                 if(!this.useDepth || !e.viewport.camera.isPerspectiveCamera || !e.viewport)return
                 let viewport = e.viewport
                 let viewportOffset = viewport.offset || new THREE.Vector2() 
-                this.uniforms.resolution.value.copy(viewport.resolution) 
+                this.uniforms.resolution.value.copy(viewport.resolution2)  //2023.6.12突然发现ratio>1的用resolution不对,得用2才对。但是之前明明记得不是这样
                 this.uniforms.viewportOffset.value.copy(viewportOffset)
                 
                 

+ 1 - 1
src/custom/objects/Sprite.js

@@ -66,7 +66,7 @@ export default class Sprite extends THREE.Mesh{
         while(parent){
             if(parent.visible === false){
                 v = false
-                break; 
+                break;  
             }
             lastParent = parent
             parent = parent.parent