.[ ČeskéHry.cz ].
XNA objekt s vice texturamy a meshparty

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
pospa



Založen: 22. 05. 2010
Příspěvky: 44

PříspěvekZaslal: 27. červenec 2010, 21:44:09    Předmět: XNA objekt s vice texturamy a meshparty Odpovědět s citátem

Ahoj, narazil jsem na problem, prohledal net a jsem zas tady. Mam objekt (napr. animovanyho panaka), kterej ma vlastni texturu pro ruzny casti tela (ruce, nohy, telo, hlava). Kdyz dam vykreslit objekt nize uvedenym kodem, vykresli se mi jen posledni textura na vsechny casti.. co potrebuju, je jasny Sad

kód:

private void Draw (Effect effect)
{
   
   Matrix[] modelTransforms = new Matrix[model.Bones.Count];
   model.CopyAbsoluteBoneTransformsTo(modelTransforms);

   foreach (ModelMesh mesh in model.Meshes)
   {
      foreach (ModelMeshPart meshPart in mesh.MeshParts)
            {
                  effect.DiffuseTexture = textureManager.GetTexture(meshPart)
                  meshPart.Effect = effect;
                  effect.CommitChanges();
             }

                mesh.Draw();
   }
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 28. červenec 2010, 00:26:14    Předmět: Re: XNA objekt s vice texturamy a meshparty Odpovědět s citátem

Prepisujes si DiffuseTexture jedne a te same instance effect. Bud musis mit tolik instanci effect kolik je unikatnich textur (mohou se instanciovat klidne az zde ve Draw() + prebirat vlastnosti predavaneho "globalniho" effectu (myslim tim napr. World, GraphicsDevice.RenderState apod.) nebo sloucit textury do jedne (obecne vhodnejsi reseni).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pospa



Založen: 22. 05. 2010
Příspěvky: 44

PříspěvekZaslal: 28. červenec 2010, 08:07:37    Předmět: Odpovědět s citátem

Aha, uz je mi to jasny, diky.. Pokud bych mel mit pouze jednu texturu, je to pro me celkem problem, ale ne neresitelnej. Je to nejak zasadni? napr. co se tyce rychlosti apod.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 28. červenec 2010, 13:22:30    Předmět: Odpovědět s citátem

pospa napsal:
Je to nejak zasadni? napr. co se tyce rychlosti apod.


Mezi zakladni optimalizace patri minimalizace "stridani" textur. Zjednodusene receno nacteni textury do gpu texture cache je casove narocna zmena renderstate a pri velkem mnozstvi objektu slozenych z mnoha textur muze byt toto stridani dost citelne.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna