Browse Source

Unity 5.5 Lighting Updates

Lightmap texture importer fixes. Default light intensity factor and
light rotation offset added to scene exporter window.
MackeyK24 8 years ago
parent
commit
ef262081ed

+ 4 - 0
Exporters/Unity 5/EditorToolkit/Assets/Babylon/Source/ExportationOptions.cs

@@ -13,6 +13,8 @@ namespace Unity3D2Babylon
         public bool AttachUnityEditor { get; set; }
         public bool AttachUnityEditor { get; set; }
         public bool ShowDebugControls { get; set; }
         public bool ShowDebugControls { get; set; }
         public float ReflectionDefaultLevel { get; set; }
         public float ReflectionDefaultLevel { get; set; }
+        public SerializableVector3 LightRotationOffset { get; set; }
+        public float LightIntensityFactor { get; set; }
         public int DefaultQualityLevel { get; set; }
         public int DefaultQualityLevel { get; set; }
         public bool EmbeddedShaders { get; set; }
         public bool EmbeddedShaders { get; set; }
         public bool ExportLightmaps { get; set; }
         public bool ExportLightmaps { get; set; }
@@ -53,6 +55,8 @@ namespace Unity3D2Babylon
             CompileTypeScript = true;
             CompileTypeScript = true;
             AttachUnityEditor = true;
             AttachUnityEditor = true;
             ShowDebugControls = true;
             ShowDebugControls = true;
+            LightRotationOffset = new Vector3(0,0,0);
+            LightIntensityFactor = 1f;
             ReflectionDefaultLevel = 0.25f;
             ReflectionDefaultLevel = 0.25f;
             DefaultQualityLevel = 90;
             DefaultQualityLevel = 90;
             EmbeddedShaders = true;
             EmbeddedShaders = true;

+ 7 - 0
Exporters/Unity 5/EditorToolkit/Assets/Babylon/Source/ExporterWindow.cs

@@ -460,6 +460,13 @@ namespace Unity3D2Babylon
             exportationOptions.DefaultPhysicsEngine = (int)(BabylonPhysicsEngine)EditorGUILayout.EnumPopup("Default Physics Engine", (BabylonPhysicsEngine)exportationOptions.DefaultPhysicsEngine, GUILayout.ExpandWidth(true));
             exportationOptions.DefaultPhysicsEngine = (int)(BabylonPhysicsEngine)EditorGUILayout.EnumPopup("Default Physics Engine", (BabylonPhysicsEngine)exportationOptions.DefaultPhysicsEngine, GUILayout.ExpandWidth(true));
             EditorGUILayout.EndHorizontal();
             EditorGUILayout.EndHorizontal();
             EditorGUILayout.Space();
             EditorGUILayout.Space();
+            EditorGUILayout.BeginHorizontal();
+            GUILayout.Label(" Light Rotation Offset");
+            exportationOptions.LightRotationOffset = EditorGUILayout.Vector3Field("", exportationOptions.LightRotationOffset, GUILayout.ExpandWidth(false));
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.Space();
+            exportationOptions.LightIntensityFactor = EditorGUILayout.Slider(" Light Intensity Factor", exportationOptions.LightIntensityFactor, 0, 10.0f);
+            EditorGUILayout.Space();
             exportationOptions.ReflectionDefaultLevel = EditorGUILayout.Slider(" Default Reflection Level", exportationOptions.ReflectionDefaultLevel, 0, 1.0f);
             exportationOptions.ReflectionDefaultLevel = EditorGUILayout.Slider(" Default Reflection Level", exportationOptions.ReflectionDefaultLevel, 0, 1.0f);
             EditorGUILayout.Space();
             EditorGUILayout.Space();
             exportationOptions.DefaultImageFormat = (int)(BabylonImageFormat)EditorGUILayout.EnumPopup(" Prefered Texture Format", (BabylonImageFormat)exportationOptions.DefaultImageFormat, GUILayout.ExpandWidth(true));
             exportationOptions.DefaultImageFormat = (int)(BabylonImageFormat)EditorGUILayout.EnumPopup(" Prefered Texture Format", (BabylonImageFormat)exportationOptions.DefaultImageFormat, GUILayout.ExpandWidth(true));

+ 5 - 2
Exporters/Unity 5/EditorToolkit/Assets/Babylon/Source/SceneBuilder.Lights.cs

@@ -98,11 +98,14 @@ namespace Unity3D2Babylon
 
 
             var direction = new Vector3(0, 0, 1);
             var direction = new Vector3(0, 0, 1);
             var transformedDirection = light.transform.TransformDirection(direction);
             var transformedDirection = light.transform.TransformDirection(direction);
+            transformedDirection[0] += exportationOptions.LightRotationOffset.X;
+            transformedDirection[1] += exportationOptions.LightRotationOffset.Y;
+            transformedDirection[2] += exportationOptions.LightRotationOffset.Z;
             babylonLight.direction = transformedDirection.ToFloat();
             babylonLight.direction = transformedDirection.ToFloat();
-
+            
             babylonLight.diffuse = light.color.ToFloat();
             babylonLight.diffuse = light.color.ToFloat();
 
 
-            babylonLight.intensity = light.intensity;
+            babylonLight.intensity = light.intensity * exportationOptions.LightIntensityFactor;
 
 
             babylonLight.angle = light.spotAngle * (float)Math.PI / 180;
             babylonLight.angle = light.spotAngle * (float)Math.PI / 180;
             babylonLight.exponent = 1.0f;
             babylonLight.exponent = 1.0f;

+ 1 - 1
Exporters/Unity 5/EditorToolkit/Assets/Babylon/Source/SceneBuilder.Materials.cs

@@ -211,7 +211,7 @@ namespace Unity3D2Babylon
                 var previousAlphaSource = importTool.textureImporter.alphaSource;
                 var previousAlphaSource = importTool.textureImporter.alphaSource;
                 var previousTextureType = importTool.textureImporter.textureType;
                 var previousTextureType = importTool.textureImporter.textureType;
                 importTool.SetReadable();
                 importTool.SetReadable();
-                importTool.textureImporter.textureType = TextureImporterType.Default;
+                importTool.textureImporter.textureType = (isLightmap) ? TextureImporterType.Lightmap : TextureImporterType.Default;
                 importTool.textureImporter.alphaSource = TextureImporterAlphaSource.FromInput;
                 importTool.textureImporter.alphaSource = TextureImporterAlphaSource.FromInput;
                 importTool.textureImporter.convertToNormalmap = false;
                 importTool.textureImporter.convertToNormalmap = false;
                 AssetDatabase.ImportAsset(texturePath);
                 AssetDatabase.ImportAsset(texturePath);

BIN
Exporters/Unity 5/EditorToolkit/Redist/Asset Store-5.x/BabylonJS/BabylonJS Editor Toolkit.unitypackage