Browse Source

Working on multi-materials

Josh Engebretson 10 years ago
parent
commit
d5d665ba75

+ 5 - 0
Script/AtomicEditor/ui/frames/inspector/ComponentInspector.ts

@@ -326,6 +326,11 @@ class ComponentInspector extends Atomic.UISection {
 
         });
 
+        var numGeometries = staticModel.numGeometries;
+        if (typeName == "Skybox") {
+          numGeometries = 1;
+        }
+
         for (var x = 0; x < staticModel.numGeometries; x++) {
 
             this.createMaterialClosure(layout, staticModel, x);

+ 2 - 2
Source/AtomicTool/AtomicTool.cpp

@@ -271,8 +271,8 @@ void AtomicTool::Start()
 
         if (!tsystem->LoadProject(projectFile))
         {
-            ErrorExit(ToString("Failed to load project: %s", projectFile.CString()));
-            return;
+            //ErrorExit(ToString("Failed to load project: %s", projectFile.CString()));
+            //return;
         }
 
         // Set the build path

+ 5 - 5
Source/ToolCore/Command/ImportCmd.cpp

@@ -51,9 +51,9 @@ bool ImportCmd::Parse(const Vector<String>& arguments, unsigned startIndex, Stri
 
 void ImportCmd::Run()
 {
-    //ToolSystem* tsystem = GetSubsystem<ToolSystem>();
-    //Project* project = tsystem->GetProject();
-    //String resourcePath = project->GetResourcePath();
+    ToolSystem* tsystem = GetSubsystem<ToolSystem>();
+    Project* project = tsystem->GetProject();
+    String resourcePath = project->GetResourcePath();
 
     String ext = GetExtension(assetFilename_);
 
@@ -75,8 +75,8 @@ void ImportCmd::Run()
 
         SharedPtr<JSONSceneProcess> sceneProcess;
         sceneProcess = new JSONSceneProcess(context_, jimporter);
-        //sceneProcess->Process(resourcePath);
-        //sceneProcess->Write();
+        sceneProcess->Process(resourcePath);
+        sceneProcess->Write();
     }
     else
     {

+ 1 - 1
Source/ToolCore/Command/ImportCmd.h

@@ -20,7 +20,7 @@ public:
     bool Parse(const Vector<String>& arguments, unsigned startIndex, String& errorMsg);
     void Run();
 
-    bool RequiresProjectLoad() { return false; }
+    bool RequiresProjectLoad() { return true; }
 
 private:
 

+ 2 - 0
Source/ToolCore/Import/JSONSceneImporter.cpp

@@ -585,6 +585,8 @@ bool JSONSceneImporter::ParseMaterials(const rapidjson::Value& value)
                     else if (!strcmp(oitr->name.GetString(), "shader"))
                     {
                         shader = oitr->value.GetString();
+
+                        shader.Replace("Legacy Shaders/", "");
                     }
                     else if (!strcmp(oitr->name.GetString(), "mainTexture"))
                     {

+ 3 - 3
Source/ToolCore/Import/JSONSceneProcess.cpp

@@ -129,7 +129,7 @@ bool JSONSceneProcess::ProcessMaterials()
         SharedPtr<Material> material;
         material = new Material(context_);
 
-        material->SetName("Materials/" + jmaterial->GetName() + ".xml");
+        material->SetName("Materials/" + jmaterial->GetName() + ".material");
 
         Technique* _technique = cache->GetResource<Technique>("Techniques/" + technique);
         assert(_technique);
@@ -662,7 +662,7 @@ bool JSONSceneProcess::ProcessComponent(Node* node, const JSONTerrain* jterrain)
     ResourceCache* cache = GetSubsystem<ResourceCache>();
     Image* heightMap = cache->GetResource<Image>(heightMapPath);
 
-    Material* material = cache->GetResource<Material>("Materials/DemoTerrain.xml");
+    Material* material = cache->GetResource<Material>("Materials/DemoTerrain.material");
 
     Terrain* terrain = node->CreateComponent<Terrain>();
 
@@ -962,7 +962,7 @@ bool JSONSceneProcess::Process(const String &resourcePath)
     Node* zoneNode = scene_->CreateChild("Zone");
     Zone* zone = zoneNode->CreateComponent<Zone>();
     zone->SetBoundingBox(BoundingBox(-10000.0f, 10000.f));
-    zone->SetAmbientColor(Color(1, 1, 1));
+    zone->SetAmbientColor(Color(.4f, .4f, .4f));
 
     ProcessTextures();
     ProcessLightmaps();

+ 1 - 2
Source/ToolCore/Import/OpenAssetImporter.cpp

@@ -81,8 +81,7 @@ OpenAssetImporter::OpenAssetImporter(Context* context) : Object(context) ,
         aiProcess_Triangulate |
         aiProcess_GenSmoothNormals |
         aiProcess_LimitBoneWeights |
-        aiProcess_ImproveCacheLocality |
-        aiProcess_RemoveRedundantMaterials |
+        aiProcess_ImproveCacheLocality |        
         aiProcess_FixInfacingNormals |
         aiProcess_FindInvalidData |
         aiProcess_GenUVCoords |