| Autor |
Mesaj |
boboS
|
Postat la 23 Nov 2007 23:26:31 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Am ajuns la limita, tre sa ma apuc sa fac un editor. Vai doamne numai cand ma gandesc ...  Cred ca raman cu formatul .X si fac un semieditor care sa memoreze in niste fisiere macar pozitia obiectelor si daca sunt instante. Dumnezeu cu mila...
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
Dark
|
Postat la 24 Nov 2007 09:01:47 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 687
Locatie:
Programator
|
Nu trebuie sa faci un editor pentru asa ceva, scapi mult mai usor folosind programul de modelare. Orice program de modelare are suport pentru referinte si un SDK prin care poti sa afli unde sint si de unde vin. Evident, in functie de programul ales SDK-ul ala poate sa fie imposibil de jegos si/sau limitat (Max, Lightwave, XSI) sau foarte simplu de folosit si puternic (Maya).
|
| |
boboS
|
Postat la 25 Nov 2007 19:25:03 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Ok ms pentru sfat.
O intrebare: Cum optimizez frustum culling-ul sa nu verifice AABB-ul pentru asa de multe obiecte ? Implementez BSP trees ? Cred ca si pentru fizica si poate luminare ar fi bun. Deci sa ma pun pe invatat sa implementez BSP ?
Ultima editare efectuată de boboS pe 25 Nov 2007 19:37:26; 1 editări în total
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
Dark
|
Postat la 26 Nov 2007 12:02:37 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 687
Locatie:
Programator
|
E o problema de cautare, deci trebuie sa pui obiectele intr-o ierarhie, iar cea mai eficienta ierarhie e in general un arbore. kd-tree, AABB tree, BSP tree, bounding sphere tree, etc. Uite-te peste toti, ca fiecare are avantajele si dezavantajele sale.
|
| |
boboS
|
Postat la 04 Dec 2007 21:06:29 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Din tot ce am facut pana acum cel mai complicat mi s-a parut framework-ul. Cum mai avansam in proiect cum simteam nevoie sa-l fac iar de la 0 in alt fel. Creca cel putin de 5 ori am facut asta. Niciodata nu vad perfectiunea din punctul meu de vedere in framework.
Mai vreau sa implementez un sistem sa incarc meshuri cu un thread cu prioritate mica in timp ce ruleaza jocu (gen GTA).. Teoretic nu pare mare lucru, acuma sa vad ce fac practic.
As seta la fizica niste nivele "High, Medium,Low" si sa isi faca update de mai putine ori (in functie de nivel) fata de fps.
La detectarea coliziunii cu un ray (pt mouse picking) ma gandeam ca daca am foarte multe obiecte (la unele poate e necesar sa verific contra AABB-ului, dar la unele daca e nevoie de a verifica triunghiurile si procesarea dureaza mult) sa verifice sa zicem la juma de secunda in loc de fiecare cadru si cred ca nu conteaza asa de mult la gameplay (adica nu se simte).
Ultima editare efectuată de boboS pe 04 Dec 2007 21:08:45; 2 editări în total
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
boboS
|
Postat la 09 Dec 2007 23:43:34 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Cred ca m-am plictisit de gamedev. Prea multe chestii care nici n-am inceput macar sa le incerc etc.. Mai tre sa ma duc si la munca si la scoala. Daca ar fi fost mai usor si cu rezultate in timp mai scurt poate era ceva... Asa..
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
Rimio
|
Postat la 10 Dec 2007 07:21:04 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 24 Mar 2007 21:50:44
Vârsta: 21 ani
Mesaje: 786
Locatie: Pitesti, Arges
Programator
|
Fii perseverent! Go casual!
Ultima editare efectuată de Rimio pe 10 Dec 2007 07:21:18; 1 editări în total
If at first you don't succeed, you fail.
|
| |
boboS
|
Postat la 13 Dec 2007 15:37:27 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Acuma daca fac hardware instancing si bag instantele intr-un singur buffer pentru randare cum naiba le modific in timpul randarii (sa zicem pentru animatii)? Daca e un singur buffer nu pot sa aplic efecte pentru fiecare instanta iar ca sa modific de fiecare data bufferu nu e incet ??
Nervermind, mi-am da seama cum.
Ultima editare efectuată de boboS pe 13 Dec 2007 15:45:57; 2 editări în total
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
Dark
|
Postat la 16 Dec 2007 13:10:08 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 687
Locatie:
Programator
|
Daca prin "hardware instancing" te referi la mecanismul din DX 9.0c cu 2 vertex stream-uri, esti destul de limitat in privinta variatiei pe care o poti avea - dar sint instante. Ideea e ca sint aproape la fel, nu? Trebuie sa-ti bagi datele per-instance in vertex declaration, pe linga chestiile uzuale (pozitie, normala sau tot tangent frame-ul, coordonate de texturi si ce-o mai fi). Daca nu esti animal sa-ti stochezi o matrice intreaga per-instance sau normala in 3 floati sau cine stie ce alta prostie se pot face chestii, dar in limita variatiei pe care o poti oferi din shader. Poti sa variezi pina si texturile intr-o anumita masura daca bindezi toate texturile disponibile si alegi din shader pe care s-o samplezi (sau bagi mai multe texturi mici intr-un atlas si faci offset la UV-uri, poti scrie cod, get creative). Dureaza pina-l convingi sa mearga acceptabil.
Poti avea mai multa variatie tinind un ID per instanta undeva in vertex declaration si indexind in constante cu el. In felul asta iti maresti considerabil cantitatea de date per-instance (dar evident, cresti numarul de constante pe care trebuie sa le uploadezi spre VS si/sau PS).
N-am inteles ce buffer vrei sa modifici. Ideea cu instancing-ul e ca desenezi mai multe chestii cu un singur draw call. Scopul e sa iti reduci numarul de draw calls, ca alea-s costisitoare. Ce buffer vrei tu sa modifici si cind? Oricum, lasa bufferele in pace. Bufferele dinamice sint un mod foarte bun de a-ti omori performanta. Orice proiect ajunge sa aiba citeva d-astea pe undeva din pacate, dar ideea de la care trebuie sa pornesti e ca n-o sa ai nevoie de ele.
Poti sa faci animatie cu skinning, dar esti evident limitat ca trebuie sa-ti imparti constantele la cite instante vrei intr-un batch. Poti sa balangani niste pomi sau niste iarba in vint, dar n-o sa poti sa instantiezi personaje "normale". Poti sa instantiezi personaje simplificate care nu depasesc 20 de oase si sa pui 3-4 intr-un batch (care nu pare mult, dar inseamna, totusi, de 3-4 ori mai putin draw call-uri). Se pot face chestii mai destepte in DX10 cu stream out sau pe ATI cu R2VB in DX9, dar despre astea in alt episod.
Baga in index la SDK-ul de DX9 "instancing sample" si vezi ce-ti zice. Iti arata si hardware instancing, si shader instancing si-ti compara cu desenatul normal.
Ultima editare efectuată de Dark pe 16 Dec 2007 13:23:02; 4 editări în total
|
| |
c0mas
|
Postat la 16 Dec 2007 14:52:04 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 19 Apr 2007 13:41:50
Vârsta: 33 ani
Mesaje: 337
Locatie: Bucuresti
Programator
Dream Builder Studios
|
Mai bine il faci sa mearga normal la inceput ... si cand totul e gata, poti sa bagi si HW instanting daca vrei sa optimizezi.
Do what you love, money will follow!
|
| |
boboS
|
Postat la 16 Dec 2007 17:54:37 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Pai momentan doar pentru niste iarba animata vroiam sau pentru niste copaci.
Multumesc pentru explicatii.
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
boboS
|
Postat la 21 Dec 2007 00:52:50 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
Da ca sa fac drum pe terrain ce idei aveti ? momentan folosesc un mesh pt terrain dar nu stiu cum sa fac sa para Ok. Sa ma apuc sa editez textura in Photoshop sa ii adaug pietre ?
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |
c0mas
|
Postat la 21 Dec 2007 21:48:15 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 19 Apr 2007 13:41:50
Vârsta: 33 ani
Mesaje: 337
Locatie: Bucuresti
Programator
Dream Builder Studios
|
Pai modificari pe textura de teren sunt ok, dar nu stiu daca e de ajuns ... acuma depinde de ce fel de drum vrei sa faci ... probabil ar trebui si ceva geometrie (pietre pe margine ... tarusi, indicatoare ... smocuri de iarba etc). dar daca vrei sa faci drum modern (de ciment) s-ar putea sa fie ok sa-l faci cu totul geometrie peste teren.
Do what you love, money will follow!
|
| |
nekitu
|
Postat la 22 Dec 2007 02:50:00 Subiect: Re:
|
|
|
Status:
Înregistrat pe: 29 Sep 2006 11:33:12
Vârsta: 30 ani
Mesaje: 929
Locatie: Brasov
Programator
7thFACTOR Entertainment Studios
|
Dark a scris: Nu trebuie sa faci un editor pentru asa ceva, scapi mult mai usor folosind programul de modelare. Orice program de modelare are suport pentru referinte si un SDK prin care poti sa afli unde sint si de unde vin. Evident, in functie de programul ales SDK-ul ala poate sa fie imposibil de jegos si/sau limitat (Max, Lightwave, XSI) sau foarte simplu de folosit si puternic (Maya). Sau mai simplu, COLLADA scene format (XML)  . Mai toate modelatoarele au suport pt export / import in el.
SpoOoOoock! Life Is Too Short For Cheap Chocolate
|
| |
boboS
|
Postat la 04 Jan 2008 16:37:14 Subiect: < fara subiect >
|
|
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 24 ani
Mesaje: 896
Locatie: Galați
|
In afara de edge colapse, si impostors ce ar mai fi util sa fac pentru obiectele departate sa maresc fps-ul ? Eu ma gandeam ca daca am umbre si lumina dinamica totusi pentru obiectele departate sa folosesc un lighmap. E o idee buna ? Sa il generez in runtime ? (doar la unele obiecte si cu threaduri sa mearga ok) sau unu deja facut (cu me normal) dar cred ca nu ofera fidelitate.
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
| |