Ejemplo n.º 1
0
	    public override bool ShouldCull(VertexShader.VertexShaderOutput[] vertices)
        {
            var a = vertices[0].Position;
            var b = vertices[1].Position;
            var c = vertices[2].Position;

            var ab = Number4.Subtract(ref b, ref a);
            var ac = Number4.Subtract(ref c, ref a);

            var l0 = new Vector3ForCulling(ab.X, ab.Y, ab.Z);
            var l1 = new Vector3ForCulling(ac.X, ac.Y, ac.Z);

            l0.Normalize();
            l1.Normalize();

            var normal = Vector3ForCulling.CrossZ(ref l0, ref l1);

            return RasterizerState.ShouldCull(normal > 0);
        }
Ejemplo n.º 2
0
        public override bool ShouldCull(VertexShader.VertexShaderOutput[] vertices)
        {
            var a = vertices[0].Position;
            var b = vertices[1].Position;
            var c = vertices[2].Position;

            var ab = Number4.Subtract(ref b, ref a);
            var ac = Number4.Subtract(ref c, ref a);

            var l0 = new Vector3ForCulling(ab.X, ab.Y, ab.Z);
            var l1 = new Vector3ForCulling(ac.X, ac.Y, ac.Z);

            l0.Normalize();
            l1.Normalize();

            var normal = Vector3ForCulling.CrossZ(ref l0, ref l1);

            return(RasterizerState.ShouldCull(normal > 0));
        }