Autor Wątek: [ogre] ustawnienie textury w shaderze  (Przeczytany 1198 razy)

Offline Khaine

  • Użytkownik

# Wrzesień 19, 2008, 23:54:07
Jak mozna ustawic texture w shaderze/materiale? Mam nastepujacy kod:
Entity *pEnt = pSceneManager->createEntity("mesh", "mesh.mesh");
pEnt->getSubEntity(0)->setMaterialName("jakis_material");

Chcialbym teraz ustawic w materiale/shaderze (konkretnie hlsl/cg), texture, ktora jest ladowana w createEntity dla danego subMesha, czyli cos na zasadzie material->setTexture("textura", index). Jedyne co na razie u dalo mi sie zrobic to w materiale ustawic texture (texture_unit) i w shaderze (uniform sampler2D texture : register(s0)), ale ogre'a uzywam dopiero od wczoraj i nie udalo mi sie jeszcze nic wygooglac, a w samplach tylko takie rozwiazanie znajduje.

Bede wdzieczny za pomoc.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Bocian

  • Użytkownik

# Luty 18, 2009, 16:40:46
Ja znalazlem to:

Entity* boisko = mSceneMgr->createEntity("boisko", "boisko.mesh");
SceneNode* boiskoNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
boiskoNode->attachObject(boisko);
 //boisko->setMaterialName("Examples/GrassFloor");   //mozna użyć gotowego materiału lub:
MaterialPtr mat_trawa = MaterialManager::getSingleton().create("trawa", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
TextureUnitState* t_trawa = mat_trawa->getTechnique(0)->getPass(0)->createTextureUnitState("trawa1.jpg");
t_trawa->setTextureScale(10,10);  //powieksza skale tekstury
boisko->setMaterialName("trawa");
« Ostatnia zmiana: Marzec 10, 2009, 18:07:57 wysłana przez Bocian »