Browse Source

added forwardAlpha

Nicolas Cannasse 4 years ago
parent
commit
9771dbd8c5
2 changed files with 10 additions and 1 deletions
  1. 9 1
      h3d/mat/PbrMaterial.hx
  2. 1 0
      h3d/scene/pbr/Renderer.hx

+ 9 - 1
h3d/mat/PbrMaterial.hx

@@ -89,12 +89,20 @@ class PbrMaterial extends Material {
 				}
 			} else if( am != null )
 				mainPass.removeShader(am);
-			if( props == null || (props:PbrProps).mode == PBR ) {
+			var mode = props == null ? PBR : (props:PbrProps).mode;
+			switch( mode ) {
+			case PBR:
 				mainPass.setPassName(switch( b ) {
 				case Add, AlphaAdd, SoftAdd: "additive";
 				case Alpha, AlphaMultiply: "alpha";
 				default: "default";
 				});
+			case Forward:
+				mainPass.setPassName(switch( b ) {
+				case Alpha, AlphaMultiply: "forwardAlpha";
+				default: "forward";
+				});
+			default:
 			}
 		}
 		return this.blendMode = b;

+ 1 - 0
h3d/scene/pbr/Renderer.hx

@@ -460,6 +460,7 @@ class Renderer extends h3d.scene.Renderer {
 		var ls = hxd.impl.Api.downcast(getLightSystem(), h3d.scene.pbr.LightSystem);
 		ls.forwardMode = true;
 		draw("forward");
+		renderPass(defaultPass, get("forwardAlpha"), backToFront);
 		ls.forwardMode = false;
 		end();