Segundo parcial Flashcards
Shader
Programa ejecutado en diferentes etapas de la pipeline de graficqación
Razón del nombre “Shader”
Porque estaban orientados a los efectos de iluminación y sombreado
Puede manejar otros efectos, término de Pixar
Lenguaje de los shaders
Lenguaje dedicado GLSL (openGL Shading Language), basado en C
Otros lenguajes de Shaders
RenderMan
Open Shading Language
Houdini VEX
DirectX High-Level
Playstation
Metal
Tipos de Shaders
Vertex Shader
Fragment Shader
Fragment Shader
Trabaja sobre las propiedades de los fragmentos y las modifica
Vertex Shader
Trabaja sobre los vértices de los objetos (puede modificar estructuras)
Surface Shader
Trabaja sobre las propiedades de las superficies. Se usa en Unity
Geometry Shader
Trabaja en la geometría, crea nuevas primitivas como el punto y la línea.
Direct3D 10 y OpenGL 3.2
Compute Shader
Para el procesamiento de datos. Corre en la GPU y no forma parte de la GPU tradicional
Primera Tarjeta Gráfica que permitió el uso programable de shaders
Nvidia GeForce3 (2001)
Lo que remplaza el shader
Fixed Function Pipeline
Realizaba cálculos de iluminación y mapeo de texturas
Permitiendo alternativa no fija
Ray Tracing Shaders
Microsoft en DirectX Raytracing, por Khronos en Vulcan y por Metal en Apple
Tessalation Shaders
Divide mallas en mallas más finas en timepo real con fórmulas matemáticas. Permite más detalle en objetos cercanos a la pantalla y los lejanos, menos
Primitive and Mesh Shaders
Procesan primitivas de representación antes de entrar a la Pipeline. Por AMD y Nvidia en 2020. Intel anunció para finales de 2022
GUI Shader Editors
Plataformas modernas para el desarrollo de videojuegos.
Editor basado en Nodos para shaders sin usar código
Unity
Motor de creación de videojuegos.
Permite hacer scripts para diseño, creación y funcionamiento de entornos interactivos
2005
Funcionalidades de Unity
Motor gráfico para renderizar 2D y 3D
Motor de simulación físico (PhysiX)
Animación
Sonidos
IA
Scripting
Heirarchy View
Muestra elementos de la escena actual
Modifica elementos en la jerarquía o los relaciona
Prefabs en Azul
Scene View
Muestra la escena en la que se trabaja
Interacción tiempo real con los elementos
Ver cambios en tiempo real
Project View
Muestra todos los assets, scripts, modelos, animaciones, etc
Permite el acceso a configuraciones y elementos que agregar a la escena
Game View
Muestra la escena desde la perspectiva final, selección de cámaras y resultado actual del juego
Visualización de errores
Prueba de controles, menús o cualquier elemento con interacción
Inspector View
Muestra información del objeto seleccionado
Componentes, materiales, shaders, scripts asociados, etc
Bloquear selección con el candado
COnsole View
Ver mensajes emitidos por Unity3D, permite mensajes por debug o print de los scripts
Muestra cualquier error extra
Scripting en Unity
Clase hereda de MonoBehabiour->objeto en unity
Script asignable a cualquier elemento de la escena
Al asignarla, se vuelve instancia de la clase
Start:
Se ejecuta al crear el gameobject en el que se aplica
Update:
Se ejecuta en cada iteración del juego. Si un juego está a 60 FPS, Update se llama 60 veces en un segundo
Awake:
Se ejecuta antes de Start. Inicializar elementos que dependan de la inicialización de otros.
LateUpdate
Se ejecuta después de los Updates. Útil al tener dependencias. Actualizaciones que dependen de lo que hace el Update.
Ciclo de juego
Bucle infinito que se ejecuta a una determinada frecuencia, en cada iteración:
Lee la entrada del usuario
Actualiza los elementos de la escena
Dibuja los gráficos de la escena actual
Acceso a componentes y polimorfismo
Arquitectura orientada a componentes
Componentes que nos interesa:
Componente, transform, renderer, audioSource, camera, light
Materiales
Contenedores de todas las propiedades visuales de los objetos
Textura, sin fuente de luz
Información de reflexión de iluminación
Transparencia, metálico, etc
Shaders default de Unity
Para celulares
Árboles
Partículas como llamas
Modelo de cielos
Gráficos 2D
Elementos de la UI
Sin luces ni sombras en Unlit
Standar Shader
Contiene opciones para hacer objetos reales o semireales
Usa Physically Based Shading que simula iteraciones entre luz y materiales de forma realista
Rendering Mode
Opaque
Cutout
Fade
Transparent
Opaque
Solidez con color o textura, reflexión en toda la superficie, sin transparencias
Cutout
Uso del canal alfa, puntos invisibles. Se usa para tener bordes más definidos
Fade
Desaparecer o aparecer objetos con animación
Transparent
Para materiales plásticos o de cristal. Canal alfa de textura
Albedo
Guarda la información del color del objeto 3D sin aplicar luz
Guarda la textura sin infromación de comportamiento de la luz
Tiling-offset
En el mapa principal y en el secundario
Repetir la textura asociada a lo largo del modelo
textura pequeña repetible en un modelo
Tiling indica el número de veces que se repite la textura en un eje
Offset indica el desplazamiento de la textura sobre la figura
Metallic
Aspecto metálico
Luz refleja más al ser más metálico
Usa el canal R
Trabaja con smoothness para definir cómo refleja la luz y las imágenes
Emission
Emitir luz como si tuviera su propia fuente de luz
Materiales reflectantes que brillan en la oscuridad
Occlusion map
Establece cómo se refleja la luz indirecta
Usa el canal G
Iluminación global
Describe cómo la luz se comporta al rebotar por las superficies
Lighting Technique
Directional
Spot
Point
Area
Son luces a timepo real (expt. Area)
Los rayos no rebotas a tiempo real, por lo que se necesita global
Point light
Emite luz en todas las direcciones de forma similar
Direccional Light
Emite luz en una dirección específica hasta el infinito
Spot light
Emite luz en forma de cono
Area light
Se define por un rectángulo o disco que emite luz en todas las direcciones a través d els superficie, de un solo lado
Modos de iluminación
Baked
Real Time
Mixed
Baked:
La iluminación se calcula antes de la ejecución y se aplica como textura
Realtime
Unity calcula la iluminación a cada ciclo en tiempo real, no precalcula nada
Mixed light
Unity realiza cálculos previos a los objetos estáticos y en tiempo real a los objetos no estáticos
Lightmaps
Resultado de la iluminación baked, incluye luz directa como indirecta
Color space
Afecta dramáticamente el rendimiento de la aplicación, pero con un realismo superior