3D objekta pārvietojums izmantojot kursora 2d kordinātas

Vēlies radīt spēli, bet nezini ar ko sākt? Sperot pirmos soļus, vari meklēt padomu šeit
Post Reply
Message
Author
balandinsarturs
Posts: 14
Joined: 17 Dec 2010, 02:51

3D objekta pārvietojums izmantojot kursora 2d kordinātas

#1 Post by balandinsarturs » 17 Dec 2010, 02:56

Savu spēli pamazām veidoju 3 dimensijās izmantojot C# un XNA un protams vel dažus niekus. Pašreiz strādājot pie editora esmu saskāries ar problēmu:

manā editorā ir 3D bultu kura norāda uz zemes izmaiņu punkta (vieta kur nospiežot peles labo taustiņu mainās reljefa augstums) un šo bultu vajadzētu kontrolēt ar pašu peli => pārvietojot kursoru , es vēlētos skatu kā Far Cry editorā kur vienmēr aplis uz zemēs atrodas tieši pretī kursoram bet man nekādi neizdodas to panākt ( pašreiz rodas nobīde).

Ir ideja ka varētu veidot dziļuma karti no kameras skata punkta un veidot kādu vektoru staru kurš iet caur kameru un kādu plakni kura novietota nedaudz uz prikšu un uz kuras attēlo kursora kordinātas (otrs punkts caur kuru ietu stars) un tad līdz noteiktajam dziļumam un aprēķinastara gala kordinātas - KAUT KAS UZ TO PUSI , BET NEKĀ KONKRĒTA.

Lūdzu iesakiet kaut ko , jo šādā tempā es visticamāk vel kādu nedēļu pats savā sulā kulšos līdz ko jēdzīgāku izburšu.

User avatar
raymix
Posts: 46
Joined: 07 Dec 2010, 14:57

Re: 3D objekta pārvietojums izmantojot kursora 2d kordinātas

#2 Post by raymix » 17 Dec 2010, 03:34

Tekstūru neesi mēģinājis projektēt no Y ass uz leju virsū savai 3D bultai?
Kautko līdzīgu spot light konusa gaismai, tikai šoreiz, lai projektē kautkādu noteiktu tekstūru vai vairākas, kur 2D dimensijas/scale mainās, mainot statiskos/publiskos mainīgos caur scrolleriem vai jūzera inputu? Līdzigi, kā tas notiek visos editoros.
Tādējādi projektēta tekstūra aptīsies smuki apkārt jebkuram modelim. Ideja smelta no šejienes un šejienes.
Take bullshit from no one, always follow your own dreams, even if it means going where no one has gone before.
Embrace failure and mistakes, because they will help you make better decisions in the future.

//Kim Jørgensen - AAA dev//

balandinsarturs
Posts: 14
Joined: 17 Dec 2010, 02:51

Re: 3D objekta pārvietojums izmantojot kursora 2d kordinātas

#3 Post by balandinsarturs » 18 Dec 2010, 01:16

raymix wrote:Tekstūru neesi mēģinājis projektēt no Y ass uz leju virsū savai 3D bultai?
Kautko līdzīgu spot light konusa gaismai, tikai šoreiz, lai projektē kautkādu noteiktu tekstūru vai vairākas, kur 2D dimensijas/scale mainās, mainot statiskos/publiskos mainīgos caur scrolleriem vai jūzera inputu? Līdzigi, kā tas notiek visos editoros.
Tādējādi projektēta tekstūra aptīsies smuki apkārt jebkuram modelim. Ideja smelta no šejienes un šejienes.

Palasot šo atbildi jūtos kā pilnīgs noobs. Man nav nemazākās nojautas par to kas ir jūzera inputs vai scrolleri. Manai problēmai pašreiz atbildi cenšos izvilkt no XNA 3.0 Game Programming Recipes: 5-10. Calculate the Collision Point Between the Pointer and the Terrain: Surface Picking
Ja godīgi tad man pat sāka šķist ka tu man centies paskaidrot kā projekcēt apli nevis kā atrast kursoram atbilstošās 3D kordinātes - visticamāk ka vienkārši man neaizgāja :D

User avatar
raymix
Posts: 46
Joined: 07 Dec 2010, 14:57

Re: 3D objekta pārvietojums izmantojot kursora 2d kordinātas

#4 Post by raymix » 19 Dec 2010, 02:57

čau!
Jā es biju domājis vnk projektēt apli tieši virsū tavai bultai. Man likās, ka tas ir tas, ko vēlies panākt
Jeb tev gribas to apli uzmest kā 3D objektu? Jeb tev to apli vispār nevajag, tas tikai piemērs bija?

Ja tev tā bulta pati ar terrainu nesaskaras precīzi, un notiek nobīde, tad varu ieteikt vienkāršāku metodi par to, ko minēji:
Atrodi peles X,Y pozīciju uz ekrāna un šauj laukā precīzu staru no peles lokālās Z ass, nevis editora globālās Z ass. Jo lokālās asis mainīsies ikreiz, kad kamera tiks kustināta.
Tātad izšauj staru katru FPS, kur atduras, tur tavai bultai būs precīza atrašanās vieta. Ideja smelta šeit. (es gan mazs unity devs/cienitaajs, bet princips visur viens, nav ko riteni no jauna izgudrot)

Jūzera inputs (User input) un Scrolleri (Vertical vai Horizontal slider) - ievadierīču darbība, piem. Ar klaviatūru ievietoti mainīgie runtime laikā, jeb slaiders, kas manipulējams ar peli, lai iegūtu mainīgo 0-100%. Darba rīki, kas atrodas jebkuros editoros, bez tiem vnk nevar :D
Take bullshit from no one, always follow your own dreams, even if it means going where no one has gone before.
Embrace failure and mistakes, because they will help you make better decisions in the future.

//Kim Jørgensen - AAA dev//

balandinsarturs
Posts: 14
Joined: 17 Dec 2010, 02:51

Re: 3D objekta pārvietojums izmantojot kursora 2d kordinātas

#5 Post by balandinsarturs » 22 Dec 2010, 00:21

raymix wrote:čau!
Jā es biju domājis vnk projektēt apli tieši virsū tavai bultai. Man likās, ka tas ir tas, ko vēlies panākt
Jeb tev gribas to apli uzmest kā 3D objektu? Jeb tev to apli vispār nevajag, tas tikai piemērs bija?

Ja tev tā bulta pati ar terrainu nesaskaras precīzi, un notiek nobīde, tad varu ieteikt vienkāršāku metodi par to, ko minēji:
Atrodi peles X,Y pozīciju uz ekrāna un šauj laukā precīzu staru no peles lokālās Z ass, nevis editora globālās Z ass. Jo lokālās asis mainīsies ikreiz, kad kamera tiks kustināta.
Tātad izšauj staru katru FPS, kur atduras, tur tavai bultai būs precīza atrašanās vieta. Ideja smelta šeit. (es gan mazs unity devs/cienitaajs, bet princips visur viens, nav ko riteni no jauna izgudrot)

Jūzera inputs (User input) un Scrolleri (Vertical vai Horizontal slider) - ievadierīču darbība, piem. Ar klaviatūru ievietoti mainīgie runtime laikā, jeb slaiders, kas manipulējams ar peli, lai iegūtu mainīgo 0-100%. Darba rīki, kas atrodas jebkuros editoros, bez tiem vnk nevar :D
Jā tas par to apli bija tikai piemērs un ja godīgi tad tajā avotā ko es uzrādīju ir tieši tas pats stara princips tikai biški plašāk paskaidrots nekā tavējā.

Par to Jūzeja inputu - tas ir labais, nebiju vel redzējis tik labu latviskojumu (es tak nodomāju ka tas inputs kādam par godu nosaukts :D ) - tagad viss skaidrs :idea: .

Post Reply

Return to “Iesācējiem / For beginners”