1 # Clase 26-04-24 2 3 \tableofcontents 4 5 ## Notas sobre el Trabajo Práctico 6 7 * Para la cámara en primera persona, se puede agregar un botón a la interfaz 8 para iniciar la captura del teclado (debido a como funcionan los navegadores) 9 * Textura `skybox` para el cielo 10 - En caso de utilizar se puede hacer con 11 [`renderer.background`](https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLRenderer.js#L31) 12 * Para el modo noche se suele utilizar una iluminación azul oscuro 13 14 ## Sobre curvas de Bézier 15 16 * Promedio ponderado de una serie de puntos de control 17 * El algoritmo de Casteljau es un método iterativo que sirve para contruir la 18 curva de Bézier 19 * Con mas de 4 puntos de control la curva pierde "control local", por lo que se 20 preferible utilizar curvas de Bézier de grado `4` concatenadas 21 * La suma de todos las bases de Bernstein es `1`, esto garantiza que la curva 22 esta incluida en la envolvente convexa 23 * Derivando la expresión de las bases de Bernstein se obtiene el vector tangente 24 * [The Beauty of Bézier Curves](https://youtu.be/aVwxzDHniEw) 25 * [OpenGL ES Shading Language (GLSL)](https://shaderific.com/glsl.html) 26 27 ## Sobre el parcial 28 29 El parcial es en mayoría teórico escrito, puede pedir algunos ejemplos breves de 30 código 31 32 ### Temas que se evalúan 33 34 * Pipeline gráfico 35 * Transformaciones 36 * Curvas de Bézier 37 * Proyecciones 38 39 ## Iluminación 40 41 * En `glsl` no existen los arreglos dinámicos ya que los programas deben ser 42 estáticos, es decir, se debe declarar el "scope" de cada variable de antemano 43 * Para declarar shaders en `Three.JS` se puede utilizar `rawShaderMaterial` 44 * Reflexiones 45 * Refracciones 46 * Interreflexiones 47 * Sub-Surface Scattering 48 * Modelo `phong` de iluminación