View previous topic :: View next topic |
Author |
Message |
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Tue May 18, 2010 12:39 pm Post subject: Kameras Skatijums. |
|
Čau,Gribu pajautāt par 3D Kameru.
Kā lai modelim nostāda centru(vai to pievieno)?
Gribu lai kamera tiktu vērsta pret modeļa centru.
Code: |
Effects.View = Matrix.CreateLookAt(CameraPos,Centrs,Vector3.Up); |
|
|
Back to top |
|
|
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Tue May 18, 2010 12:49 pm Post subject: |
|
DirectX? OpenGL? _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Tue May 18, 2010 12:50 pm Post subject: |
|
Xna -Directx |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Tue May 18, 2010 2:03 pm Post subject: |
|
LookAt darbojas pilnīgi neatkarīgi no DX vai GL - neklausies EDIJU, viņš dumus jautājumus uzdod.
Tavs kods dara tieši to, ko tu prasi - nostāda kameru pozīcijā CameraPos. Kamera skatās uz punktu Centrs (tb Centrs koordināte būs tieši ekrāna vidū), un kameras augša vērsta Vector3.Up virzienā.
Pārējās matricas tev pareizi saliktas (Projection / Word) ? |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Tue May 18, 2010 3:45 pm Post subject: |
|
Jā.
Code: | Efekti.EnableDefaultLighting();
Efekti.World = Transformacija[Modelis.ParentBone.Index]*Matrix.CreateRotationY(ModelRotacija)*Matrix.CreateTranslation(ModelaPozicija);
Efekti.View = Matrix.CreateLookAt(KamerasPozicija,Centrs,Vector3.Up);
Efekti.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), RedzesLoks, 1.0f, 10000.0f);
| Es nedomaju Kameras(ekrana centru) bet gan modeļa centru.Pieņemsim ka kustas modelis un vēlos lai kamera kustētos līdzi modelim un Ekrana centrs ar modeļa centru sakristu. Vienkārši gribu lai kamera "Nenolaistu ne acu" no objekta Šajā gadījumā kā 3rd peroson speles. |
|
Back to top |
|
|
Tenjou
Joined: 22 Nov 2005 Posts: 275
|
Posted: Tue May 18, 2010 3:53 pm Post subject: |
|
centrs = modelja pozicija, modelim kustoties kamera sekos lidzi.
cameraPos = modelja pozicija + offsets. Lai kamera neatpaliktu no modelja, bet skatitos no noteikta attaluma. |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Tue May 18, 2010 4:37 pm Post subject: |
|
viss butu labi ja Modelis nejiegrimtu pamatne un stradatu X ass kas šāja gadijuma bija ka kameras rotācija.
Kods:
Code: | Vector3 OffSet = new Vector3(0, 300, 3000);
Efekti.EnableDefaultLighting();
Efekti.World = Transformacija[Modelis.ParentBone.Index]*Matrix.CreateRotationY(ModelRotacija)*Matrix.CreateTranslation(ModelaPozicija);
Efekti.View = Matrix.CreateLookAt(KamerasPozicija = ModelaPozicija + OffSet,ModelaPozicija,Vector3.Up);
Efekti.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), RedzesLoks, 1.0f, 10000.0f);
|
|
|
Back to top |
|
|
|