Forráskód Böngészése

fix wrt fwd light

Nicolas Cannasse 4 éve
szülő
commit
2250a5e389
2 módosított fájl, 11 hozzáadás és 9 törlés
  1. 1 1
      hide/view/Image.hx
  2. 10 8
      hide/view/Particles3D.hx

+ 1 - 1
hide/view/Image.hx

@@ -74,7 +74,7 @@ class Image extends FileView {
 					new hide.view.l3d.CameraController2D(scene.s2d);
 					new hide.view.l3d.CameraController2D(scene.s2d);
 				} else {
 				} else {
 					var r = new h3d.scene.fwd.Renderer();
 					var r = new h3d.scene.fwd.Renderer();
-					scene.s3d.lightSystem.ambientLight.set(1,1,1,1);
+					cast(scene.s3d.lightSystem,h3d.scene.fwd.LightSystem).ambientLight.set(1,1,1,1);
 					scene.s3d.renderer = r;
 					scene.s3d.renderer = r;
 					var sp = new h3d.prim.Sphere(1,64,64);
 					var sp = new h3d.prim.Sphere(1,64,64);
 					sp.addNormals();
 					sp.addNormals();

+ 10 - 8
hide/view/Particles3D.hx

@@ -299,14 +299,16 @@ class Particles3D extends FileView {
 		extra = properties.add(extra, props, function(_) syncProps());
 		extra = properties.add(extra, props, function(_) syncProps());
 
 
 		extra.find(".bounds").change(function(e) bounds.visible = e.getThis().prop("checked"));
 		extra.find(".bounds").change(function(e) bounds.visible = e.getThis().prop("checked"));
-		var defAmbient = scene.s3d.lightSystem.ambientLight.clone();
-		extra.find(".lights").change(function(e) {
-			var ls = scene.s3d.lightSystem;
-			var lfw = Std.downcast(ls, h3d.scene.fwd.LightSystem);
-			var enable = e.getThis().prop("checked");
-			if( lfw != null ) lfw.maxLightsPerObject = enable ? 6 : 0;
-			if( enable ) ls.ambientLight.load(defAmbient) else ls.ambientLight.set(1, 1, 1);
-		});
+		var lfw = Std.downcast(scene.s3d.lightSystem,h3d.scene.fwd.LightSystem);
+		if( lfw != null ) {
+			var defAmbient = lfw.ambientLight.clone();
+			extra.find(".lights").change(function(e) {
+				lfw = Std.downcast(scene.s3d.lightSystem, h3d.scene.fwd.LightSystem);
+				var enable = e.getThis().prop("checked");
+				if( lfw != null ) lfw.maxLightsPerObject = enable ? 6 : 0;
+				if( enable ) lfw.ambientLight.load(defAmbient) else lfw.ambientLight.set(1, 1, 1);
+			});
+		}
 		extra.find(".new").click(function(_) {
 		extra.find(".new").click(function(_) {
 			var g = parts.addGroup();
 			var g = parts.addGroup();
 			g.name = "Group#" + Lambda.count({ iterator : parts.getGroups });
 			g.name = "Group#" + Lambda.count({ iterator : parts.getGroups });