TA159

Notas, resueltos y trabajos practicos de la materia Sistemas Gráficos
Index Commits Files Refs Submodules README LICENSE
commit da08da9131bf3d171e77516a36c811838fadf3b6
parent d40393cde6d25528a38c3049455c811d0812b910
Author: Martin Klöckner <mjkloeckner@gmail.com>
Date:   Fri, 26 Apr 2024 18:01:06 -0300

Add `2024-04-26-clase.md`

Diffstat:
Aclases/2024-04-26-clase.md | 48++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+), 0 deletions(-)
diff --git a/clases/2024-04-26-clase.md b/clases/2024-04-26-clase.md
@@ -0,0 +1,48 @@
+# Clase 26-04-24 
+
+\tableofcontents
+
+## Notas sobre el Trabajo Práctico
+
+* Para la cámara en primera persona, se puede agregar un botón a la interfaz
+  para iniciar la captura del teclado (debido a como funcionan los navegadores)
+* Textura `skybox` para el cielo
+    - En caso de utilizar se puede hacer con
+      [`renderer.background`](https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLRenderer.js#L31)
+* Para el modo noche se suele utilizar una iluminación azul oscuro  
+
+## Sobre curvas de Bézier
+
+* Promedio ponderado de una serie de puntos de control
+* El algoritmo de Casteljau es un método iterativo que sirve para contruir la
+  curva de Bézier
+* Con mas de 4 puntos de control la curva pierde "control local", por lo que se
+  preferible utilizar curvas de Bézier de grado `4` concatenadas
+* La suma de todos las bases de Bernstein es `1`, esto garantiza que la curva
+  esta incluida en la envolvente convexa 
+* Derivando la expresión de las bases de Bernstein se obtiene el vector tangente
+* [The Beauty of Bézier Curves](https://youtu.be/aVwxzDHniEw)
+* [OpenGL ES Shading Language (GLSL)](https://shaderific.com/glsl.html)
+
+## Sobre el parcial
+
+El parcial es en mayoría teórico escrito, puede pedir algunos ejemplos breves de
+código 
+
+### Temas que se evalúan
+
+* Pipeline gráfico
+* Transformaciones 
+* Curvas de Bézier
+* Proyecciones
+
+## Iluminación
+
+* En `glsl` no existen los arreglos dinámicos ya que los programas deben ser
+  estáticos, es decir, se debe declarar el "scope" de cada variable de antemano
+* Para declarar shaders en `Three.JS` se puede utilizar `rawShaderMaterial`
+* Reflexiones
+* Refracciones
+* Interreflexiones
+* Sub-Surface Scattering
+* Modelo `phong` de iluminación