.[ ČeskéHry.cz ].
Modely ve hrách
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Grafika
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. září 2010, 09:46:10    Předmět: Odpovědět s citátem

]Semo[: Na načítání ty Collady jsi použil DOM nebo jsi to jel přes SAX (protože přes SAX se mi to zdá neudělatelné Wink )
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 17. září 2010, 09:56:37    Předmět: Odpovědět s citátem

perry napsal:
]Semo[: Na načítání ty Collady jsi použil DOM nebo jsi to jel přes SAX (protože přes SAX se mi to zdá neudělatelné Wink )


oba postupy budou mozna spatne - at uz cisty SAX nebo cisty DOM

DOM) je nevhodny protoze zbytecne builduje strukturu kterou zahodis
SAX) tady bude potreba nedelat to co tu kdosi psal ze potreboval - a to seek
-- mnohem vhodnejsi bude zparsovat colladu a vhodne vytvaret vlastni objekty a misto seeku se potom odkazovat primo na tyto objekty...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. září 2010, 10:28:57    Předmět: Odpovědět s citátem

citace:

-- mnohem vhodnejsi bude zparsovat colladu a vhodne vytvaret vlastni objekty a misto seeku se potom odkazovat primo na tyto objekty...


To moc nechápu. Collada je xml, takže parsing znamená prolézat xml.. nicméně používá ID a odkazy na jiné nody, tudíž tu strukturu musím mít v paměti, abych mohl rychle skákat.
DOM mi přijde jako ideální (i když vybere dost paměti, ale zase modely nepolezou přes desítky MB).

Nicméně ve finální verzi stejně, jak tu často píšete, collada nebude (parsovat xml a převádět Stringy na floaty apod. není plně ideální pro rychlost Smile). Pak si udělám vlastní binár a collada soubory do něj převedu a tím dostanu ideální výkon.
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Crypton



Založen: 14. 05. 2009
Příspěvky: 306
Bydliště: The Void

PříspěvekZaslal: 17. září 2010, 10:39:14    Předmět: Odpovědět s citátem

Nemusíš to načítat ani přes DOM nebo SAX, jednoduše to načteš přimo do své strukrůry, tedy do nějaké té instance třídy Model či ColladaModel. Bude to rychleji načítat než přes DOM či SAX, protože nebudeš načítat to co nepotřebuješ a jednoduše to všechno skipneš.

(U DOM se to musí celé načíst do stromu a pak procházet. U SAX zase zbytečné callback-y a strcmp.)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 17. září 2010, 10:47:10    Předmět: Odpovědět s citátem

@Nouma - je to XML - SAX nebo DOM pouzit musi - XmlReader v .NETu je taky jenom SAX pristup - o tom jestli je zimplementene jako callback nebo jinak je vec druha

proste jde o to necist to jako DOM

@perry
nacti colladu v jednom pruchodu - navytvarej objekty, tam kde je odkaz referenci si ji uloz
v druhe fazi ty reference pospojuj
nejvic easy a nejvic rychly
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. září 2010, 11:43:13    Předmět: Odpovědět s citátem

citace:

nacti colladu v jednom pruchodu - navytvarej objekty, tam kde je odkaz referenci si ji uloz
v druhe fazi ty reference pospojuj
nejvic easy a nejvic rychly


Akorát na to potřebuji hromadu Dictionary Smile abych provázal IDčka. Zatím problém dělají <newparam> hodnoty
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 17. září 2010, 11:54:01    Předmět: Odpovědět s citátem

perry napsal:
citace:

nacti colladu v jednom pruchodu - navytvarej objekty, tam kde je odkaz referenci si ji uloz
v druhe fazi ty reference pospojuj
nejvic easy a nejvic rychly


Akorát na to potřebuji hromadu Dictionary Smile abych provázal IDčka.


coz je samozrejme radove min pameti a radove rychlejsi nez DOM...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. září 2010, 14:04:37    Předmět: Odpovědět s citátem

citace:

coz je samozrejme radove min pameti a radove rychlejsi nez DOM...


Díky za radu.. načítá to jak má a relativně rychle (zatím teda mám ranou alfa verzi)... akorát ten kód je hrozná mazanina Very Happy Bohužel vzhledem k proudové povaze dat to jinak asi nejde, než hromada if a while cyklu (max. ten parser zkzusim obalit nadtřídou, abych to neviděl)

kód:


while (this.xml.Read())
{
  ....if (OpenElement)
      {
      if (elemenaName == "abc")
      {
      while (this.xml.Read())
      {
           while (this.xml.Read())
           {
           ...
           }
      .....
      }   
      }
      }
      else if (CloseElement)
     {
        return;
     }
      }
}

_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 18. září 2010, 09:57:16    Předmět: Odpovědět s citátem

Co je to SAX? Mimochodem, proč na každou píčovinu musí existovat nějaká zkratka?
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 18. září 2010, 10:47:15    Předmět: Odpovědět s citátem

SAX = Simple API for XML - aka. XML se čte proudově s minimálními nároky na paměť, ale nejde se vracet ve struktuře zpátky

DOM = Document Object Model - aka. nejdřív načte celé XML do paměti a pak prochází. můžu libovolně skákat kam chci, vyhledávat apod, ale je pomalý a bere moc paměti.

Btw. ten <p> element v Colladě je strašný Very Happy
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 18. září 2010, 14:27:33    Předmět: Odpovědět s citátem

]semo[ napsal:
Co je to SAX? Mimochodem, proč na každou píčovinu musí existovat nějaká zkratka?

Abys nemusel pokaždé znovu složitě popisovat, co máš na mysli.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 18. září 2010, 14:52:10    Předmět: Odpovědět s citátem

Ladis: aha, tak na mě to nefunguje.
Perry, díky za vysvětlení:-). Teď mohu odpovědět na tvou otázku, kterou jsi položil o pár příspěvků vejš: používám DOM, TinyXML to nejdřív zparsuje a pak se to prochází.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 18. září 2010, 18:12:06    Předmět: Odpovědět s citátem

Ta Collada ma jednu nevýhodu... někoho napadlo, že je dobrý nápad popisovat face přes polygony místo trianglů... když exportuji z maxu, tak se mi správně udělá
<polygon>....<p>120</p><p>320</p> atd.. (jen ukázka)

V Blenderu to vyexportuje:
<polygon>....<p>0123</p> atd.. (jen ukázka)

Ono se pak blbě kreslí, když to je jako quad a ne triangle :/

Možná je v Blenderu nějaká nastavení...abych zase nenadával zbytečně. Sám Blender nemám, reportoval mi to kamarád, když mi dělal testovací model.
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1051

PříspěvekZaslal: 18. září 2010, 18:15:24    Předmět: Odpovědět s citátem

v blendery Ctrl+T prekonvertuje model na trojuholniky.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 19. září 2010, 09:12:37    Předmět: Odpovědět s citátem

citace:

v blendery Ctrl+T prekonvertuje model na trojuholniky.


Díky


Jak byste řešili načítání modelu, který má hromadu submeshů (aka. hromadu geometry elementů, ale každý element má jinou definici pro triangle (jeden má POSITION, NORMAL; druhý POSITION, NORMAL, TEXCOOD; atd)
Abyh mohl mít jenom jeden VB pro celý model, napadlo mě udělat to tak, že udělám Vertex podle největší skupiny. Pokud pak někde bude něco chybět, zapíšu místo toho 0.
A nebo každý submesh může mít vlastní VB, ale to mi přijde jako horší řešení.
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Grafika Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Strana 4 z 6

 
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