![]() |
Skylicht Engine
|
The object class helps to initialize a model from a path or prefab, and gets the model's material to draw it on the screen. More...
#include <RenderMesh/CRenderMesh.h>
Public Member Functions | |
| virtual void | initComponent () |
| virtual void | updateComponent () |
| virtual CObjectSerializable * | createSerializable () |
| virtual void | loadSerializable (CObjectSerializable *object) |
| void | refreshModelAndMaterial (bool reloadModel=true) |
| void | initFromPrefab (CEntityPrefab *prefab) |
| void | initFromMeshFile (const char *path, bool loadNormalMap=true, bool loadTexcoord2=false) |
| void | initMaterialFromFile (const char *material) |
| void | changeMaterialFromFile (const char *material) |
| void | changeShaderForAllMaterials (const char *shader) |
| void | initMaterial (ArrayMaterial &materials, bool cloneMaterial=false) |
| void | enableOptimizeForRender (bool b) |
| void | enableInstancing (bool b) |
| void | enableInstancingMaterialForEntity (bool b) |
| void | setShadowCasting (bool b) |
| bool | isShadowCasting () |
| void | setLightLayers (u32 layers) |
| u32 | getLightLayers () |
| void | removeRenderMeshName (const char *name) |
| void | removeRenderMesh (CRenderMeshData *renderMesh) |
| void | removeMaterials (ArrayMaterial &materials) |
| void | attachMeshFromPrefab (CEntityPrefab *prefab, std::vector< std::string > &names, ArrayMaterial &materials, bool cloneMaterial=false, bool resetBoneTransform=false) |
| void | resetDefaultTransform (CEntityPrefab *prefab, std::vector< std::string > &transformsName) |
| int | getMaterialCount () |
| const std::string & | getMeshResource () |
| const std::string & | getMaterialResource () |
| CMaterial * | getMaterial (int i) |
| std::vector< CRenderMeshData * > & | getRenderers () |
| std::vector< CWorldTransformData * > & | getRenderTransforms () |
| std::vector< CWorldTransformData * > & | getAllTransforms () |
| core::aabbox3df | getBounds () |
| void | printEntites () |
| CWorldTransformData * | getChildTransform (const char *name) |
| int | getChildTransforms (const char *name, std::vector< CWorldTransformData * > &childs) |
| int | getChildTransforms (CWorldTransformData *transform, std::vector< CWorldTransformData * > &childs, size_t from=0) |
| Public Member Functions inherited from Skylicht::CEntityHandler | |
| virtual void | onUpdateCullingLayer (u32 mask) |
| CEntity * | searchEntityByID (const char *id) |
| virtual CEntity * | createEntity () |
| virtual CEntity * | createEntity (CEntity *parent) |
| virtual CEntity * | spawn () |
| virtual void | removeEntity (CEntity *entity) |
| virtual void | removeAllEntities () |
| void | regenerateEntityId () |
| core::array< CEntity * > & | getEntities () |
| int | getEntityCount () |
| void | getEntitiesTransforms (core::array< core::matrix4 > &result) |
| void | setShadowCasting (bool b) |
| bool | isShadowCasting () |
| Public Member Functions inherited from Skylicht::CComponentSystem | |
| const char * | getName () |
| virtual void | reset () |
| virtual void | startComponent () |
| virtual void | endUpdate () |
| virtual void | onEnable (bool b) |
| void | setEnable (bool b) |
| bool | isEnable () |
| CGameObject * | getGameObject () |
| void | setEnableSerializable (bool b) |
| bool | isSerializable () |
| void | addLinkComponent (CComponentSystem *comp) |
| void | removeAllLink () |
| Public Member Functions inherited from Skylicht::IActivatorObject | |
| virtual | ~IActivatorObject () |
| Virtual destructor for polymorphic activator objects. | |
Protected Member Functions | |
| void | initNoOptimizeFromPrefab (CEntityPrefab *prefab) |
| void | initOptimizeFromPrefab (CEntityPrefab *prefab) |
| void | releaseMaterial () |
| void | releaseEntities () |
| bool | addMaterial (CMaterial *material) |
| Protected Member Functions inherited from Skylicht::CEntityHandler | |
| void | setEntities (CEntity **entities, u32 count) |
| void | removeChilds (CEntity *entity) |
| Protected Member Functions inherited from Skylicht::CComponentSystem | |
| void | setOwner (CGameObject *obj) |
Protected Attributes | |
| CEntity * | m_root |
| std::vector< CWorldTransformData * > | m_renderTransforms |
| std::vector< CWorldTransformData * > | m_transforms |
| std::vector< CRenderMeshData * > | m_renderers |
| ArrayMaterial | m_materials |
| std::string | m_meshFile |
| std::string | m_materialFile |
| bool | m_optimizeForRender |
| bool | m_loadTexcoord2 |
| bool | m_loadNormal |
| bool | m_fixInverseNormal |
| bool | m_enableInstancing |
| u32 | m_lightLayers |
| bool | m_shadowCasting |
| Protected Attributes inherited from Skylicht::CEntityHandler | |
| core::array< CEntity * > | m_entities |
| bool | m_shadowCasting |
| Protected Attributes inherited from Skylicht::CComponentSystem | |
| CGameObject * | m_gameObject |
| bool | m_enable |
| bool | m_serializable |
| std::vector< CComponentSystem * > | m_linkComponent |
Additional Inherited Members | |
| Static Public Member Functions inherited from Skylicht::CComponentSystem | |
| static int | useComponent (CComponentSystem *used) |
The object class helps to initialize a model from a path or prefab, and gets the model's material to draw it on the screen.
CRenderMesh can handle both static and skinned meshes. To ensure it renders properly, you need to use the right shader for the specific mesh type. You'll need to check if the input model has attributes like normals or texcoord2.
CRenderMesh supports instancing multiple objects, but the shader from the material must be linked to an instancing shader.
High-level component for rendering standard 3D models.
If not, the model will not render. You can find more information in CShader, or in some example shaders in BuiltIn\Shader\Toon, BuiltIn\Shader\SpecularGlossiness\Deferred
You can initialize CRenderMesh using either the Editor or code
|
virtual |
Reimplemented from Skylicht::CComponentSystem.
|
virtual |
Reimplemented from Skylicht::CEntityHandler.
|
virtual |
Reimplemented from Skylicht::CComponentSystem.
|
virtual |
Reimplemented from Skylicht::CEntityHandler.