.[ ČeskéHry.cz ].
posun bodu

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 28. duben 2014, 08:15:53    Předmět: posun bodu Odpovědět s citátem

Zdravím.
Mám menší problém. Mám program, kedy keď kliknem myšou do scény, má sa na danom mieste vytvoriť objekt. Nemá sa vytvoriť priamo v tom bode ale posúvam ho na ose Z o 10 dopredu. Mám vytvorenú funkciu, ktorá má vypočítať súradnice. Problém je v tom, že keď ten bod posuniem o 10 dopredu, tak už nie je na pozícií kurzora (to bude asi tou perspektívou). Vedel by mi niekto prosím poradiť, ako dosiahnuť toho, aby keď kliknem na scénu, tak sa mi bod vytvorí na pozícii kliku plus 10 na osi Z. Funkcia, ktorá počíta súradnice vyzerá nejak takto:

kód:

public Vektor openGLPos(int x, int y)
        {   //prepocet suradnic kliku v okne, na suradnice v 3D OpenGL
            Double outX, outY, outZ;    //vysupne suradnice

            Vektor win = new Vektor(x, DATA.viewport[3] - y, 0);
            unsafe  //pracujem s pointrami tak musim byt v unsafe mode
            {
                CsGL.OpenGL.GL.glReadPixels(x, DATA.viewport[3] - y, 1, 1, GL.DEPTH_COMPONENT, GL.FLOAT, (&outZ));  //zizkam Ztovu suradnicu
            }

            //funkcia prepocita suradnice
            CsGL.OpenGL.GL.gluUnProject(win.X, win.Y, outZ, DATA.modelview, DATA.projection, DATA.viewport, out outX, out outY, out outZ);

            //pusniem bod kliku o 10 na ose Z
            Vektor temp = new Vektor(outX - (10 * DATA.modelview[2]), outY - (10 * DATA.modelview[6]), outZ - (10 * DATA.modelview[10])); //

            return temp;
        }
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 28. duben 2014, 09:39:46    Předmět: Odpovědět s citátem

Neposouvej ho +10 v z, ale +10 vektorem kamera->zjištěná_pozice.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 28. duben 2014, 11:19:49    Předmět: Odpovědět s citátem

A ako zistim vektor kamery? Robim to v C# pomocou OpenGL4Net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 28. duben 2014, 12:18:19    Předmět: Odpovědět s citátem

No kamera je někde umístěna, to je bod 1. Nalezený bod je bod 2. Když je spojíš, tak máš vektor směru "od kamery k bodu 2" (z tvého pohledu je to jeden pixel mířící do monitoru). Podělíš svojí velikostí, vynásobíš délkou, o kterou chceš posunout, a to přičteš k bodu 2.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 28. duben 2014, 14:40:10    Předmět: Odpovědět s citátem

A suradnice kamery zistim ako? Smile Nepouzivam funkciu LookAt ale len translate a rotate. S kamerou kamerou ako takou som zatial moc nerobil, tak som z toho trochu mimo Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 28. duben 2014, 15:25:26    Předmět: Odpovědět s citátem

Tak jestli jen hýbeš objekty okolo kamery, tak kamera je na výchozí pozici. Podle 3D API si přečti v dokumentaci, kde to je.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 28. duben 2014, 21:52:08    Předmět: Odpovědět s citátem

Super, už to fičí! Ďakujem moc. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna