lunes, 17 de junio de 2013

2 .-. Detección del Hardware. Configurar Device.

Hola de nuevo.

Una vez hecha la inicialización correcta del dispositivo 3D vamos a establecerle algunos valores. Para ello, en la clase Motor, crearemos un nuevo Sub Público llamado PosConfigurarDX al que le pasaremos, como siempre, el objeto 3D device que configuramos antes (ByRef) queda algo así:



    Public Sub PosConfigurarDX(ByRef DP3 As Direct3D.Device)

        Try
            DP3.SetRenderState(RenderStates.ZEnable, True)
            DP3.SetRenderState(RenderStates.ZBufferWriteEnable, True)
            DP3.SetRenderState(RenderStates.CullMode, Cull.CounterClockwise)
            DP3.SetRenderState(RenderStates.Lighting, True)
            DP3.RenderState.PointSize = 1

            'HUD
            DP3.RenderState.AlphaBlendEnable = True
            DP3.RenderState.SourceBlend = Blend.SourceAlpha
            DP3.RenderState.DestinationBlend = Blend.InvSourceAlpha

            'Luz ambiental
            DP3.RenderState.Ambient = Color.White
        Catch ex As Exception

        End Try

    End Sub

Bien, ante todo tener presente que estas opciones afectan directamente al dispositivo 3D no a la pantalla del ordenador. Las dos más importantes son el Cull y el Lighting.

Cull hace referencia a si queremos ocultar las caras de los triángulos que no están de frente a la cámara. Me explico. Si tenéis un triángulo, una cara mira hacia la cámara y la otra no. Mediante Cull podemos hacer que las caras "que no vemos" no se pinten esto incrementa mucho el rendimiento de la aplicación. Lo veremos con calma en el tema siguiente.

En cuanto a Lighting quiere decur que queremos emplear luces y el PointSize es el tamaño con el que queremos ver los vértices al pintarlos (poner 5 o así para tareas de debug y no dejarse los ojos...).


Una vez hecho todo esto no tenemos nada más que hacer que llamar a nuestro Sub desde Form1.
Engine.PosConfigurarDX(Dispo3D)

No hay comentarios:

Publicar un comentario