Exemple #1
0
        } // AtualizarCamera()

        // [---
        public void Renderizar()
        {
            // Limpa os dispositivos e os buffers de apoio
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer,
                         Color.CornflowerBlue, 1.0f, 0);

            device.BeginScene();
            // (...) Todo o código de desenhar vai aqui

            // Atualiza a câmera
            AtualizarCamera();
            AtualizarLuz();

            radar.Begin(SpriteFlags.None);
            radar.Draw(texturaAlvo, new Rectangle(0, 0, superficie_ntam, superficie_ntam),
                       new Vector3(0, 0, 0), new Vector3(10, 10, 1.0f), Color.White);
            radar.End();

            posicao = new Vector3(-50.0f, 0.2f, -200.0f);
            rotacao = new Vector3(0, 0, 0);
            g_props = new Propriedades3D(posicao, rotacao);
            desenharObjeto(objeto3D, g_props);

            device.EndScene();

            // Apresenta a cena renderizada na tela
            device.Present();

            // Libera a janela para processar outros eventos
            Application.DoEvents();
        } // Renderizar()
Exemple #2
0
        } // Renderizar()

        // ---]

        // [---
        private void desenharObjeto(Mesh obj, Propriedades3D props)
        {
            // Ajusta rotação do objeto 3d
            Matrix obj_rot = Matrix.RotationX(props.rotation.X + angulo) *
                             Matrix.RotationY(props.rotation.Y) *
                             Matrix.RotationZ(props.rotation.Z);

            // Ajusta posição do objeto 3d
            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\textura no objeto
            for (int ncx = 0; ncx < g_meshMtl.Length; ncx++)
            {
                // Informa ao dispositivo o material a ser utilizado
                // na renderização
                device.Material = g_meshMtl[ncx];
                device.SetTexture(0, g_meshTex[ncx]);

                // Renderiza o mesh
                obj.DrawSubset(ncx);
            } // endfor
        }     // desenharObjeto()
Exemple #3
0
        // ---]

        // [---
        private void renderizarNaTextura()
        {
            // Prepara a configuração da janela de visualização
            Viewport visao = new Viewport();

            visao.Width  = superficie_ntam;
            visao.Height = superficie_ntam;
            visao.MaxZ   = 1.0f;

            // Inicia a renderização da cena
            Renderizador.BeginScene(superficieAlvo, visao);

            // Limpa o dispositivo
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.White, 1.0f, 0);

            // Modo de preenchimento da renderização: pontos
            device.RenderState.FillMode = FillMode.Point;

            // Desenha o objeto na textura
            posicao = new Vector3(0.0f, 0.2f, -50.0f);
            rotacao = new Vector3(0, 0, 0);
            g_props = new Propriedades3D(posicao, rotacao);
            desenharObjeto(objeto3D, g_props);

            // Recupera modo de preenchimento da renderização: sólido
            device.RenderState.FillMode = FillMode.Solid;

            // Finaliza a cena no Renderizador
            Renderizador.EndScene(Filter.None);
        } // renderizarNaTextura()