Nicolas Cannasse преди 7 години
родител
ревизия
9d77ec076d
променени са 3 файла, в които са добавени 26 реда и са изтрити 1 реда
  1. 4 0
      h3d/mat/PbrMaterialSetup.hx
  2. 1 1
      h3d/scene/pbr/Irradiance.hx
  3. 21 0
      h3d/shader/pbr/CubeLod.hx

+ 4 - 0
h3d/mat/PbrMaterialSetup.hx

@@ -24,6 +24,10 @@ class PbrMaterialSetup extends MaterialSetup {
 
 	public var irrad(get,set) : h3d.scene.pbr.Irradiance;
 
+	public function new(?name="PBR") {
+		super(name);
+	}
+
 	function get_irrad() : h3d.scene.pbr.Irradiance {
 		return @:privateAccess h3d.Engine.getCurrent().resCache.get(h3d.scene.pbr.Irradiance);
 	}

+ 1 - 1
h3d/scene/pbr/Irradiance.hx

@@ -166,7 +166,7 @@ class Irradiance  {
 	public var specSize : Int;
 	public var specLevels : Int;
 
-	public var ignoredSpecLevels : Int = 4;
+	public var ignoredSpecLevels : Int = 1;
 
 	public var envMap : h3d.mat.Texture;
 	public var lut : h3d.mat.Texture;

+ 21 - 0
h3d/shader/pbr/CubeLod.hx

@@ -0,0 +1,21 @@
+package h3d.shader.pbr;
+
+class CubeLod extends hxsl.Shader {
+
+	static var SRC = {
+
+		var pixelColor : Vec4;
+		var transformedNormal : Vec3;
+		@param var texture : SamplerCube;
+		@param var lod : Float;
+		function fragment() {
+			pixelColor.rgb *= textureCubeLod(texture,transformedNormal,lod).rgb;
+		}
+
+	}
+
+	public function new(?texture) {
+		super();
+		this.texture = texture;
+	}
+}