¿Cómo se crea contenido HDR?

33

¿Cómo facilita a sus artistas la creación de contenido para un renderizador HDR ? ¿Qué tipo de herramientas debe proporcionar y qué flujos de trabajo deben cambiar para pasar de LDR a HDR?

Tenga en cuenta que no estoy preguntando sobre los aspectos técnicos de la implementación de un renderizador HDR, sino sobre las mejores prácticas para crear materiales e iluminación en HDR. He buscado en Google un poco, pero no parece haber mucho sobre este tema en la web. ¿Alguien puede señalarme algunos buenos recursos sobre esto o compartir sus propias experiencias?

Algunos puntos específicos:

  • Iluminación: ¿cómo pueden los artistas de iluminación elegir colores de luz HDR? ¿Tienen un selector de color LDR estándar y luego un multiplicador? ¿El multiplicador está en gamma o espacio lineal? ¿Quizás en lugar de un multiplicador es una log-luminancia? ¿O un nivel de brillo físico, como la cantidad de lúmenes? ¿Cómo sabrán qué multiplicador / luminancia / brillo es "correcto" para una luz dada?
  • Materiales: ¿cómo pueden los artistas de texturas hacer mapas de color emisivos, como letreros de neón, pantallas de TV, cajas de cielo, etc.? ¿Puedes pintar uno como una imagen LDR normal (8 bits por canal) y aplicar un multiplicador (o log-luminance, etc.)? ¿Hay casos en los que sea necesario pintar imágenes HDR? Si es así, ¿cómo se hace esto en Photoshop (u otro software)?
Nathan Reed
fuente
3
Esto podría ser útil: developer.valvesoftware.com/wiki/HDR_Skybox_Creation
Tetrad
1
@Aralox, no he descubierto nada sobre cómo otros equipos / compañías hacen esto. Hemos estado trabajando en este tema en mi empresa, pero tampoco puedo revelar públicamente nada al respecto (todavía). Sin embargo, ¡espero poder hablar sobre nuestro flujo de trabajo!
Nathan Reed
1
Realmente me gustaría ver lo que la gente tiene que decir sobre la creación de contenido HDR sin usar fuentes de fotos.
1
Recuerde que esta es una historia antigua, pero sí, las luces de afuera estaban literalmente iluminadas mucho más que las de la cueva y el motor de renderizado tuvo que hacer frente. Se utilizaron volúmenes para controles ambientales y de tono. La idea era que una roca en sí misma no se convierte en HDR, es solo una roca y la luz que la golpea es lo que la hace realmente brillante u oscura en relación con lo que el render piensa que es una exposición gris. Estoy seguro de que has visto HDR temprano donde la "exposición" sigue ajustándose a donde está el jugador; Una moda del tiempo.
Patrick Hughes
2
Tengo un fondo de fotografía, solo una llamada instintiva de que "afuera" es quizás 4-5 f-paradas más brillante que "adentro" de una entrada de cueva con iluminación moderada.
Patrick Hughes

Respuestas:

5

Creo que todavía estamos de alguna manera en los "días de las cavernas" que Patrick Hugues describe en sus comentarios.

No desea detalles sobre las implementaciones de renderizador, pero permítame aclarar un poco las cosas de todos modos: entenderá por qué. HDR en los motores de juego se trata principalmente de tener valores "más amplios" para la salida de renderizado (el framebuffer). Normalmente, un punto flotante de 16 bits que puede superar 1.0, en lugar de enteros de 8 bits que solo nos dan 256 valores en el rango [0,1]. Esta salida se convierte a LDR usando un mapeador de tonos , para que la pantalla pueda mostrarlo. Para mí, la verdadera "autoría de HDR" estaría en ajustar este mapeador de tonos, por lo que querrá dar el mayor control posible a sus artistas sobre esto. Habrá algún tipo de sombreador involucrado, por lo que tienes artistas técnicos que pueden manejarlo, o lo codificas y expones los parámetros más útiles.

No estoy seguro de que necesariamente necesite luces de 16 bits, excepto tal vez para crear luces que emitan "más blanco que el blanco". Pero si lo desea, en cualquier editor que use para sus luces, necesitará algún tipo de selector de color o un montón de controles deslizantes que le brinden esos valores de coma flotante. Ah, si quieres una GUI, probablemente solo comiences con valores de punto flotante de texto plano en un archivo.

Existen texturas HDR (16 bits por canal) pero no se usan mucho, quizás solo porque eso requeriría mucha más memoria que las texturas LDR normales (8 bits por canal). También sospecho que hay más limitaciones de hardware en las consolas de la generación actual, por lo que la mayoría de los motores de juegos grandes no presionan demasiado. Por ejemplo, parece que es un poco complicado importar una textura HDR para usar con el UDK . Sin embargo, para crear texturas de 16 bits necesitará un software que lo admita, como Photoshop . Probablemente haya otros, pero no parece tan frecuente, p. Ej.susfue una solicitud de larga data para GIMP eso todavía está pendiente. También deberá utilizar un formato de imagen de 16 bits, como PNG.

Laurent Couvidou
fuente
1
Acabo de comprobar cómo se editan las luces dentro del UDK. Parece que usan un selector de color RGB clásico con valores de color de 8 bits, con un factor de "brillo" adicional que puede ir por encima de 1.0 y escalar los tres colores al mismo tiempo.
Laurent Couvidou
1

como dijo lorancou, realmente no creas contenido hdr ya que generalmente es dinámico a la cantidad de luz. Pero, probablemente podría imitarlo en un mapa de luz que solo implicaría modificar cualquier sombreador de precalculación para tenerlo en cuenta.

CobaltHex
fuente
1

Bueno, tres años después y acabo de escribir una publicación de blog sobre la creación de contenido HDR , así que ahora puedo responder mi propia pregunta. :)

Para resumir,

  • Una buena manera de manejar la amplia gama de valores de brillo HDR es mediante el uso de una escala logarítmica. Los fotógrafos tienen una escala que han estado utilizando durante décadas, llamada valor de exposición o EV.
  • Usar EV en su motor / herramientas es útil ya que los valores medidos en la vida real con el medidor de punto de un fotógrafo se pueden usar como datos de referencia para configurar la iluminación en el juego. Photoshop también usa EV (aunque no lo llama así) en su modo de 32 bits.
  • Los selectores de color para fuentes de luz, materiales emisivos, etc. pueden tener los componentes LDR RGB habituales combinados con un componente EV que escala su brillo HDR general. Esto es útil para evitar cambiar accidentalmente el color cuando solo desea cambiar el brillo, o viceversa.
  • No es necesario tener texturas HDR para los mapas habituales difusos y especulares, pero es útil para texturas emisivas. Aquí se necesita compresión BC6, porque las texturas BC1 muestran bandas y artefactos horribles si se amplían a un alto brillo (por ejemplo, para letreros de neón).
  • Por lo general, no es necesario pintar texturas emisivas en coma flotante. El modo Photoshop de 16 bits (que es de punto fijo) probablemente será suficiente para las texturas emisivas. Sin embargo, el modo Photoshop de 32 bits proporciona bastante buen soporte de edición de imágenes de punto flotante si es necesario.
Nathan Reed
fuente