예제 #1
0
        } // Renderizar()

        private void desenharObjeto(Mesh obj, Propriedades3D props)
        {
            // Ajusta rotação da caixa
            Matrix obj_rot = Matrix.RotationX(props.rotation.X) *
                             Matrix.RotationY(props.rotation.Y) *
                             Matrix.RotationZ(props.rotation.Z);

            // Ajusta posição da caixa
            Matrix obj_pos = Matrix.Translation(props.position);

            // Tranfere posição e rotação para o mundo
            device.Transform.World = obj_rot * obj_pos;

            // Prepara e aplica uma material na caixa
            Material obj_mtl = new Material();

            obj_mtl.Diffuse = props.color;
            obj_mtl.Ambient = props.color;

            // Informa ao dispositivo o material a ser utilizado
            // na renderização
            device.Material = obj_mtl;

            // Renderiza o mesh
            obj.DrawSubset(0);
        } // desenharObjeto()
예제 #2
0
        } // initGfx().fim

        // ---]
        // [---
        private void CriarTexto3D()
        {
            // Fonte para base do texto 3d
            g_font = new System.Drawing.Font("Arial", 24.0f);

            // Cria texto 3d a partir da fonte g_font
            float extrusao = 0.9f;
            float desvio   = 0.004f;

            texto3d = Mesh.TextFromFont(device, g_font, "Gameprog",
                                        desvio, extrusao);

            // Configura cor, posicionamento e rotação do texto
            posicao       = new Vector3(2.0f, 1.5f, -2.0f);
            rotacao       = new Vector3(3, 0, -3.0f);
            g_props       = new Propriedades3D(posicao, rotacao);
            g_props.color = Color.DarkRed;
        } // CriarTexto3D().fim