コード例 #1
0
ファイル: Cube.cs プロジェクト: MJX1010/UnityShader
        public Cube()
        {
            /**注意:构建三角面时,从顺时针方向构建,左手坐标系**/

            //top可见使用顺时针
            triangles[0] = new Triangle3D(a, b, c);
            triangles[1] = new Triangle3D(a, c, d);

            //bottom,不可见使用逆时针
            triangles[2] = new Triangle3D(e, h, f);
            triangles[3] = new Triangle3D(f, h, g);

            //front可见使用顺时针
            triangles[4] = new Triangle3D(d, c, g);
            triangles[5] = new Triangle3D(d, g, h);

            //back不可见使用逆时针
            triangles[6] = new Triangle3D(a, e, b);
            triangles[7] = new Triangle3D(b, e, f);

            //right可见使用顺时针
            triangles[8] = new Triangle3D(b, f, c);
            triangles[9] = new Triangle3D(c, f, g);

            //left不可见使用逆时针
            triangles[10] = new Triangle3D(a, d, h);
            triangles[11] = new Triangle3D(a, h, e);
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: MJX1010/UnityShader
        private void Form1_Load(object sender, EventArgs e)
        {
            //注意 w 的值为1 才能进行正常的矩阵变换
            //z 为 0
            Vector4 a = new Vector4(0, 0.5, 0, 1);//此时三角形顶点朝下
            Vector4 b = new Vector4(0.5, -0.5, 0, 1);
            Vector4 c = new Vector4(-0.5, -0.5, 0, 1);

            t = new Triangle3D(a, b, c);
        }