.[ ČeskéHry.cz ].
Doom 3 zdrojáky pod GPL
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Novinky / Zprávičky
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

PříspěvekZaslal: 23. listopad 2011, 01:34:41    Předmět: Doom 3 zdrojáky pod GPL Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 23. listopad 2011, 08:32:18    Předmět: Odpovědět s citátem

na obydenie toho patentu vraj bolo potrebny iba par riadkovy patch.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 461
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 23. listopad 2011, 18:47:53    Předmět: Odpovědět s citátem

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. Laughing

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 Razz
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Crypton



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

PříspěvekZaslal: 23. listopad 2011, 21:52:48    Předmět: Odpovědět s citátem

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... Laughing
_________________
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: 1036

PříspěvekZaslal: 23. listopad 2011, 22:17:14    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
igor



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

PříspěvekZaslal: 24. listopad 2011, 00:02:02    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 24. listopad 2011, 00:37:47    Předmět: Odpovědět s citátem

a len doplnim ja som to kompiloval na linuxe.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 461
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 24. listopad 2011, 01:02:53    Předmět: Odpovědět s citátem

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 Wink. 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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
]semo[



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

PříspěvekZaslal: 24. listopad 2011, 10:26:50    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Crypton



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

PříspěvekZaslal: 24. listopad 2011, 14:03:13    Předmět: Odpovědět s citátem

]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... Wink
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 24. listopad 2011, 14:15:55    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 24. listopad 2011, 15:09:15    Předmět: Odpovědět s citátem

no po urcitych patchoch dokonca bezal aj na voodoo2 http://www.firingsquad.com/media/gallery_index.asp/244
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 461
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 24. listopad 2011, 23:29:53    Předmět: Odpovědět s citátem

citace:
A co má bejt?

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 Wink). 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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 25. listopad 2011, 00:44:39    Předmět: Odpovědět s citátem

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ů. Smile
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Flash



Založen: 28. 07. 2007
Příspěvky: 1379
Bydliště: Nigga Land

PříspěvekZaslal: 25. listopad 2011, 01:21:34    Předmět: Odpovědět s citátem

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ů. Smile

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail 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 -> Novinky / Zprávičky Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
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