Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
micro.21
Založen: 18. 09. 2007 Příspěvky: 7 Bydliště: Ostrava
|
Zaslal: 18. září 2007, 18:41:04 Předmět: Struktura 3D Enginu |
|
|
Doposud jsem programoval pouze ve 2D rezimu, ale ted bych chtel naprogramovat 3D engine. Jakozto co se tyce 3D enginu naprosty laik bych se chtel optat jestli nekdo neznate nejaky clanek, ktery pojednava o strukture takoveho 3D enginu. Nepotrebuju aby to bylo o celkovem naprogramovani 3D enginu vcetne vyuky programovani v openGl nebo direct 3D.. to zmaknu sam.. Chtel bych jen takovy teoreticky zaklad at vim co tam mam vlastne naprogramovat.
PS: Googlil jsem, ale nic moc kloudneho jsem nenasel a kdyz jsem neco nasel tak uz to bylo smazane.
Predem dekuji za vsechny odpovedi.. _________________ Let me die happier.. |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 18. září 2007, 19:17:22 Předmět: |
|
|
Vpravo nahoře máš odkaz na NeHe tutoriály... |
|
Návrat nahoru |
|
 |
igor

Založen: 28. 07. 2007 Příspěvky: 196
|
Zaslal: 18. září 2007, 20:11:19 Předmět: |
|
|
Jestli tim myslis nejake navrhy a realizace enginu hodnych Unreal 4 enginu, s pokrocilou architekturou, univerzalnosti pro vsechno atd atd, tak ja bych se na to doporucoval vybodnout. Soustred se na hry/aplikace ktere chces vytvorit.
http://scientificninja.com/advice/write-games-not-engines |
|
Návrat nahoru |
|
 |
prost
Založen: 30. 07. 2007 Příspěvky: 109 Bydliště: cvut fel, stm
|
Zaslal: 18. září 2007, 20:33:02 Předmět: |
|
|
asi se tyto informace nedaji splachnout do clanku, ale vejdou se jen do baculatych knih.
a uz bez, na nic necekej! pro jednoho cloveka je to totiz beh na pekelne dlouhou trat  _________________ BbB |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 18. září 2007, 21:32:38 Předmět: |
|
|
Tady je na místě podotknout, že je vhodné uvážit, zda nepoužít některý hotový free 3d engine. Je jich dost. |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 18. září 2007, 21:41:15 Předmět: |
|
|
Tak záleží, co je tazatelovým cílem. Pokud hra, tak by imho byl opravdu lepší nějaký existující engine. Pokud se chce ale něco hlubšího dozvědět o 3D grafice, tak je prgání vlastního enginu dobrá cesta... |
|
Návrat nahoru |
|
 |
igor

Založen: 28. 07. 2007 Příspěvky: 196
|
Zaslal: 18. září 2007, 21:49:59 Předmět: |
|
|
No s tim ucenim - lepsi cesta nez se snazit udelat engine je imho delat hru/hricku/aplikaci/demo/efekt (klidne s ohledem na to, co se chci naucit) - treba ja nerikam nic o free enginech (tazatel chce prece se neco naucit o 3d grafice, pozkouset sam atd). Proste je lepsi resit realne problemy, ktere se vyresit musi (abych dosahl vysledku), nez bez zadnych vetsich zkusenosti se snazit udelat 3d engine. Ten muj link to pekne popisuje a ja s tim souhlasim. |
|
Návrat nahoru |
|
 |
micro.21
Založen: 18. 09. 2007 Příspěvky: 7 Bydliště: Ostrava
|
Zaslal: 19. září 2007, 06:59:08 Předmět: prc chci psat svuj 3D engine |
|
|
Ja bych trochu blize popsal o co mi jde.. Je mi jasne ze programovani enginu je neni zalezitost par mesicu ale spise roku. Nechci pouzit hotovy engine protoze je to pro me technologicka vyzva. Chci do toho vice proniknout. Vlastne programovat 3D grafiku uz jakz takz umim.. nejake nacitani modelu, animace postavy, atd. Spise jsem ani nechtel nic velkeho tim myslim nejake knihy co pojednavaji o 3D grafice.. takove uz doma mam. chtel jsem jen neco kde budu mit v jednoduchych bodech napsanou tu nejzakladnejsi strukturu toho co musi 3D engine obsahovat aby dokazal spravne fungovat napr.
- nacitani textu
- nacitani modelu
- antialiasing
- atd.
Navic chci ten engine napsat kompletne pod Javou protoze navzdory tomu co maji lidi o 3D knihovne Javy za predsudky Java je na programovani her dobra. To netvrdim ja to tvrdi odbornici co udelali propracovane studie.
Tolik tedy k tomu proc chci psat svuj 3D engine. Dekuji vsem co mi odpovedeli a treba jeste pomuzou.. _________________ Let me die happier.. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 19. září 2007, 08:12:04 Předmět: |
|
|
Sice nemám odkaz na žádný článek, ale engine sem už naprogramoval a nějaký jiný sem viděl, tak snad pomůže těchto pár postřehů. Kdybys něco potřeboval, klidně napiš mail, nebo icq.
Je potřeba rozmyslet se, jestli má být engine obecný, nebo dělaný na nějaký žánr her, či dokonce přímo na jeden účel. (Obecný engine nedoporučuju). Architektura se pak odvíjí od použití. Když například víš, že hra bude pro letecký simulátory, můžeš materiály a objekty napsat a optimalizovat jednoduše pouze pro Stromy, Budovy, Vehikly, Letadla a třeba Vodu. Myslím, že neexistuje nějaký správný recept pro architekturu enginu, je to vždycky podle toho, na co je.
Tady je ještě pár kravin, co mě k tomu napadly:
1) Scene Graph
- struktura (hierarchie) objektů neboli transformační strom. Většinou jsou to nějaký objekty (uzel), který mají mít jednoho rodiče a více potomků...
- rodič se stará o uvolnění potomka z paměti
- když se přesune rodič, přesunou se i všechny jeho děti
- třída kamery může být odvozena od uzlu scény
Doporučuju napsat (používat) vlastní matematickou knihovnu pro maticové a vektorové výpočty, funkce se většinou zapouzdří do třídy uzlu scény.
2) Objekty
- 3D objekty můžeš přímo podědit od uzlu scény, nebo (to pužívám já), je navěsíš na uzel scény, přičemž transformace používá z toho uzlu
Objekty ještě můžeš rozdělit na Solid a Animované. Pak by měl ještě existovat nějaký manager, který bude umět nabrat objem pohledu ze scény (např. Octree + Frustum Culling) a předat ho k rendereru. Renderer je nějaký další manager, který řadí objekty v objemu pohledu (např. Blendované podle vzdálenosti) a volá jejich vykreslovací funkce.
3) formáty souborů
- můžeš napsat nějaký obecný interface, který bude jádro enginu (Objekt) umět načítat a tento interface potom implementovat v nějakých loaderech. Nejlepší je vlastní formát, ale tímto si nezavřeš cestu k dalším formátům.
4) Managery souborů
- různý věci (Textury, Materiály, Meshe) je dobrý načítat přes nějaký manager, který si pamatuje co už je načtený a co ne, tím pádem nemusíš načítat zbytečně třeba 3x stejnou texturu
5) Různé efekty
efekty sou často naprosto specifické objekty (částicové efekty, ...) nemá cenu je řešit přes SecneGraph a nakládat s nima podobně jako se solid objektama. Je lepší mít na takovéto věci napsaný vlastní vyhovující podsystém.
6) Kořen všeho.
Celkem se mi vyplatilo používat nějaký Singleton, pojmenovaný třeba Engine, který je přístupný ve všech unitách a zpřístupňující objektům různé podsystémy. Např.
Engine.TextureManager
Engine.SceneManager
Engine.Scene
...
No nevím, jestli sem to nepsal zbytečně, jak už tady bylo zmíněno, dá se o tom napsat knížka. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
micro.21
Založen: 18. 09. 2007 Příspěvky: 7 Bydliště: Ostrava
|
Zaslal: 19. září 2007, 08:43:42 Předmět: podekovani |
|
|
TO ]SEMO[: moc diky to je presne to co jsem potreboval, kdybych teda nahodou potreboval poradit tak bych se ozval na ten mail nebo icq.. jeste jednou moc diky. _________________ Let me die happier.. |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 19. září 2007, 09:11:25 Předmět: |
|
|
No já musím jen potvrdit co napsal semo. I když jsem o návrhu enginu nepřečetl prakticky nic, tak praxí jsem došel ke stejným závěrů, jak je tady pěkně sepsal semo (možná by to stálo za přepis do wiki). Akorát teda ten singleton se mi moc nelíbí... |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 19. září 2007, 16:24:52 Předmět: |
|
|
Do wiki to můžu dát, ale chtělo by to napsat líp a to se mi nechce :). Leda když bude zájem. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Fundin

Založen: 19. 08. 2007 Příspěvky: 51 Bydliště: Praha
|
Zaslal: 19. září 2007, 17:55:31 Předmět: |
|
|
Tak zajem by urcite byl:) a kdyby si se jeste trochu rozepsal taky by to nevadilo.. |
|
Návrat nahoru |
|
 |
Crusty
Založen: 28. 08. 2007 Příspěvky: 120 Bydliště: Praha
|
Zaslal: 5. listopad 2007, 09:01:06 Předmět: |
|
|
]semo[ napsal: |
...Leda když bude zájem. |
jaaa projevuji zajem.
Neco takoveho pomuze spouste lidem co se postupne uci jednotlive veci, ale pak jim dela problem to nejak rozume poskladat dokupy. _________________ http://www.2ox.cz |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. listopad 2007, 16:55:44 Předmět: |
|
|
]semo[ napsal: |
Do wiki to můžu dát, ale chtělo by to napsat líp a to se mi nechce . Leda když bude zájem. |
Tak něco sesmol, pak bych tam mohl něco doplnit, někdo jiný by to mohl dodatečně zvalidovat a poté by se to mohlo přesunout do magazínu jako článek.  _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
|