Skip to content

Commit 2c9ab14

Browse files
committed
Update README.md
1 parent c9d32d3 commit 2c9ab14

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

chapter-3/README.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,50 @@ En el cápitulo anterior se describío como se puede modelar de manera genérica
2323
<img src ="http://3dgep.com/wp-content/uploads/2014/01/OpenGL-4.0-Programmable-Shader-Pipeline1.png" />
2424
</p>
2525

26-
En la actualidad diversas etapas del pipeline mostrado en la figura anterior, son programables, es decir
26+
En la actualidad diversas etapas del pipeline mostrado en la figura anterior, son programables, se listan a continuación.
2727

28+
* Vertex Shader: También conocido como procesador de vertices, se encarga de llevar a cabo todas las operaciones sobre los vértices pertenecientes a los modelos que componen una escena dentro de una aplicación. Es una etapa obligatoria.
29+
30+
* Tessellation Shader: Estos shaders reciben los datos que provienen del vertex shader, en esta etapa la morfología de los objetos se describe mediante un nuevo tipo de dato denominado parches, estos parches son teselados por este shader, produciendo modelos de mayor resolución. Es una etapa opcional.
31+
32+
* Geometry Shader: El geometry shader se encarga de trabajar con las primitivas gráficas elementales directamente. En el, el programador tiene la potestad de crear nuevas primitivas antes de la etapa de rasterización. Representa una etapa adicional dentro del pipeline gráfico.
33+
34+
* Fragment Shader: En este shader es donde el programador tiene control total sobre cada uno de los fragmentos de la pantalla y toma la decisiones acerca de que color va a tener cada uno de ellos o de llevar a cabo un proceso de descarte.
35+
36+
Una vez que se haya decidido cuales etapas se van a manejar, se deben tomar cada uno de estos shaders asociados a dichas etapas escritos en GLSL, para cargarlos en la aplicación como un `string`, compilarlos y adjuntarselos a un programa que será el que posteriormente enlazaremos dentro de nuestra aplicación, para enviar los datos al pipeline gráfico. La clase encargada de representar al programa se llama `CGLSLProgram`.
37+
38+
Inicialización
39+
```c++
40+
bool initGlew()
41+
{
42+
// ...
43+
44+
glslProgram = new CGLSLProgram();
45+
glslProgram->loadFromFile("../shaders/Color.vert");
46+
glslProgram->loadFromFile("../shaders/Color.frag");
47+
glslProgram->create();
48+
glslProgram->loadUniformVariables();
49+
glslProgram->loadAttributeVariables();
50+
51+
// ...
52+
}
53+
```
54+
55+
Uso
56+
```c++
57+
void display()
58+
{
59+
// ...
60+
61+
glslProgram->enable();
62+
63+
// ...
64+
65+
glslProgram->disable();
66+
67+
// ...
68+
}
69+
```
2870
### Requerimientos
2971
* GLFW
3072
* AntTweakBar

0 commit comments

Comments
 (0)