Para llegar a hacer lo mismo que habíamos conseguido sin shaders, tan solo nos queda conseguir usar las texturas que cargábamos en el tutorial de texturizado con la ayuda de los shaders, para ello vamos a cambiar el VertexShader y el FragmenShader:
Blog dedicado a publicar tutoriales de OpenGL usando C#.NET, para ello nos basaremos en el framework libre OpenTK.
04 - Introducción a los shaders (GLSL)
Para entendernos, los shaders son instrucciones que se ejecutan directamente en la GPU de la tarjeta gráfica. Las GPUs (Unidades de Procesamiento Gráfico) están especializadas en realizar ciertos tipos de operaciones que hacen que la ejecución de shaders en ellas acelere notablemente el rendimiento de nuestras aplicaciones así como también le ahorran ejecución a la CPU de nuestro PC. Es por todo esto que se recomienda el uso de shaders.
Con el tiempo se han desarrollado muchas ténicas de renderizado gracias a los shaders que han permitido llegar al nivel de detalle que podemos ver en los juegos actuales.
En el caso de OpenGL, vamos a introducir 2 tipos de shaders inicialmente, los VertexShaders que se ejecutan por cada vértice que le introduzcamos al pipeline (este término se usa en muchos de los artículos que encontraréis por internet y se refiere al trabajo en cadena que acaba con el renderizado final) y, por otra parte, los FragmentShaders (PixelShaders en Directx) que se ejecutan por cada 'fragmento' que se renderice, estos fragmentos los podemos identificar por píxeles por ahora aunque no lo son al 100%.
Con el tiempo se han desarrollado muchas ténicas de renderizado gracias a los shaders que han permitido llegar al nivel de detalle que podemos ver en los juegos actuales.
En el caso de OpenGL, vamos a introducir 2 tipos de shaders inicialmente, los VertexShaders que se ejecutan por cada vértice que le introduzcamos al pipeline (este término se usa en muchos de los artículos que encontraréis por internet y se refiere al trabajo en cadena que acaba con el renderizado final) y, por otra parte, los FragmentShaders (PixelShaders en Directx) que se ejecutan por cada 'fragmento' que se renderice, estos fragmentos los podemos identificar por píxeles por ahora aunque no lo son al 100%.
03 - Usando texturas
En esta entrada vamos explicar los fundamentos de como texturizar renderizados. Para ello hay que entender que las coordenadas a aplicar son distintas cuando hablamos de las coordenadas del modelo y cuando hablamos de las coordenadas de la textura, esto se observa fácilmente en el siguiente gráfico:
02 - Primer renderizado, dibujando triangulos
En el artículo anterior ya comentábamos que las instrucciones de dibujo se deben escribir entre las instrucciones de Begin() y End().
La forma más básica de dibujo es definiendo los vertices de las formas directamente. Por defecto, los vertices definen triangulos, de manera que cada 3 vertices definidos forman un triangulo.
La forma más básica de dibujo es definiendo los vertices de las formas directamente. Por defecto, los vertices definen triangulos, de manera que cada 3 vertices definidos forman un triangulo.
01 - ¡Hola mundo!
Empezaremos, como mandan los cánones con un 'Hola Mundo'. En este caso, escribir texto en Opengl no es tan trivial por lo que nuestra primera aplicación será un poco diferente.
Requisitos previos:
-Entorno de desarrollo de tu elección, en mi caso: Microsoft Visual C# 2010 Express
-SDK de OpenTK que lo puedes descargar de http://www.opentk.com/
Requisitos previos:
-Entorno de desarrollo de tu elección, en mi caso: Microsoft Visual C# 2010 Express
-SDK de OpenTK que lo puedes descargar de http://www.opentk.com/
00 - Bienvenidos a mis Tutoriales de OpenGL en C#.NET
¡Hola a todos!
Lo primero supongo que sería presentarme un poco, pero no os voy a aburrir con detalles personales o profesionales que no tengan que ver con lo que intentaré que sea el tema principal del blog, aprender OpenGL usando C#.NET como lenguaje de programación.
Lo primero supongo que sería presentarme un poco, pero no os voy a aburrir con detalles personales o profesionales que no tengan que ver con lo que intentaré que sea el tema principal del blog, aprender OpenGL usando C#.NET como lenguaje de programación.
Suscribirse a:
Entradas (Atom)