Witam! Napisałem prostą aplikację wykorzystującą modele 3D w XNA. Mam taki problem, bo gdy poruszę kamerę i zajdzie za którąś ścianę (model) to ona po prostu znika, z różnych stron to się dzieje, ale nie zauważyłem dlaczego tak się dzieje, wszystkie ściany widać tylko z jednej strony, po przejechaniu gdzieś dalej, niewidocznych jest kilka. Kod:
// (DRAW) tak rysuję modele:
foreach (MyModel Object in Objects)
{
// Copy any parent transforms.
Matrix[] Transforms = new Matrix[Object.Model.Bones.Count];
Object.Model.CopyAbsoluteBoneTransformsTo(Transforms);
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh Mesh in Object.Model.Meshes)
{
// This is where the mesh orientation is set, as well
// as our camera and projection.
foreach (BasicEffect Effect in Mesh.Effects)
{
Effect.EnableDefaultLighting();
Effect.AmbientLightColor = new Vector3(0.5f);
Effect.World = Transforms[Mesh.ParentBone.Index] * Matrix.CreateRotationY(MathHelper.ToRadians(Object.Rotation)) * Matrix.CreateTranslation(Object.Position);
Effect.View = View;
Effect.Projection = Projection;
}
// Draw the mesh, using the effects set above.
Mesh.Draw();
}
// (UPDATE) macierze: (CameraPosition to Vector3)
View = Matrix.CreateLookAt(CameraPosition, Vector3.Zero, Vector3.Up);
Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), graphics.GraphicsDevice.Viewport.AspectRatio, 1.0f, 10000.0f);