Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 23. listopad 2011, 01:34:41 Předmět: Doom 3 zdrojáky pod GPL |
|
|
Zdar děcka,
John Carmack právě uvolnil zdrojové kódy hry Doom 3 pod licencí GNU GPL. Zdrojáky si můžete prohlédnout nebo naklonovat zde:
https://github.com/TTimo/doom3.gpl
Vzhledem k problémům s patenty byl pro Doom 3 GPL přepsán algoritmus stínů, které používají stencil buffer (údajně to udělal sám Carmack, jelikož jinak ten kód nesměli uvolnit). Originální Doom 3 používal metodu depth-fail, která je chráněna US patentem. Teď je tam údajně nějaký upravený algoritmus. Který ale, to už se README nezmiňuje.
Pro informaci, další varianty algoritmů pro stencil stíny jsou stručně popsány třeba tady:
http://en.wikipedia.org/wiki/Shadow_volume#Stencil_buffer_implementations _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 23. listopad 2011, 08:32:18 Předmět: |
|
|
na obydenie toho patentu vraj bolo potrebny iba par riadkovy patch. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
Vilem Otte
Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 23. listopad 2011, 18:47:53 Předmět: |
|
|
Několik let starý engine, jde to na něm znát. A pár věcí mě v kódu i pobavilo - např:
kód: |
const float idMath::PI = 3.14159265358979323846f;
|
A další constanty v Math.cpp, pochybuji, že do floatu přesně takové číslo narvou.
Nicméně v několika místech engine opravdu pokulhává (textový formát MD5 na animaci například), fakt je, že používám podobně koncipovaný formát na animaci, nicméně ten je binární (a asi bazillionkrát rychlejší k načtení), a počítat jej můžu jak na gpu ve vertex shaderu, tak na cpu (kdežto Doom 3 to umožňuje jen na cpu), a další detaily.
Nicméně engine to není úplně špatný, je skvěle popsaný (což je velká výhoda pro učení). Mnoho lidí navíc potěší zdroják k megatexturám _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
|
Crypton
Založen: 14. 05. 2009 Příspěvky: 306 Bydliště: The Void
|
Zaslal: 23. listopad 2011, 21:52:48 Předmět: |
|
|
Jen upřesním že ty zdrojové kódy nevydal Carmack, ale Timothee Besset: http://twitter.com/#!/ID_AA_Carmack/status/139106966357282817
Ten týpek na to musel pracovat dlouhé měsíce, než to bylo vůbec možné vydat jako open-source.
Jinak srovnávat Doom3, který je z roku 2004, s nějakým home-made 2012 enginem mi fakt připadá padlé na hlavu, hlavně když vezmu v úvahu že na trojce se začalo pracovat už v roce 2000... _________________
|
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 23. listopad 2011, 22:17:14 Předmět: |
|
|
skusil som skompilovat. okrem asi miliardy warningov o konverzii const char* na char* to potom skoncilo na chybe pri linkovani. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
igor
Založen: 28. 07. 2007 Příspěvky: 196
|
Zaslal: 24. listopad 2011, 00:02:02 Předmět: |
|
|
Mně to teda funguje (windows verze), akorát jsem musel v projektu DoomDLL nastavit cesty k DirectX SDK a pak mi taky nějak nefunguje TypeInfo.exe, který se spouští při buildování herního dll (gamex86.dll). Když jsem to vyhodil z pre-build stepu toho .dll tak všechno proběhlo ok... Jo a taky bacha, ta hra si vždycky vytáhne gamex86.dll z nějakého svého game.pk4, který je sloučástí dat ke hře, takže je třeba z \base vymazat všechny game* soubory a hodit tam ten svůj gamex86.dll (možná právě toto měl řešit ten typeinfo, v jeho zdrojácích je plno věcí ohledně filesystému, nezkoumal jsem to).
EDIT: ještě jsem se na to podíval - tak typeinfo funguje, pokud se adresář těch zdrojáků jmenuje TTimo-doom a ty cesty se nemusí nastavovat, pokud DirectX SDK je nainstalovaný správně tak, že VS tam přidá ty directories automaticky.
Naposledy upravil igor dne 25. listopad 2011, 14:39:08, celkově upraveno 1 krát |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 24. listopad 2011, 00:37:47 Předmět: |
|
|
a len doplnim ja som to kompiloval na linuxe. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
Vilem Otte
Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 24. listopad 2011, 01:02:53 Předmět: |
|
|
citace: |
Jinak srovnávat Doom3, který je z roku 2004, s nějakým home-made 2012 enginem mi fakt připadá padlé na hlavu, hlavně když vezmu v úvahu že na trojce se začalo pracovat už v roce 2000... |
Nesrovnávám (to ani nemá pointu, když každý engine je určený k úplně něčemu jinému - bylo by to jako srovnávat jablka a hrušky), kritizuji jeho animační formát (a nejen ten). V té době také existovaly binární formáty, které také šlo načíst mnohem rychleji . Proto taky načítání v Doom 3 trvalo věky. _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 24. listopad 2011, 10:26:50 Předmět: |
|
|
Vilem Otte napsal: |
Několik let starý engine, jde to na něm znát. A pár věcí mě v kódu i pobavilo - např:
kód: |
const float idMath::PI = 3.14159265358979323846f;
|
A další constanty v Math.cpp, pochybuji, že do floatu přesně takové číslo narvou. :lol:
|
A co má bejt? Tak tam to PI bude trochu jinak, komu by se chtělo zjišťovat přesný číslo. Já například spustím kalkulačku, máčknu PI, zkopíruju a má to podobně ;-).
Co se animací a MD5 týče, nezkoumal sem, ale tvůj pohled mi přijde docela naivní. Carmack a jeho kolegové jistě ví, že binární soubor se načítá rychlejc než textový, asi měli nějaký jiný důvod. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
Crypton
Založen: 14. 05. 2009 Příspěvky: 306 Bydliště: The Void
|
Zaslal: 24. listopad 2011, 14:03:13 Předmět: |
|
|
]semo[ napsal: |
Carmack a jeho kolegové jistě ví, že binární soubor se načítá rychlejc než textový, asi měli nějaký jiný důvod. |
Taky si myslím, není přeci problém ten naparsovaný model dumpnout z paměti do binárního souboru, taková úprava je práce tak na hodinu či dvě maximálně.
Nějaký specifický důvod tam určitě byl, ale jaký, tak to netuším. Možná bude odpověď přímo ve zdrojových kódech... _________________
|
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 24. listopad 2011, 14:15:55 Předmět: |
|
|
Vilem Otte napsal: |
Nicméně v několika místech engine opravdu pokulhává (textový formát MD5 na animaci například), fakt je, že používám podobně koncipovaný formát na animaci, nicméně ten je binární (a asi bazillionkrát rychlejší k načtení), a počítat jej můžu jak na gpu ve vertex shaderu, tak na cpu (kdežto Doom 3 to umožňuje jen na cpu), a další detaily. |
Třeba to umožňuje jen na CPU proto, že používá stencil stíny, které potřebují vygenerovat nějaký stencil volume pro každý model a každý frame. A taky kvůli tomu, že Doom 3 extrémně využívá multi-pass rendering a tehdejší GPU nebyly tak rychlé. Pravděpodobně byli ještě omezeni vertex shadery 1.1, kde nebylo možné tolik instrukcí a konstant dostat do shaderu.
Ale celkově mi přijde, že se teďka tváříš jak velkej king, když tvůj engine je lepší jak víc než 7 let starý Doom. Jenomže tvůj engine určitě nejede na GeForce 2 MX. Skoro každý engine je dnes lepší, protože Doom 3 rendering byl v zásadě dost jednoduchej, stokrát popsanej a stokrát okopírovanej. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
|
Návrat nahoru |
|
|
Vilem Otte
Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 24. listopad 2011, 23:29:53 Předmět: |
|
|
Jen mě to pobavilo, nic víc.
citace: |
Ale celkově mi přijde, že se teďka tváříš jak velkej king, když tvůj engine je lepší jak víc než 7 let starý Doom. Jenomže tvůj engine určitě nejede na GeForce 2 MX. Skoro každý engine je dnes lepší, protože Doom 3 rendering byl v zásadě dost jednoduchej, stokrát popsanej a stokrát okopírovanej. |
Ehm... je mi líto že zrovna ty, od kterého bych to nečekal, argumentuješ na mě Ad hominem ... nicméně reakce - Ad srovnávání - již jednou jsem to zmínil, ale k některým asi post nedorazil - tak znovu (tentokrát tučně, aby to dorazilo ke všem) - Nesrovnávám (to ani nemá pointu, když každý engine je určený k úplně něčemu jinému - bylo by to jako srovnávat jablka a hrušky).
Jednoduchost rendering pipeline a zpětnou kompatibilitu je Non sequitur - nevím proč to vůbec zmiňuješ.
Trochu mi je líto, že jsem vzal jako příklad vlastní engine (a v očích některých to hned znamená, že sám se považuji za nejlepšího na světě), mohl jsem vzít kterýkoliv jiný (i z doby Doom 3), který používá binární formáty (místo textových), a díky tomu načítá mnohem rychleji než Doom 3. Také používá gpu skinning místo cpu skinningu (a jde to na kvalitě postav a animací znát) - např. takový Source engine (a ten také běhal na GeForce 2 MX, dokonce na nich vypadal mnohem lépe než Doom 3 ). Chtěl jsem pouze upozornit na některé mouchy ve zdrojácích (v dané technologii), což imho patří do komentářů. _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 25. listopad 2011, 00:44:39 Předmět: |
|
|
V Doom 3 je prý také něco jako Gravity Gun. Ve hře prý nebyl, ale použili ho na vytvoření zničených mistností. Oni totiž všechny místnosti údajně vymodelovali beze šmouh a pak je poničili a věci rozházeli za pomoci toho nástroje. Celkem originální přístup k modelování levelů. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
Flash
Založen: 28. 07. 2007 Příspěvky: 1379 Bydliště: Nigga Land
|
Zaslal: 25. listopad 2011, 01:21:34 Předmět: |
|
|
Marek napsal: |
V Doom 3 je prý také něco jako Gravity Gun. Ve hře prý nebyl, ale použili ho na vytvoření zničených mistností. Oni totiž všechny místnosti údajně vymodelovali beze šmouh a pak je poničili a věci rozházeli za pomoci toho nástroje. Celkem originální přístup k modelování levelů. |
Jestli se dobre pamatuju, tak ve hre ta zbran byla. Daly se ji chytat napr. firebally od demonu....... jinak se s ni v te hre nedalo delat mnoho. |
|
Návrat nahoru |
|
|
|