DoubleBuffer

Programerska zajednica
It is currently Fri Sep 10, 2010 10:55 am

All times are UTC + 1 hour




Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: Step into the Z...
PostPosted: Sun Jan 17, 2010 8:26 pm 
Offline
Sajentist on djuti!
User avatar

Joined: Tue Aug 26, 2008 9:35 pm
Posts: 1690
Eto, došlo je vrijeme (možda jurim, no nema veze XD) da se počnem igrati s Z-tom dimenzijom prosotra. Mogu bez sumnje reći da nemam blage veze o trećoj dimenziji i objekima u njoj (osim stvari koje se rade u školi). Koji je pravi put za "pravilno" učenje 3D programiranja? Ne znam ni što bih sve pitao, jer ne znam što 3D sve sadrži. Možda najpametnije da pitam:

Kako krenuti s 3D i što je sve potrebno za to?

_________________
Now these points of data make a beautiful line
And we're out of beta we're releasing on time!

Homepage | YouTube Channel | Twitter


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Sun Jan 17, 2010 8:35 pm 
Offline
Prvi grobar Vilijema Šekspira
User avatar

Joined: Tue Aug 26, 2008 2:02 pm
Posts: 479
Poznavanje solidno nekog (po mogućnosti objektno-orijentiranog) jezika poput C++a: najjednostavnije rečeno, da se osjećaš ugodno s pokazivačima, manipulacijom polja (pokazivači u srcu), operator overloadingom, linked listima, nasljeđivanjem, polimorfizmom (uglavnom ova zadnja dva definiraju važnije koncepte OO programiranja, toga si svjestan)... Ako ti je to jasno, znači da su i njihovi jednostavniji elementi ti jasni, nazovimo ih podskupovima.

Potrebno je poznavanje barem srednjo-školske matematike, tu si uključi aritmetiku, matrice, vektore, trigonometriju (! yup, važno), ako se osjećaš avanturistički čak i osnove kvaterniona (korisno kod implementacije kamere npr.)

Uglavnom, većinu ovog već znaš, a ostalo možeš saznati putem... Trebat će ti određeni API s kojim planiraš se upustiti u 3D programiranje, tu znaš što biraš i onda tražiš reference na netu, dokumentacije ili pak knjigu neku o toj temi i učiš i vježbaš i vježbaš i vježbaš... I to je to :D

A na osnovici svega toga, moraš se uhvatiti nativnog Win32 programiranja ako planiraš ili sa OGL-om ili DX-om ići... XNA te manje više poštedi toga, ali je manje rewarding iskustvo u konačnici.

_________________
Why animate a planet when you can animate it's texture?


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Sun Jan 17, 2010 9:50 pm 
Offline
Sajentist on djuti!
User avatar

Joined: Tue Aug 26, 2008 9:35 pm
Posts: 1690
RayDX wrote:
Poznavanje solidno nekog (po mogućnosti objektno-orijentiranog) jezika poput C++a: najjednostavnije rečeno, da se osjećaš ugodno s pokazivačima, manipulacijom polja (pokazivači u srcu), operator overloadingom, linked listima, nasljeđivanjem, polimorfizmom (uglavnom ova zadnja dva definiraju važnije koncepte OO programiranja, toga si svjestan)... Ako ti je to jasno, znači da su i njihovi jednostavniji elementi ti jasni, nazovimo ih podskupovima.

Potrebno je poznavanje barem srednjo-školske matematike, tu si uključi aritmetiku, matrice, vektore, trigonometriju (! yup, važno), ako se osjećaš avanturistički čak i osnove kvaterniona (korisno kod implementacije kamere npr.)

Uglavnom, većinu ovog već znaš, a ostalo možeš saznati putem... Trebat će ti određeni API s kojim planiraš se upustiti u 3D programiranje, tu znaš što biraš i onda tražiš reference na netu, dokumentacije ili pak knjigu neku o toj temi i učiš i vježbaš i vježbaš i vježbaš... I to je to :D

A na osnovici svega toga, moraš se uhvatiti nativnog Win32 programiranja ako planiraš ili sa OGL-om ili DX-om ići... XNA te manje više poštedi toga, ali je manje rewarding iskustvo u konačnici.

Koji API preporučaš za počenika i zašto?

_________________
Now these points of data make a beautiful line
And we're out of beta we're releasing on time!

Homepage | YouTube Channel | Twitter


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Sun Jan 17, 2010 10:00 pm 
Offline
Prvi grobar Vilijema Šekspira
User avatar

Joined: Tue Aug 26, 2008 2:02 pm
Posts: 479
DragonSoul wrote:
RayDX wrote:
/cut

Koji API preporučaš za počenika i zašto?


Osobno preporučam DirectX jer ga je izrazito lako postaviti, nekad čak i automatski se pri instalaciji uredi, dokumentacija je na jednom mjestu, mnogo primjera, velika mu je primjena. A i nije samo grafički API, nego je kolekcija API-a za sve što ti treba, a ako ti zatreba još štogod lako se pospaja u projekt. Plus, ima mnoštvo knjiga i izvora na tu temu.

_________________
Why animate a planet when you can animate it's texture?


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Tue Jan 19, 2010 6:46 pm 
Offline
Obama s Trešnjevke
User avatar

Joined: Thu Nov 06, 2008 2:38 pm
Posts: 573
RayDX wrote:
Poznavanje solidno nekog (po mogućnosti objektno-orijentiranog) jezika poput C++a: najjednostavnije rečeno, da se osjećaš ugodno s pokazivačima, manipulacijom polja (pokazivači u srcu), operator overloadingom, linked listima, nasljeđivanjem, polimorfizmom (uglavnom ova zadnja dva definiraju važnije koncepte OO programiranja, toga si svjestan)... Ako ti je to jasno, znači da su i njihovi jednostavniji elementi ti jasni, nazovimo ih podskupovima.

Potrebno je poznavanje barem srednjo-školske matematike, tu si uključi aritmetiku, matrice, vektore, trigonometriju (! yup, važno), ako se osjećaš avanturistički čak i osnove kvaterniona (korisno kod implementacije kamere npr.)

Uglavnom, većinu ovog već znaš, a ostalo možeš saznati putem... Trebat će ti određeni API s kojim planiraš se upustiti u 3D programiranje, tu znaš što biraš i onda tražiš reference na netu, dokumentacije ili pak knjigu neku o toj temi i učiš i vježbaš i vježbaš i vježbaš... I to je to :D

A na osnovici svega toga, moraš se uhvatiti nativnog Win32 programiranja ako planiraš ili sa OGL-om ili DX-om ići... XNA te manje više poštedi toga, ali je manje rewarding iskustvo u konačnici.


Po čemu je točno XNA manje rewarding od Direct3D-a ili OpenGL-a??
XNA puno olakšava i skračuje vrijeme pisanja koda, kakve su to prednosti Direct3D-a i OpenGL-a nad XNA-om?

_________________
Image


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Tue Jan 19, 2010 7:59 pm 
Offline
Prvi grobar Vilijema Šekspira
User avatar

Joined: Tue Aug 26, 2008 2:02 pm
Posts: 479
Nikako nisam htio aludirati da se radi o nekoj diskriminaciji, ali XNA je u biti framework koji leži na DirectXu, te je najjednostavnije rečeno, "još jedan apstrakcijski sloj"... Što je veća apstrakcija od programera, to je manja mogućnost kontrole nad low-level procesima. Također, DirectX/OpenGL i C++ (nativni, nikakve CLR điđamiđe) čine distribuciju jednostavnijom, ne mora se puno patiti sa dodatnim runtime dodatcima koje XNA npr. zahtijeva jer nije "opće prihvaćen standard" na Windowsu kao čistokrvni DirectX.

A samim time, kada pojednostavljuje određene procese kod razvoja igara (iako XNA to jako lijepo balansira), osobno se osjećam zakinuto i kao da uzimam lakši put. To je moj razlog, koliko god subjektivan. I zato sam rekao "manje rewarding", jer ne osjećam jednak nivo zadovoljštine :D

No, u konačnici, odluka što ćete koristiti je u potpunosti vaša!

_________________
Why animate a planet when you can animate it's texture?


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Tue Jan 19, 2010 10:11 pm 
Offline
User avatar

Joined: Tue Sep 01, 2009 10:14 pm
Posts: 221
Location: Zagreb
Ja ne bih preporučio DirectX i C++ kombinaciju za "ulazak" u 3D. C++ jest moćan al je ružan. DirectX, barem DX9, je u C++ nešto odvratno. Ak se malo prošvrlja, može se vidjeti da je MS od objektno napisanog DX-a pomoću typdefova i defineove napravio užasno gadan proceduralan API.

OpenGL u C++ je isto proceduralan, al je proceduralan u samome startu i puno je lijepši za pisat i razumjet nego DX. I još k tome je direktan, u smislu da mu možeš odmah dati da nacrta trokut a ne ko D3D da moraš prolazit birokratsku proceduru da bi na ekran poslo 3 verteksa i od njih napravio trokut. DX ide od pretpostavke da će odmah u startu radit nešto veliko i nudi funkcionalnost za rad nad većim i složenijim objektima. Ak hoćeš krenut u C++u, preporučam OpenGL u kombinaciji s ili GLUT-om ili SDL-om, kako bi minimizirao birokraciju oko stvaranja prozora.

Probao sam raditi s DX-om u C#, baš s DX-om, ne s XNA, i zadovoljan sam. Jest da se isto treba mrdat s vertex bufferom da se nacrta obična linija al je podnošljivije nego u C++-u. Što se portabilnosti tiće, ako odabereš DX ograničavaš se na Windowse a kad si već na Windowsima, moš odma u C#, nije puno sporiji a puno brže ćeš ostvarivati zamisli nego u C++u. Još je tu i opcija OpenGL u Javi.

Osobno, više volim imati kontorlu nad vlastitim kôdom nego nad low level detaljima. Jednostavno mi se pokazalo da brže napravim ono što sam naumio u C# ili Javi nego u C++.

_________________
http://code.google.com/p/zvjezdojedac/
http://sourceforge.net/projects/zvjezdojedac/


Top
 Profile  
 
 Post subject: Re: Step into the Z...
PostPosted: Tue Jan 19, 2010 10:42 pm 
Offline
Prvi grobar Vilijema Šekspira
User avatar

Joined: Tue Aug 26, 2008 2:02 pm
Posts: 479
S EmP-om se definitivno slažem da će Java ili C# puno ranije dati rezultate te da sam kôd ljepše izražava siluetu objektno orijentiranog dizajna, no ako je itko imalo ozbiljan oko razvoja igara, u konačnici će morati prihvatiti grubost C++-a i uskočiti u "igru", bilo da koristi OGL ili DX. Stvar je samo u različitim krivuljama učenja i koliko zapravo želiš izvući, što je osobna preferencija.

Što se tiče C#-a, istina, danas je razlika u performansama minimalna... Osobno sam držao fige managed directx inicijativi ali ona je fejlala tužno, tako da sam se vratio težoj putanji sa C++-om i DirectXom (ali i OpenGL-om). No, na drugu stranu, čuo sam za jednu open source inicijativu zvanu SlimDX koja izgleda kao dobra zamjena za propali MDX (prerađen u XNA, iako je bolje reći da je uključen u njenu osnovicu). Ovdje možete saznati više o SDX-u.

Još uvijek smatram ukoliko je osoba zainteresirana za razvoj igara, a ima dobru pozadinu u C++-u, da bi definitivno trebala preuzeti sve mindfuckove koje dolaze sa DirectX-om, a ako cilja na x-platforming, onda je OpenGL izbor za njih. Osobno pokušavam se okoristiti s oba API-a, u zadnje vrijeme specifično sa OGL ES 1.1/2.0 na iPhoneu 3G/3GS-u.

Kad se pokušava oboje gurati, biti jack of all trades znači da nikad se neće u potpunosti ovladati nečim, tako da je bolje odabrati nešto i specijalizirati se. Ali pošto je meni programiranje igara hobi, a ne potreban pretjerano za posao u životu, imam taj luksuz. U konačnici, mnogi će se pronaći u situaciji da možda izgrade engine u C++-u koristeći DirectX/OpenGL, pa napišu editor C#-u jer je jednostavnije (osobno tako radim na svom Hybridu 3.0)

Again, the choice is yours!

_________________
Why animate a planet when you can animate it's texture?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group