dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Par kursora poziiciju uz terraina
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: 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
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Oct 22, 2007 7:07 pm    Post subject:

hmm...

ja tu to dari ar direct3d - http://www.toymaker.info/Games/html/picking.html

te kautko atradu
http://www.koders.com/cpp/fid1F7B7473D610ABAF434F3C1408B20C9CEA8B2F23.aspx

un te kautko atradīsi
http://jgt.akpeters.com/topics/?topic_id=27&btnSubmit=Go
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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 Wink
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: 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
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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 Very Happy
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
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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? Wink
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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 vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group