Sign in to follow this  
Coventry

Inside a cube

Recommended Posts

Coventry    102
Hi.
I have a question that bothers me for couple of hours and I failed with my experiments.
I am working with code from the following code sample [url="http://xbox.create.msdn.com/en-US/education/catalog/sample/primitives_3d"]http://xbox.create.m...e/primitives_3d[/url]
I would like to look inside of the cube with backface culling turned on.
I was manipulating the normals, but I failed.
Could you tell me what changes do I have to put to CubePrimitive.cs in order to change the face of every wall of the cube such that I can see it from inside? Here's the code, a little bit cleaned from unnecessary comments:
[CODE]
public CubePrimitive(GraphicsDevice graphicsDevice, float size)
{
// A cube has six faces, each one pointing in a different direction.
Vector3[] normals =
{
new Vector3(0, 0, 1),
new Vector3(0, 0, -1),
new Vector3(1, 0, 0),
new Vector3(-1, 0, 0),
new Vector3(0, 1, 0),
new Vector3(0, -1, 0),
};
// Create each face in turn.
foreach (Vector3 normal in normals)
{
// Get two vectors perpendicular to the face normal and to each other.
Vector3 side1 = new Vector3(normal.Y, normal.Z, normal.X);
Vector3 side2 = Vector3.Cross(normal, side1);
// Six indices (two triangles) per face.
AddIndex(CurrentVertex + 0);
AddIndex(CurrentVertex + 1);
AddIndex(CurrentVertex + 2);
AddIndex(CurrentVertex + 0);
AddIndex(CurrentVertex + 2);
AddIndex(CurrentVertex + 3);
// Four vertices per face.
AddVertex((normal - side1 - side2) * size / 2, normal);
AddVertex((normal - side1 + side2) * size / 2, normal);
AddVertex((normal + side1 + side2) * size / 2, normal);
AddVertex((normal + side1 - side2) * size / 2, normal);
}
InitializePrimitive(graphicsDevice);
}
[/CODE]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this