View previous topic :: View next topic |
Author |
Message |
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Oct 22, 2007 5:50 pm Post subject: Par kursora poziiciju uz terraina |
|
Peec dazaadu ieteikto toolju izpeetiisanas es secinu ka man ir diezgan neerta kursora poziicioneesana uz terraina - un izpauzaas tas taa, ka tas ko tu dari ar peli, taa pat intuitiivi arii neatspoguljojas uz to kursoru... Probleema ir itkaa vienkaarsa - man paslaik korsors tiek novietots 3D taa : tiek Unprojekteets stars no peles kursora poziicijas uz ekraana un tad tiek izreekinaata mineetaa stara sadursmes punkts ar plakni (uz augsu veersta, distance no saakumpunkta 0). Probleemas atrisinaajums - nemam veeraa konkreetaa punkta augstuma veertiibu no terraina, BET
no kaada punkta man taa veertiiba buutu jaanjem? |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Oct 22, 2007 6:04 pm Post subject: |
|
Varbuut, ja tas ir svariigi - Man augstuma veertiibas glabaajaaas masiivaa un ir metode kaa input veertiibu nemot doto 3D (z poziicija gan veeraa netiek nemta) punktu atgriez attieciigu augstuma veertiibu (ar lineaaru interpolaaciju) |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Oct 22, 2007 7:18 pm Post subject: |
|
Nu jāņem tuvākā vērtība, ja preizi tevi sapratu. Šauj staru no (0,0,0) uz (mx,my,zNear), kur mx,my ir peles koordinātes uz near projekcijas plaknes.
Un šīs stara pirmo krustpunktu ar terrainu tad arī ņem par "peles 3D pozīciju".
Kā aprēķināt stara-heightmapes krustpunktu var itin viegli atrast izmantojot ray-casting metodi.
NewtonGameDynamics SDK vienā piemērā ar nāca līdzi kods ray/heightmap krustojuma punkta atrašanai.
Vēl te kautkas lasāms: http://onezero.org/graphicsgems-line-edge-summary/
Taču, ja gribēsi to izrēķināt pavisam ātrā veidā, nāksies izmantot kautkādus QuadTree.
snake5: viņam vajag stars-heightmape krustpunktu atrast. Nevis kautkādu ar trijstūri. Ar trijstūri meklēt krustpunktu būs pārāk lēni, jo tur ir pārāk daudz trijstūru. |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Oct 22, 2007 7:52 pm Post subject: |
|
Lieta ir taada - man vajag koliiziju dabuut ar terrainu, bet tam vajag height veertiibu, kuru lai dabuutu arii itkaa vajag to koliiziju ... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Oct 22, 2007 8:04 pm Post subject: |
|
nu tāpēc es piedāvāju ray-tri sadursmju testu!
man ienāca prātā, ka to varētu ar matricām dabūt gatavu...
nu paņem vertexus uz screen-space pārvieto ar worldviewprojection matricu.. tad atrod īsto trijstūri pēc vienkāršiem 2d trijstūru testiem, sameklē vertexu pēc tā, kur punkts atrodas attiecībā pret trijstūri, un to punktu (laikam ar inverso matricu) dabū atpakaļ
es varētu piemēru uzbīdīt, bet tad ne no nekā.. kautkādam terraina renderam pamatā būtu jābūt.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Oct 22, 2007 8:11 pm Post subject: |
|
Man nav trianglji, man pieejams ir tikai masiivs ar height valueem. Ja man buutu trijstuuri, saada jautaajuma no manas puses nebuutu, ar to jau ir pilns internets. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Oct 22, 2007 8:25 pm Post subject: |
|
tak vnk glabā 3stūru info, kamēr ar terrainiem strādā! kautkādā indexbufferī vai tml. 3stūru info nemainīsies kamēr neielādēs citu terrainu!
ta nu gan problēmu atradis...
tev taču kautkā tas terrains jārenderē vai ne? tad jau tev ir viens indexbufferis, kurš gaida, kad ar to kautko darīs _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Oct 22, 2007 8:29 pm Post subject: |
|
indexbufferis trijstuuru glabaasanai Ah tad nu gan tiesaam es probleemu baigo esmu atradis haha ha...
Man nav trijstuuri, man katra vertexa poziicija tiek nolasiita ar vertex fetch vertex shaderii, un pats terrains tiek rendereets ar no hardvariski instaceetiem "patchiem"
P.S Snake5, ja tu nezini kas ir indexbufferis, iesaku pamekleet netaa ;D sitais tev vareetu arii nodereet XD |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Oct 22, 2007 8:57 pm Post subject: |
|
Ah, tagad sapratu, ko tev vajag.
Kā izskatās, ja vienkārši skaita konstakti klāt patreizējam augstumam? Tb peles kursoru tur virs terraina konstantā augstumā. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Oct 22, 2007 9:11 pm Post subject: |
|
ahā index bufferi nelieto? nu bet vispār tā padomājot nav arī vajadzīgs! vnk paņem ar matricu izskaitļo vertexu pozīcijas un atrodi tuvāko:
pēc z
pēc xy attāluma no peles kursora
haha cik tur tās problēmas
bet tas tā tikai tad, ja tev vajag zināt tikai uz kura vertexa kursors atrodas, nevis precīzu pozīciju uz terraina..
ja domā, ka nezinu, kas ir index bufferis, tad tu kļūdies! es vairs nespēju saskaitīt cilvēkus, kuri uztver manu teikto pilnīgi burtiski
index bufferis arī glabā 3stūru info! gan ne visu, tikai norāda, kuri vertexi 3stūrim, bet ar to pilnībā pietiek _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Oct 22, 2007 9:18 pm Post subject: |
|
Snake5 : es nezinu man smieties vai raudaat...
bubu : tad vienkaarsi rodas sajuuta itkaa mans terraina kursors buutu iekaarts strikiitii un karaatos perpendikulaari terrainam izejot no peles kursora... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Oct 22, 2007 9:25 pm Post subject: |
|
Storm wrote: | Snake5 : es nezinu man smieties vai raudaat...
bubu : tad vienkaarsi rodas sajuuta itkaa mans terraina kursors buutu iekaarts strikiitii un karaatos perpendikulaari terrainam izejot no peles kursora... | nezinu, ko tev darīt, bet ja pats nepamēģināsi manu variantu, tad neredzēsi! izskatās, ka tas tev kautkāds editors... spēlēs normāli atrod z no xy _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Oct 22, 2007 9:34 pm Post subject: |
|
snake5 wrote: | index bufferis arī glabā 3stūru info! gan ne visu, tikai norāda, kuri vertexi 3stūrim, bet ar to pilnībā pietiek |
Indeksbuferis neglabā nekādu info par trijstūriem. Info var glabāt tikai vertex buferis. Un ne par trijstūriem, bet gan tikai par virsotnēm.
Index buferis glabā indeksus datiem vertex buferī. Vārdu indeksus sakot, es domāju visparastākos masīva indekus kā C/C++/Pascal/u.c. valodās.
Storm: un kā būtu, ja attālumu rēķinātu pēc formulas A/z, kur A ir kautkāda konstante, bet z ir attālums līdz kamerai.
Last edited by bubu on Mon Oct 22, 2007 9:37 pm; edited 1 time in total |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Oct 22, 2007 9:36 pm Post subject: |
|
bubu wrote: | snake5 wrote: | index bufferis arī glabā 3stūru info! gan ne visu, tikai norāda, kuri vertexi 3stūrim, bet ar to pilnībā pietiek |
Indeksbuferis neglabā nekādu info par trijstūriem. Info var glabāt tikai vertex buferis. Un ne par trijstūriem, bet gan tikai par virsotnēm.
Index buferis glabā indeksus datiem vertex buferī. Vārdu indeksus sakot, es domāju visparastākos masīva indekus kā C/C++/Pascal/u.c. valodās. | bet no tiem index'iem veidojas 3stūri, vai ne? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
|