Ver por etiquetas

Todas las etiquetas » Render (RSS)

XNA Graphics Pipeline

Si queremos extraerle el máximo partido gráfico a XNA usando HLSL es importante conocer el pipeline gráfico usado por este framework: Cada uno de estos “módulos” cumplen un papel especial hasta conseguir pintar un objeto en pantalla, ya sea un modelo 3D ó una imagen 2D (la cual es pintada sobre un quad “anclado” a la pantalla). Veamos que se hace en cada uno de estos “módulos”: Vertex Data: Contiene un buffer de vértices sin transformar indexado o no indexado, es posible indicar mediante VertexDeclaration...
Publicado por Javier | 7 comment(s)
Archivado en: ,,,

Alpha blending en XNA (IV de IV)

Vayamos ahora a por el último bloque de instrucciones presentado en el primer post:   GraphicsDevice.RenderState.AlphaBlendEnable = false ; GraphicsDevice.RenderState.BlendFunction = BlendFunction.Add; GraphicsDevice.RenderState.BlendFactor = new Color(255, 255, 255, 255); GraphicsDevice.RenderState.SourceBlend = Blend.One; GraphicsDevice.RenderState.DestinationBlend = Blend.Zero;   GraphicsDevice.RenderState.SeparateAlphaBlendEnabled = false ; GraphicsDevice.RenderState.AlphaBlendOperation...
Publicado por Javier | 7 comment(s)

Alpha blending en XNA (III de IV)

Recordemos que al principio del todo presentamos un gran conjunto de parámetros que están relacionados con el Alpha dentro de la API de XNA: GraphicsDevice.RenderState.AlphaBlendEnable = false ; GraphicsDevice.RenderState.BlendFunction = BlendFunction.Add; GraphicsDevice.RenderState.BlendFactor = new Color(255, 255, 255, 255); GraphicsDevice.RenderState.SourceBlend = Blend.One; GraphicsDevice.RenderState.DestinationBlend = Blend.Zero;   GraphicsDevice.RenderState.SeparateAlphaBlendEnabled =...
Publicado por Javier | con no comments

Alpha blending en XNA (II de IV)

Recordemos la formula general usada para las transparecias: (Source * SourceBlend) (blendFunction) (Destination * DestinationBlend)   En los dos ejemplos anteriores usamos como BlendFunction la operación suma que suele ser la más común, pero se pueden usar otras, la lista completa es: Add     result = (Source * SourceBlend) + (Destination * DestinationBlend) Max      result = max( (Source * SourceBlend), (Destination * DestinationBlend) Min    ...
Publicado por Javier | con no comments

Alpha blending en XNA (I de IV)

Alpha blending es la técnica con la cual podemos trabajar con transparencias tanto en 2D como en 3D, nos centraremos en pintar un plano con una textura y veremos diferentes formas de aplicar esta técnica. Para el primer ejemplo usaremos una textura de vidriera: la cual nos gustaría aplicar a un plano en 3D y que se viese translucido. Si simplemente la textura el resultado sería algo como: Aquí entran en juego todos los parámetros con los que podemos trabajar, estos los podemos dividir en 3 grupos...
Publicado por Javier | 1 comment(s)

Problemas con el ZBuffer en XNA

El zbuffer es el algoritmo que se utiliza a la hora de dibujar los objetos en pantalla para decidir que objetos están delante de otros, recibe este nombre ya que se realiza un test de las coordenadas z de los objetos para comparar la profundidad a la que se encuentran en el mundo 3D. Esto a muchos matemáticos o físicos les puede resultar extraño ya que están acostumbrados a que en sus sistema de referencia la z es el vector que apunta hacia arriba, en los gráficos 3D el eje z es el que “entra hacia...
Publicado por Javier | 6 comment(s)
Archivado en: ,,