Ogre 中加载 material方法步骤
Ogre 中加载 material方法步骤
1.创建一个ManualObject对象;
2.设置索引号
3.到目录../OgreSDK_vc9_v1-7-2/media/materials/scripts
新建一个material文件
Guide.material
- material MyMaterial1
- {
- technique
- {
- pass
- {
- texture_unit texture1
- {
- texture terr_rock6.jpg
- rotate_anim 0.1
- }
- }
- }
- }
- material MyMaterial2 : MyMaterial1
- {
- set_texture_alias texture1 Water02.jpg
- }
4,在createScene()中创建两个实体Entity
5.调用setMaterial方法
全部源代码为:
- #include "ExampleApplication.h"
- class Example :public ExampleApplication
- {
- public:
- void createScene()
- {
- Ogre::ManualObject* manual =
- mSceneMgr->createManualObject("Quad");
- manual->begin("MyMaterial1",
- RenderOperation::OT_TRIANGLE_LIST);
- manual->position(5.0, 0.0, 0.0);
- manual->textureCoord(0,1.0);
- manual->position(-5.0, 10.0, 0.0);
- manual->textureCoord(1.0,0);
- manual->position(-5.0, 0.0,0.0);
- manual->textureCoord(1.0,1.0);
- manual->position(5.0,10.0,0.0);
- manual->textureCoord(0,0);
- manual->index(0);
- manual->index(1);
- manual->index(2);
- manual->index(0);
- manual->index(3);
- manual->index(1);
- manual->end();//忽略 调用方法end()将会exception
- manual->convertToMesh("Quad");
- Ogre::Entity* ent =mSceneMgr->createEntity("Quad");
- Ogre::SceneNode* node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node1");
- node->attachObject(ent);
- ent = mSceneMgr->createEntity("Quad");
- ent->setMaterialName("MyMaterial2");
- node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node2",Ogre::Vector3(15,0,0));
- node->attachObject(ent);
- }
- };
- int main(void )
- {
- Example app;
- app.go();
- return 0;
- }