| Zobrazit předchozí téma :: Zobrazit následující téma |
| Autor |
Zpráva |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. září 2010, 09:46:10 Předmět: |
|
|
]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é ) _________________ Perry.cz |
|
| Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 17. září 2010, 09:56:37 Předmět: |
|
|
| 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é ) |
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 |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. září 2010, 10:28:57 Předmět: |
|
|
| 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 ). 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 |
|
 |
Crypton

Založen: 14. 05. 2009 Příspěvky: 306 Bydliště: The Void
|
Zaslal: 17. září 2010, 10:39:14 Předmět: |
|
|
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 |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 17. září 2010, 10:47:10 Předmět: |
|
|
@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 |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. září 2010, 11:43:13 Předmět: |
|
|
| 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 abych provázal IDčka. Zatím problém dělají <newparam> hodnoty _________________ Perry.cz |
|
| Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 17. září 2010, 11:54:01 Předmět: |
|
|
| 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 abych provázal IDčka. |
coz je samozrejme radove min pameti a radove rychlejsi nez DOM... |
|
| Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. září 2010, 14:04:37 Předmět: |
|
|
| 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 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 |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 18. září 2010, 09:57:16 Předmět: |
|
|
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 |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 18. září 2010, 10:47:15 Předmět: |
|
|
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ý  _________________ Perry.cz |
|
| Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 18. září 2010, 14:27:33 Předmět: |
|
|
| ]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 |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 18. září 2010, 14:52:10 Předmět: |
|
|
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 |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 18. září 2010, 18:12:06 Předmět: |
|
|
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 |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1051
|
Zaslal: 18. září 2010, 18:15:24 Předmět: |
|
|
v blendery Ctrl+T prekonvertuje model na trojuholniky. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
| Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 19. září 2010, 09:12:37 Předmět: |
|
|
| 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 |
|
 |
|