Browse Source

fix: webgl1 bug-- round

xzw 1 month ago
parent
commit
552cef7632
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/custom/materials/ModelTextureMaterial.js

+ 4 - 1
src/custom/materials/ModelTextureMaterial.js

@@ -463,7 +463,10 @@ export default class ModelTextureMaterial extends THREE.RawShaderMaterial {
             defines.UnableMixTwoDepth = 1  //该系统在开启硬件加速后,webgl容易出bug。如过渡时黑屏报错,因无法将两个depth叠加。见bug记录
         }  
         let {vs,fs} = Common.changeShaderToWebgl2(shader.vertexShader, shader.fragmentShader, 'RawShaderMaterial')
-        
+        if(!Potree.settings.isWebgl2){
+            defines['round(x)'] = 'floor(x + 0.5)'   //webgl1 unsupport round
+            fs = fs.replace('int(round(color.g * 255.0)) << 8', 'int(round(color.g * 255.0 * pow(2.0, 8.0)))')  //unsupport <<
+        }
         super({
             fragmentShader: fs,
 			vertexShader: vs,