Changeset 9422 for code/branches/shaders/src/orxonox
- Timestamp:
- Oct 29, 2012, 5:00:19 PM (12 years ago)
- Location:
- code/branches/shaders/src/orxonox/graphics
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/shaders/src/orxonox/graphics/Model.cc
r9407 r9422 36 36 #include "core/XMLPort.h" 37 37 #include "Scene.h" 38 #include "RenderQueueListener.h" 38 39 #include "graphics/MeshLodInformation.h" 39 40 #include "Level.h" … … 74 75 XMLPortParam(Model, "material", setMaterial, getMaterial, xmlelement, mode); 75 76 XMLPortParam(Model, "shadow", setCastShadows, getCastShadows, xmlelement, mode).defaultValues(true); 77 } 78 79 /** 80 @brief 81 This function turns a string from XML Port into a usable ID for the rendering system 82 It defaults to the main queue if the group isn't recognized. 83 84 @param renderQueueGroup 85 This is a string representing the render queue group. Accepted values: 86 'main', 'stencil glow', 'stencil object' 87 */ 88 const unsigned int Model::getRenderQueueGroupID(const std::string& renderQueueGroup) const 89 { 90 if(renderQueueGroup.compare("stencil glow")==0) 91 { 92 return RENDER_QUEUE_STENCIL_GLOW; 93 } 94 if(renderQueueGroup.compare("stencil object")==0) 95 { 96 return RENDER_QUEUE_STENCIL_OBJECTS; 97 } 98 return RENDER_QUEUE_MAIN; 76 99 } 77 100 … … 107 130 this->attachOgreObject(this->mesh_.getEntity()); 108 131 this->mesh_.getEntity()->setCastShadows(this->bCastShadows_); 132 this->mesh_.getEntity()->setRenderQueueGroup(this->renderQueueGroup_); 109 133 this->mesh_.setVisible(this->isVisible()); 110 134 -
code/branches/shaders/src/orxonox/graphics/Model.h
r9407 r9422 27 27 */ 28 28 29 /** 30 @file Model.h 31 @brief Definition of Model Class 32 */ 33 29 34 #ifndef _Model_H__ 30 35 #define _Model_H__ … … 41 46 class _OrxonoxExport Model : public StaticEntity 42 47 { 48 /** 49 @brief 50 The class Model stores a Mesh and some additional properties, so you can easily render any Model and apply different effects to it. 51 52 You can assign any Material to any Mesh to completely change the way it looks, to further add versatility you can also assign the Model 53 to a render queue group, to enable proper rendering of fancy effect like glowing edges around objects with alpha blending. 54 */ 43 55 public: 44 56 Model(BaseObject* creator); … … 59 71 { return this->meshSrc_; } 60 72 61 //TODO: let this function accept strings instead of ints for the XML Port, so we don't have to rely on static int values which may change in future Ogre revisions 62 inline void setRenderQueueGroup(const int renderQueueGroup) 63 { this->renderQueueGroup_ = renderQueueGroup; this->changedRenderQueueGroup(); } 73 inline void setRenderQueueGroup(const std::string& renderQueueGroup) 74 { this->renderQueueGroup_ = getRenderQueueGroupID(renderQueueGroup); this->changedRenderQueueGroup(); } 64 75 inline const int getRenderQueueGroup() const 65 76 { return this->renderQueueGroup_; } … … 76 87 77 88 protected: 89 /** 90 @brief 91 This function turns a string from XML Port into a usable ID for the rendering system 92 It defaults to the main queue if the group isn't recognized. 93 94 @param renderQueueGroup 95 This is a string representing the render queue group. Accepted values: 96 main, stencil glow, stencil object 97 */ 98 const unsigned int getRenderQueueGroupID(const std::string& renderQueueGroup) const; 99 78 100 void registerVariables(); 79 101 void changedMesh(); … … 91 113 float getBiggestScale(Vector3 scale3d); 92 114 93 std::string meshSrc_; 94 Mesh mesh_; 95 bool bCastShadows_; 96 int renderQueueGroup_;97 std::string materialName_; 115 std::string meshSrc_; //!< This string stores the path where the mesh is stored 116 Mesh mesh_; //!< This is the mesh object linked to this Object, it stores the data from the mesh file in a usable format for the Ogre engine 117 bool bCastShadows_; //!< This value determines whether a Model is casting a shadow or not, turn it off to save performance, when not needed 118 unsigned int renderQueueGroup_; //!< This variable stores which render queue group this object is assigned to 119 std::string materialName_; //!< This string stores the name of the material to be applied to the mesh/model 98 120 99 121 //LoD 100 bool bGlobalEnableLod_; 101 float lodLevel_; 102 bool bLodEnabled_; 103 unsigned int numLodLevels_; 104 float lodReductionRate_; 122 bool bGlobalEnableLod_; //!< Has LoD been turned on in the graphics configuration? 123 float lodLevel_; //!< Standard LoD Level 124 bool bLodEnabled_; //!< Is LoD to be used on this model? 125 unsigned int numLodLevels_; //!< How many LoD does this model feature 126 float lodReductionRate_; //!< How fast should be switched to lower LoDs 105 127 106 128 };
Note: See TracChangeset
for help on using the changeset viewer.