Changeset 431
- Timestamp:
- 11/25/11 13:56:35 (6 months ago)
- Location:
- cafu/trunk
- Files:
-
- 1 added
- 9 modified
-
CaWE/ModelEditor/Renderer3D.cpp (modified) (2 diffs)
-
CaWE/ModelEditor/Renderer3D.hpp (modified) (2 diffs)
-
CaWE/ModelEditor/ScenePropGrid.cpp (modified) (3 diffs)
-
CaWE/ModelEditor/ScenePropGrid.hpp (modified) (1 diff)
-
CaWE/ModelEditor/SceneView3D.cpp (modified) (2 diffs)
-
CaWE/res/CaWE.cmat (modified) (1 diff)
-
CaWE/res/white.png (added)
-
Libs/MaterialSystem/Expression.cpp (modified) (1 diff)
-
Libs/MaterialSystem/Material.cpp (modified) (2 diffs)
-
Libs/Models/Loader.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
cafu/trunk/CaWE/ModelEditor/Renderer3D.cpp
r285 r431 43 43 m_RMatTerrainEdit =MatSys::Renderer->RegisterMaterial(MaterialManager->GetMaterial("CaWE/TerrainEditTool3D")); 44 44 m_RMatTerrainEyeDropper=MatSys::Renderer->RegisterMaterial(MaterialManager->GetMaterial("CaWE/TerrainEyeDropper")); 45 m_RMatWhite =MatSys::Renderer->RegisterMaterial(MaterialManager->GetMaterial("CaWE/White" )); 46 m_RMatTexturedWireframe=MatSys::Renderer->RegisterMaterial(MaterialManager->GetMaterial("CaWE/TexturedWireframe")); 45 47 } 46 48 … … 56 58 MatSys::Renderer->FreeMaterial(m_RMatTerrainEdit ); 57 59 MatSys::Renderer->FreeMaterial(m_RMatTerrainEyeDropper); 60 MatSys::Renderer->FreeMaterial(m_RMatWhite ); 61 MatSys::Renderer->FreeMaterial(m_RMatTexturedWireframe); 58 62 } 59 63 -
cafu/trunk/CaWE/ModelEditor/Renderer3D.hpp
r285 r431 56 56 MatSys::RenderMaterialT* GetRMatTerrainEditorTool() const { return m_RMatTerrainEdit; } 57 57 MatSys::RenderMaterialT* GetRMatTerrainEyeDropper() const { return m_RMatTerrainEyeDropper; } 58 MatSys::RenderMaterialT* GetRMatWhite() const { return m_RMatWhite; } 59 MatSys::RenderMaterialT* GetRMatTexturedWireframe() const { return m_RMatTexturedWireframe; } 58 60 59 61 /// Returns a "shade" according to the direction of the given normal vector. … … 90 92 MatSys::RenderMaterialT* m_RMatOverlayOZ; ///< The render material for selection overlays (added in a second pass) (with polygon z-offset, e.g. for decals). 91 93 MatSys::RenderMaterialT* m_RMatTerrainEdit; ///< The render material overlay that is used to render the tool position in a terrain if the terrain edit tool is active. 92 MatSys::RenderMaterialT* m_RMatTerrainEyeDropper; ///< The Render material overlay that is used to render the eyedropper tool position on a terrain. 94 MatSys::RenderMaterialT* m_RMatTerrainEyeDropper; ///< The render material overlay that is used to render the eyedropper tool position on a terrain. 95 MatSys::RenderMaterialT* m_RMatWhite; ///< This render material is intended as "debug" material for models in the Model Editor, so that the user can better inspect the surface lighting of the model. 96 MatSys::RenderMaterialT* m_RMatTexturedWireframe; ///< This render material is intended as "debug" material for models in the Model Editor, so that the user can better inspect the surface details of the model, e.g. at what vertex exactly are the GUI fixture points, etc. 93 97 }; 94 98 } -
cafu/trunk/CaWE/ModelEditor/ScenePropGrid.cpp
r402 r431 53 53 m_Model_ShowTriangleNormals(wxConfigBase::Get()->Read("ModelEditor/SceneSetup/Model_ShowTriangleNormals", 0l)!=0), 54 54 m_Model_ShowTangentSpace(wxConfigBase::Get()->Read("ModelEditor/SceneSetup/Model_ShowTangentSpace", 0l)!=0), 55 m_Model_DebugMaterial(0), 55 56 m_AmbientLightColor(wxColour(wxConfigBase::Get()->Read("ModelEditor/SceneSetup/AmbientLightColor", "rgb(96, 96, 96)"))), 56 57 m_AmbientTexture(NULL), … … 133 134 AppendIn(ModelProps, new wxBoolProperty("Show triangle normals", wxPG_LABEL, m_Model_ShowTriangleNormals)); 134 135 AppendIn(ModelProps, new wxBoolProperty("Show tangent-space", wxPG_LABEL, m_Model_ShowTangentSpace)); 136 const wxChar* DebugMaterialStrings[] = { wxT("normal/none"), wxT("plain (white)"), wxT("wire-frame"), NULL }; 137 const long DebugMaterialIndices[] = { 0, 1, 2 }; 138 AppendIn(ModelProps, new wxEnumProperty("Debug material", wxPG_LABEL, DebugMaterialStrings, DebugMaterialIndices, m_Model_DebugMaterial)); 135 139 136 140 … … 224 228 else if (PropName=="Model.Show triangle normals") m_Model_ShowTriangleNormals=Prop->GetValue().GetBool(); 225 229 else if (PropName=="Model.Show tangent-space") m_Model_ShowTangentSpace =Prop->GetValue().GetBool(); 230 else if (PropName=="Model.Debug material") m_Model_DebugMaterial =Prop->GetValue().GetInteger(); 226 231 else if (PropName=="Frame No.") { AnimState.Pose.SetFrameNr(PropValueF); m_IsRecursiveSelfNotify=true; m_Parent->GetModelDoc()->UpdateAllObservers_AnimStateChanged(); m_IsRecursiveSelfNotify=false; } 227 232 else if (PropName=="Speed") { AnimState.Speed=PropValueF; m_IsRecursiveSelfNotify=true; m_Parent->GetModelDoc()->UpdateAllObservers_AnimStateChanged(); m_IsRecursiveSelfNotify=false; } -
cafu/trunk/CaWE/ModelEditor/ScenePropGrid.hpp
r402 r431 60 60 bool m_Model_ShowTriangleNormals; 61 61 bool m_Model_ShowTangentSpace; 62 unsigned int m_Model_DebugMaterial; ///< 0 for "normal/none", 1 for "plain (white)", 2 for "wire-frame" 62 63 wxColour m_AmbientLightColor; 63 64 MatSys::TextureMapI* m_AmbientTexture; ///< A uniform 2x2 texture colored in the ambient light color, used as lightmap for the ground plane. -
cafu/trunk/CaWE/ModelEditor/SceneView3D.cpp
r429 r431 404 404 if (ScenePropGrid->m_Model_ShowMesh) 405 405 { 406 switch (ScenePropGrid->m_Model_DebugMaterial) 407 { 408 case 1: 409 MatSys::Renderer->SetCurrentMaterial(m_Renderer.GetRMatWhite()); 410 MatSys::Renderer->LockCurrentMaterial(true); 411 break; 412 413 case 2: 414 MatSys::Renderer->SetCurrentMaterial(m_Renderer.GetRMatTexturedWireframe()); 415 MatSys::Renderer->LockCurrentMaterial(true); 416 break; 417 } 418 406 419 Anim.Pose.Draw(ModelDoc->GetSelSkinNr(), 0.0f /*LodDist*/); 407 420 … … 415 428 SmPose.SetSuperPose(NULL); 416 429 } 430 431 MatSys::Renderer->LockCurrentMaterial(false); 417 432 } 418 433 -
cafu/trunk/CaWE/res/CaWE.cmat
r36 r431 126 126 blue 1.0 127 127 } 128 129 130 // This material is intended as "debug" material for models in the Model Editor, 131 // so that the user can better inspect the surface lighting of the model. 132 CaWE/White 133 { 134 diffusemap white.png 135 136 red ambientLightRed 137 green ambientLightGreen 138 blue ambientLightBlue 139 } 140 141 142 // This material is intended as "debug" material for models in the Model Editor, 143 // so that the user can better inspect the surface details of the model, 144 // e.g. at what vertex exactly are the GUI fixture points, etc. 145 CaWE/TexturedWireframe 146 { 147 diffusemap white.png 148 149 red ambientLightRed 150 green ambientLightGreen 151 blue ambientLightBlue 152 153 // twoSided 154 polygonMode wireframe 155 } -
cafu/trunk/Libs/MaterialSystem/Expression.cpp
r315 r431 314 314 } 315 315 316 case SymbolTime: 317 return "time"; 318 319 case SymbolALRed: 320 return "ambientLightRed"; 321 322 case SymbolALGreen: 323 return "ambientLightGreen"; 324 325 case SymbolALBlue: 326 return "ambientLightBlue"; 327 316 328 default: 317 329 return "<expr>"; -
cafu/trunk/Libs/MaterialSystem/Material.cpp
r309 r431 487 487 void MaterialT::Save(std::ostream& OutStream) const 488 488 { 489 const static MaterialT RefMat; // Use a reference object here, just in case we ever change the defaults. 489 490 const char* INDENT=" "; 490 491 … … 514 515 if (PolygonMode==Points) OutStream << INDENT << "polygonMode points" << "\n"; 515 516 516 float f; const ExpressionT::SymbolsT ExpSym; 517 f=AlphaTestValue.Evaluate(ExpSym).GetAsFloat(); if (f>=0.0f) OutStream << INDENT << "alphaTest" << " " << f << "\n"; 518 f=RedGen .Evaluate(ExpSym).GetAsFloat(); if (f!=1.0f) OutStream << INDENT << "red" << " " << f << "\n"; 519 f=GreenGen.Evaluate(ExpSym).GetAsFloat(); if (f!=1.0f) OutStream << INDENT << "green" << " " << f << "\n"; 520 f=BlueGen .Evaluate(ExpSym).GetAsFloat(); if (f!=1.0f) OutStream << INDENT << "blue" << " " << f << "\n"; 521 f=AlphaGen.Evaluate(ExpSym).GetAsFloat(); if (f!=1.0f) OutStream << INDENT << "alpha" << " " << f << "\n"; 517 mcs=AlphaTestValue.GetString(); if (mcs!="<expr>" && mcs!=RefMat.AlphaTestValue.GetString()) OutStream << INDENT << "alphaTest" << " " << mcs << "\n"; 518 mcs=RedGen .GetString(); if (mcs!="<expr>" && mcs!=RefMat.RedGen .GetString()) OutStream << INDENT << "red " << " " << mcs << "\n"; 519 mcs=GreenGen .GetString(); if (mcs!="<expr>" && mcs!=RefMat.GreenGen .GetString()) OutStream << INDENT << "green" << " " << mcs << "\n"; 520 mcs=BlueGen .GetString(); if (mcs!="<expr>" && mcs!=RefMat.BlueGen .GetString()) OutStream << INDENT << "blue " << " " << mcs << "\n"; 521 mcs=AlphaGen .GetString(); if (mcs!="<expr>" && mcs!=RefMat.AlphaGen .GetString()) OutStream << INDENT << "alpha" << " " << mcs << "\n"; 522 522 523 523 if (BlendFactorSrc!=None || BlendFactorDst!=None) -
cafu/trunk/Libs/Models/Loader.cpp
r410 r431 150 150 // Mat.DepthOffset =-1.0f; 151 151 Mat.DiffMapComp =MapCompositionT("file-not-found", "./"); 152 // Mat.RedGen =ExpressionT(1.0f); 153 // Mat.UseMeshColors =true; // Mesh colors aren't used for rendering models, but unfortunately required for rendering wire-frame without diffuse-map texture image. 154 Mat.TwoSided =true; // For wire-frame, render the backsides as well. 152 Mat.RedGen =ExpressionT(ExpressionT::SymbolALRed); // Modulate the model texture with the ambient light color. 153 Mat.GreenGen =ExpressionT(ExpressionT::SymbolALGreen); 154 Mat.BlueGen =ExpressionT(ExpressionT::SymbolALBlue); 155 // Mat.UseMeshColors =true; // Mesh colors aren't used for rendering models, but unfortunately required for rendering wire-frame without diffuse-map texture image. 156 Mat.TwoSided =true; // For wire-frame, render the backsides as well. 155 157 Mat.meta_EditorSave=EditorSave; 156 158
