Joined: 8/22/2011(UTC) Posts: 170 Location: Moscow
Thanks: 3 times Was thanked: 2 time(s) in 2 post(s)
|
Why //if camera 0 -10 0 TranslationZ 10 if cam.UpdateProjectionMatrix(); //if camera 0 -10 0 TranslationZ 8.1818 ---- i need find point on z = 0 when i zoom unzoom camera; Code:
[Test]
public static void Test2()
{
BaseCamera cam = new FreeCamera(new Vector(0, -10, 0));
cam.Target=new Vector(0, 0, 0);
cam.FieldOfView = MathHelper.DegreeToRadians(90);
cam.NearPlane = 1; //work
cam.FarPlane = 10; //work
var halfSize = new Vector(3, 3, 3);
string text;
Application.Start(delegate
{
Grid.Draw();
text = ScreenSpace.InternalViewProjection3D.Translation.ToString(); //Look after zoom (unzoom)
//if camera 0 -10 0 TranslationZ 10
//ater
//if camera 0 -10 0 TranslationZ 8.1818 ----
var point = new Point(0f, 0.5f);
text += "\n Position" + cam.Position;
text += "\n FarPlane" + cam.FarPlane;
text += "\n Point in" + point;
Ray ray = ScreenSpace.GetRayFromScreenPoint(point);
Vector end = ray.Direction + ray.Position;
point = new Point(end.X, end.Z);
text += "\n Point on grid" + point;
Vector vector = ScreenSpace.Project(new Vector(point.X, 0,point.Y));
text += "\n vector" + vector;
ray = ScreenSpace.GetRayFromScreenPoint(new Point(vector.X, vector.Y));
end = ray.Direction + ray.Position;
point = new Point(end.X, end.Z);
text += "\n 2 Point on grid" + point;
vector = ScreenSpace.Project(new Vector(point.X, 0,point.Y));
text += "\n vector" + vector;
Font.Default.DrawCentered(text,
new Point(0.5f, 0.3f));
if (Input.Keyboard.IsReleased(InputButton.A))
{
cam.Position -= new Vector(0, 0.01f, 0);
cam.UpdateProjectionMatrix();
cam.FarPlane = cam.Position.Y;
cam.UpdateProjectionMatrix();
}
if (Input.Keyboard.IsReleased(InputButton.S))
{
cam.Position += new Vector(0,0.01f,0);
cam.UpdateProjectionMatrix();
cam.FarPlane = cam.Position.Y;
cam.UpdateProjectionMatrix();
}
});
}
Benjamin i need help  Test 2 Code:
[Test]
public static void Test3()
{
BaseCamera cam = new FreeCamera(new Vector(0, -10, 0));
cam.Target = new Vector(0, 0, 0);
cam.FieldOfView = MathHelper.DegreeToRadians(90);
cam.NearPlane = 1; //work
cam.FarPlane = 10; //work
var halfSize = new Vector(3, 3, 3);
string text = "";
string text2 = "";
string text3 = "";
bool start = false;
bool zoom = false;
bool unzoom = false;
Application.Start(delegate
{
Grid.Draw();
if (!start)
{
text = ScreenSpace.InternalViewProjection3D.Translation.ToString();
start = true;
cam.UpdateProjectionMatrix();
text2 = ScreenSpace.InternalViewProjection3D.Translation.ToString();
}
if (!zoom)
{
cam.Position += new Vector(0, 0.1f, 0);
cam.UpdateProjectionMatrix();
cam.FarPlane = cam.Position.Y;
cam.UpdateProjectionMatrix();
text3 = ScreenSpace.InternalViewProjection3D.Translation.ToString();
zoom = true;
}
if (!unzoom)
{
cam.Position -= new Vector(0, 0.1f, 0);
cam.UpdateProjectionMatrix();
cam.FarPlane = cam.Position.Y;
cam.UpdateProjectionMatrix();
text3 = ScreenSpace.InternalViewProjection3D.Translation.ToString();
unzoom = true;
}
Font.Default.DrawCentered(text + "\n" + text2 + "\n" + text3,
new Point(0.5f, 0.3f));
});
}
text "(0.0000, 0.0000, 9.5859)" string text2 "(0.0000, 0.0000, 10.0000)" string text3 "(0.0000, 0.0000, 8.1818)" string Edited by user Tuesday, November 29, 2011 9:01:25 PM(UTC)
| Reason: Not specified |
Russian game developer. Давайте делать игры в команде. Идет набор. |