View previous topic :: View next topic |
Author |
Message |
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Sun Dec 04, 2005 1:48 pm Post subject: batch batch batch |
|
Ka isti realizeet batchoshanu? Ja man, teiksim, ir vertex un index buffers un es gribu ar vienu DrawPrimitive izsauksanu uzzimeet tos objektus, kuriem tas ipasibas (textura, materials utt) ir vienadas. A man tie "vienadie" objekti atrodas dazaadaas bufera vietaas un savaa starpaa nav saistiti, tad es nemaz nevaru ar vienu saucienu vinjus uzzimeet lai kaa arii gribetu. Man ir japaarkarto indexbufers taa lai tie objekti atrodas blakus vai kaa? |
|
Back to top |
|
|
dev
Joined: 27 Jul 2004 Posts: 206 Location: Latvija
|
Posted: Sun Dec 04, 2005 2:33 pm Post subject: |
|
Nu ja tie ir dazhaadi objekti tad ziimee vinjus katru savaa batchaa. |
|
Back to top |
|
|
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Sun Dec 04, 2005 4:00 pm Post subject: |
|
?? |
|
Back to top |
|
|
Vecais_Dumais_Laacis Guru
Joined: 29 Jan 2004 Posts: 800
|
Posted: Mon Dec 05, 2005 10:08 am Post subject: |
|
nu izsauc drawprimitive vairaakas reizes (katram objektam mainot index/vertex buffera offsetu) - aatrumu tu ieguusi ar to ka nevajadzees izsaukt setvertex/indexbuffer pirms katra drawprimitivecalla. _________________ ...un ja bites buutu laachi... |
|
Back to top |
|
|
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Mon Dec 05, 2005 10:27 pm Post subject: |
|
Da ne to es prasu. es zinu no ka iegustas atrms es prasiju vai japarkarto index buffers. ai labi forget it. iesu gamedev.net |
|
Back to top |
|
|
Vecais_Dumais_Laacis Guru
Joined: 29 Jan 2004 Posts: 800
|
Posted: Tue Dec 06, 2005 12:28 am Post subject: |
|
ja tev vinji ir statiski tad paarkaarto - bet ja katraa freimaa paarkaartosi tad nav jeegas no batcha (baisi aatrumu zaudeesi jo bufferu redigjeeshana ir leena) _________________ ...un ja bites buutu laachi... |
|
Back to top |
|
|
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Tue Dec 06, 2005 8:10 pm Post subject: |
|
Tur jau tas pieduuriens, ka objekti statiski, bet redzamo objektu (ieksh viewing frustum) index bufers jau mainaas katraa kadraa. Gamedevn.net vairaki cilveki sito ir uzdevusi, bet nekur tadu labu atbildi nesmu redzejis. Sito es jau labu laiku nevaru atkost |
|
Back to top |
|
|
gazz
Joined: 03 Jan 2004 Posts: 355 Location: Teika
|
Posted: Tue Dec 06, 2005 8:41 pm Post subject: |
|
kaa jau vdl saka. katraa freimaa paarkaartot index vai vertex bufferi nevaidzeetu. Es pastaastiishu kaa es ko liidziigu dabuuju gatavu! Man bija statiskos vertex/index buferos objekts ar vairaakiem materiaaliem/tekstuuraam. Ko es dariiju - pie ielaades es index bufferu veidoju lai man buutu piemeeram face[0] - face[10] ar tekstuuru 1, face[11] - face[15] ar tekstuuru 2 utt. Tad es papildus listaa ObjectRenderQueue saglabaaju objektus ar struktuuru:
Code: |
struct TexFaces {
int startIndex, numFaces;
int textureIndex;
int materialIndex;
float opacity;
};
|
Peec tam es to listu vienkaarshi sasorteeju kaa man nepiecieshams ar stl::sort (manaa gadiijumaa - vispirms aizmetu uz beigaam caurspiidiigos primitiivus, tad peec materiaala un peec tam peec tekstuuras). Rezultaataa katram TexFaces objektam sanaak viena DrawIndexedPrimitive izsaukshana. Bet tekstuuras un materiaals tiek uzstaadiits tikai ja naakamais TexFaces ir ar citu tekstuuru/materiaali(tapeec mees sorteejaam). Liidziigi var arii veidot octree/quadtree kaa arii no segmentiem veidotu scene manageru. Nezinu cik paliidzeeju, bet izskaidroju kaa es sapratu jautaajumu. Ja ne - tad luudzu paskaidro veel siikaak! |
|
Back to top |
|
|
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Tue Dec 06, 2005 9:16 pm Post subject: |
|
Ja, paldies, to ari vaicaaju. kautkaa lidzigi biju iedomajies. Tikai man ir jautajums, ka tu zini kadu nobiidi likt katraa drawprimitive izsauksanaa? Un tad sanaak , ka bachoshana efektiivi der tikai statiskiem buferiem? |
|
Back to top |
|
|
gazz
Joined: 03 Jan 2004 Posts: 355 Location: Teika
|
Posted: Tue Dec 06, 2005 9:22 pm Post subject: |
|
es izmantoju prieksh statiskiem. lietojot dinamiskus buferus vienkaarshaak buus jau veidot vinjus peec iespeejas efektiivaakus, un ja nepiecieshams, kaadeelj gan tas pats princips neattiektos uz vinjiem. jebkas dinamisks buus leenaaks par statisku ;)
PS. par nobiidi - indeksiem startIndex, vertexiem - lieku 0, jo indeksi man ir visam vertex buferim nevis no noteikta offseta |
|
Back to top |
|
|
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Tue Dec 06, 2005 10:21 pm Post subject: |
|
Ne, es biju domajis, kas ir taa nodiibe, lidz kurai tu zimee viena sauciena laikaa? Pseidokoda runajot DrawIndexPrimitive(KoZimee, NoKuraIndex, CikDaudzZimeet). Man intresee tiesi tresasi parametrs, jo tava strukturaa vinja nav. |
|
Back to top |
|
|
gazz
Joined: 03 Jan 2004 Posts: 355 Location: Teika
|
Posted: Tue Dec 06, 2005 11:31 pm Post subject: |
|
aa - ok, pamekleeshu vecajos sourchos - iisteniibaa varu aizsuutiit tev kaa es to implementeeju, bet man shkjiet ka es uzstaadiiju visu vertex buferi
Code: | HRESULT DrawIndexedPrimitive( D3DPRIMITIVETYPE Type,
INT BaseVertexIndex,
UINT MinIndex,
UINT NumVertices,
UINT StartIndex,
UINT PrimitiveCount
); |
kur BaseVertexIndex = 0, MinIndex = 0, NumVertices = cik taas vertices ir vertex buferii, StartIndex = no struktuuras un PrimitiveCount = no struktuuras. |
|
Back to top |
|
|
savage
Joined: 19 Aug 2005 Posts: 31 Location: Riga,LV
|
Posted: Wed Dec 07, 2005 7:53 pm Post subject: |
|
Ja atsuuti, ludzu, ja vari uz profilaa noraadito adresi kautvai fragmentinjus. |
|
Back to top |
|
|
|