[color="#333333"]
public bool CheckRayIntersection(Ray ray)
{
//Where aabb is the BasicModel's BoundingBox
if (ray.Intersects(aabb) != null)
{ return true; }
else
{
[color="#333333"] return false;
}
}
[color=#333333]I create the Ray in my Camera.cs:
[color=#333333]
public Ray GetMouseRay(Vector2 mousePosition, Viewport viewport)
{
Vector3 near = new Vector3(mousePosition, 0);
Vector3 far = new Vector3(mousePosition, 1);
[color=#333333] near = viewport.Unproject(near, projection, view, Matrix.Identity);
far = viewport.Unproject(far, projection, view, Matrix.Identity);
[color=#333333] return new Ray(near, Vector3.Normalize(far - near));
}
[color=#333333]And finally in game1.cs I check for Intersection in every BasicModel and write "Intersects" to Console:
[color=#333333]
foreach(BasicModel model in assetManager._modelsOnscreen)
{
if(model.CheckRayIntersection(camera.GetMouseRay(mouseLocation,viewport)))
{
winForm.ConsoleWrite = "intersects";
}
}
[color=#333333]Somehow it always returns true for intersection with offset (to the right) to the actual Boundingbox. I also don't have any clue how I could visualize the problem or step through it. Actually the Boundingbox is drawn correctly as seen here, so I don't think that aabb causes the problem.
[color=#333333]