¿Qué significa “ hornear luces ”?

¿Qué significa hornear lightmap? Escuché esto en Unity3d, y nuevamente encontré este complemento LightUp para sketchup que hornea mapas de luz.

Por lo que observo, el mapa de luces horneado le da al objeto 3D una sensación mucho más realista. ¿El propósito de hornear luz en el objeto es darle ese aspecto de animación CG que ves en animaciones pre-renderizadas?

Comentarios

  • Además, cada vez que horneas algo, ya sea física, iluminación o cualquier otra cosa. Significa que ha configurado algo que llevará mucho tiempo renderizar / procesar en tiempo real, o quiere que se reproduzca de la misma manera cada vez, por lo que solo lo hace una vez y guarda los resultados para usarlos más adelante, y porque todos los cálculos están hechos, mostrar lo que se ha horneado es rápido y siempre igual en todas las partidas.
  • AttackingHobo, esa es una excelente manera de decirlo. Ahora lo entiendo. Pero, curioso, ¿cómo se hornearía la física? ¿Luxrender produce representaciones fotorrealistas porque pueden calcular la física de la luz?
  • La física se puede preparar para escenas complejas simulando y almacenando una vez todas las posiciones de los objetos, rotaciones, etc. para cada paso de tiempo. Luego, en lugar de volver a calcular todos los valores en vivo, simplemente se reproducen a partir de los valores almacenados.

Respuesta

Cuando tienes una luz estática (sin movimiento) en un juego, tienes dos opciones para renderizar esta luz. Puede convertirlo en lo mismo que una luz dinámica; es decir, alimentarlo a través del canal de sombreado que calculará su efecto en todo lo que lo rodea, en cada fotograma, en su camino hacia la pantalla. Obviamente, esto es bastante caro. O un editor puede hornear la luz en la escena.

Lo que siempre pensé en hornear fue quizás una versión más simple: básicamente el editor simplemente toma las texturas de todo lo que rodea la luz, calcula el efecto de la luz en esas texturas (las ilumina, tal vez las colorea, las sombras, etc.) y las guarda como texturas de reemplazo para usar. Por lo tanto, todas las texturas alrededor de la «luz» parecen tener una luz proyectada sobre ellas, pero en tiempo de ejecución en realidad no hay luz desde un punto de vista de cálculo; es una ilusión óptica, esencialmente.

Sin embargo, Unity parece estar generando un lightmap . Esto es similar a la noción anterior , pero la iluminación horneada se mantiene por separado en lugar de modificar la textura subyacente, y supongo que un sombreador fusiona los dos en tiempo de ejecución. Esto tendría la ventaja de mantener la ventaja de las texturas en mosaico (es decir, bajo uso de memoria), ya que no tenga la luz directamente en ellos, por lo que podrían permanecer en mosaico, y el sombreador sería muy liviano, especialmente en comparación con el tratamiento de la luz como dinámica.

Una luz obviamente debe ser estática para que esto funcione; es decir, no puedes moverlo durante el juego, porque la luz se ha quemado en las texturas. Además, los objetos dinámicos en la habitación (como el personaje del jugador) no tendrán la luz brillando sobre ellos, por lo que es necesario ser una especie de excepción, donde la luz se renderiza para objetos dinámicos pero no (re) renderiza en el escenario estático.

Comentarios

  • Y la mayoría de las veces debido a que la iluminación es suave, el mapa de luz se puede guardar en una resolución más baja que el resto de las texturas, aún se ve bien, pero se renderiza más rápido y ocupa menos memoria.
  • +1, esto es una respuesta realmente agradable y extensa, gracias. 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *