فهرست منبع

Fix Canvas Blending...

Sebastien Vandenberghe 8 سال پیش
والد
کامیت
15de578919

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 4067 - 4067
dist/preview release/customConfigurations/minimalViewer/babylon.d.ts


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2 - 2
dist/preview release/customConfigurations/minimalViewer/babylon.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 3
dist/preview release/customConfigurations/minimalViewer/babylon.max.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 4067 - 4067
dist/preview release/customConfigurations/minimalViewer/babylon.module.d.ts


+ 5 - 3
src/Materials/PBR/babylon.pbrBaseMaterial.ts

@@ -15,6 +15,7 @@
         public SPECULAROVERALPHA = false;
         public CLIPPLANE = false;
         public ALPHATEST = false;
+        public ALPHABLEND = false;
         public ALPHAFROMALBEDO = false;
         public POINTSIZE = false;
         public FOG = false;
@@ -82,7 +83,7 @@
         public MORPHTARGETS_TANGENT = false;
         public NUM_MORPH_INFLUENCERS = 0;
         
-        public ALPHATESTVALUE = 0.4;
+        public ALPHATESTVALUE = 0.5;
         public LDROUTPUT = true;
 
         constructor() {
@@ -92,7 +93,7 @@
 
         public reset(): void {
             super.reset();
-            this.ALPHATESTVALUE = 0.4;
+            this.ALPHATESTVALUE = 0.5;
             this.PBR = true;
         }
     }
@@ -790,7 +791,8 @@
                         defines.METALLICWORKFLOW = true;
                     }   
 
-                    defines.ALPHATESTVALUE = this._alphaCutOff;                 
+                    defines.ALPHATESTVALUE = this._alphaCutOff;
+                    defines.ALPHABLEND = this.needAlphaBlending();
                 }
             }
 

+ 6 - 1
src/Shaders/pbr.fragment.fx

@@ -171,8 +171,13 @@ void main(void) {
 
 #ifndef LINKREFRACTIONTOTRANSPARENCY
 	#if defined(ALPHATEST) && defined(ALPHATESTVALUE)
-		if (alpha < ALPHATESTVALUE)
+		if (alpha <= ALPHATESTVALUE)
 			discard;
+			
+			#ifndef ALPHABLEND
+				// Prevent to blend with the canvas.
+				alpha = 1.0;
+			#endif
 	#endif
 #endif