作者:CYM
Levels of Detail,意为多细节层次,LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
Ogre的网格可以在建模软件中设置LOD,也可以在程序中自定义,注意如果一个mesh文件的LOD等级大于1的话就不能被自定义LOD
在Ogre中可以通过Mesh接口来自定义LOD级别,Ogre会根据用户定义的LOD级别以及摄像机与模型的距离自动给出相应的LOD模型
//载入初始网格
MeshPtr mesh=MeshManager::getSingleton().load("athene.mesh",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
//创建LOD模型,第一个参数是和摄像机的距离,第二个是LOD模型资源
mesh->createManualLodLevel(250,"athene_LOD1.mesh");
mesh->createManualLodLevel(500,"athene_LOD2.mesh");
//创建实体
m_entity=render->m_sm->createEntity(mesh->getName());
m_node=render->m_sm->getRootSceneNode()->createChildSceneNode();
m_node->attachObject(m_entity);
m_node->scale(0.1f,0.1f,0.1f);
m_node->setPosition(0.0f,500.0f,0.0f);