Como você cria conteúdo HDR?

33

Como você facilita a criação de conteúdo para um renderizador HDR para seus artistas ? Que tipos de ferramentas você deve fornecer e quais fluxos de trabalho precisam mudar ao passar do LDR para o HDR?

Observe que não estou perguntando sobre os aspectos técnicos da implementação de um renderizador HDR, mas sobre as práticas recomendadas para criar materiais e iluminação no HDR. Eu pesquisei um pouco, mas não parece haver muito sobre esse tópico na web. Alguém pode me indicar alguns bons recursos sobre isso ou compartilhar suas próprias experiências?

Alguns pontos específicos:

  • Iluminação - como os artistas de iluminação podem escolher cores claras HDR? Eles possuem um seletor de cores LDR padrão e um multiplicador? O multiplicador está em gama ou espaço linear? Talvez, em vez de um multiplicador, seja uma luminância de log? Ou um nível de brilho físico, como o número de lúmens? Como eles saberão qual multiplicador / luminância / brilho é "correto" para uma determinada luz?
  • Materiais - como os artistas de texturas podem fazer mapas de cores emissivos, como sinais de néon, telas de TV, caixas de céu etc.? Você pode pintar uma como uma imagem normal de LDR (8 bits por canal) e aplicar um multiplicador (ou luminância de log etc.)? Existem casos em que é necessário realmente pintar imagens HDR? Se sim, como você faz isso no Photoshop (ou outro software)?
Nathan Reed
fonte
3
Isso pode ser útil: developer.valvesoftware.com/wiki/HDR_Skybox_Creation
Tetrad 11/11
1
@Aralox, não descobri nada sobre como outras equipes / empresas fazem isso. Temos trabalhado nesse assunto na minha empresa, mas também não posso revelar publicamente nada sobre isso. Espero, eventualmente, poder falar sobre o nosso fluxo de trabalho!
Nathan Reed
1
Eu realmente gostaria de ver o que as pessoas têm a dizer sobre a criação de conteúdo HDR sem usar fontes de fotos.
1
Lembre-se de que essa é uma história antiga, mas sim, as luzes do lado de fora estavam literalmente muito mais brilhantes do que as da caverna e o mecanismo de renderização precisou lidar. Os volumes foram utilizados para controles de ambiente e tom. A idéia era que uma rocha não se transforma em HDR, é apenas uma rocha e a luz que a atinge é o que a torna realmente brilhante ou escura em relação ao que a renderização pensa ser uma exposição cinza. Tenho certeza que você já viu o HDR inicial, onde a "exposição" continua se ajustando ao local onde o player está; uma moda passageira do tempo.
Patrick Hughes
2
Tenho experiência com fotografia, apenas uma chamada instintiva de que "lá fora" é talvez 4-5 f-stops mais brilhante que "dentro" de uma entrada de caverna moderadamente iluminada.
Patrick Hughes

Respostas:

5

Acho que ainda estamos nos "dias dos homens das cavernas" que Patrick Hugues descreve em seus comentários.

Você não deseja detalhes sobre implementações de renderizador, mas deixe-me esclarecer um pouco as coisas de qualquer maneira: você entenderá o porquê. O HDR nos mecanismos de jogo é principalmente sobre ter valores "mais amplos" para a saída de renderização (o framebuffer). Normalmente, um ponto flutuante de 16 bits que pode ir acima de 1,0, em vez de números inteiros de 8 bits que nos fornecem 256 valores no intervalo [0,1]. Essa saída é então convertida para LDR usando um mapeador de tons , para que a tela possa exibi-la. Para mim, a verdadeira "autoria do HDR" seria ajustar esse mapeador de tons, então você desejará dar o máximo de controle possível aos seus artistas. Haverá algum tipo de sombreador envolvido; portanto, você tem artistas técnicos que podem lidar com isso ou o codifica e expõe os parâmetros mais úteis.

Eu não tenho certeza que você vai, necessariamente, precisa de 16 bits luzes, exceto talvez para criar luzes que emitem "mais branco que o branco". Mas se você quiser, em qualquer editor que use para suas luzes, precisará de algum tipo de seletor de cores ou um monte de controles deslizantes que ofereçam esses valores de ponto flutuante. Ah, se você quiser uma GUI, provavelmente começará com valores de ponto flutuante em texto sem formatação em um arquivo.

As texturas HDR (16 bits por canal) existem, mas não são amplamente usadas, talvez apenas porque isso exigiria muito mais memória do que as texturas LDR comuns (8 bits por canal). Eu também suspeito que haja mais limitações de hardware nos consoles de geração atual, então a maioria dos grandes motores de jogos ao redor não pressiona muito isso. Por exemplo, parece um pouco complicado importar uma textura HDR para uso com o UDK . No entanto, para criar texturas de 16 bits, você precisará de um software que suporte, como o Photoshop . Provavelmente existem outros, mas não parece tão frequente, por exemploEstáfoi um pedido de longa data para o GIMP ainda está pendente. Você também precisará usar um formato de imagem com reconhecimento de 16 bits, como PNG.

Laurent Couvidou
fonte
1
Acabei de verificar como as luzes são editadas no UDK. Parece que eles usam um seletor de cores RGB clássico com valores de cores de 8 bits, com um fator adicional de "brilho" que pode ir acima de 1,0 e dimensionar as três cores ao mesmo tempo.
Laurent Couvidou
1

como lorancou disse, você realmente não cria conteúdo hdr, já que geralmente é dinâmico com a quantidade de luz. Mas você provavelmente poderia imitá-lo em um mapa de luz que envolveria apenas a modificação de qualquer sombreador de pré-cálculo para levar isso em conta.

CobaltHex
fonte
1

Bem, três anos depois e acabei de escrever uma postagem no blog sobre a criação de conteúdo HDR , para que agora eu possa responder minha própria pergunta. :)

Para resumir,

  • Uma boa maneira de lidar com a ampla gama de valores de brilho HDR é usando uma escala logarítmica. Os fotógrafos têm uma escala que eles usam há décadas, chamada valor de exposição ou EV.
  • Usar o VE no seu motor / ferramentas é útil, pois os valores medidos na vida real com o medidor de ponto de um fotógrafo podem ser usados ​​como dados de referência para configurar a iluminação no jogo. O Photoshop também usa EV (embora não o chame assim) no modo de 32 bits.
  • Os seletores de cores para fontes de luz, materiais emissivos e assim por diante podem ter os componentes LDR RGB habituais combinados com um componente EV que escala o brilho geral do HDR. Isso é útil para evitar a mudança acidental de cores quando você deseja alterar apenas o brilho ou vice-versa.
  • Não é necessário ter texturas HDR para os mapas difusos e especulares habituais, mas é útil para texturas emissivas. A compactação BC6 é necessária aqui, porque as texturas BC1 mostram faixas e artefatos horríveis se forem dimensionados para um brilho alto (por exemplo, para sinais de néon).
  • Geralmente, não é necessário pintar texturas emissivas em ponto flutuante. O modo de 16 bits do Photoshop (que é ponto fixo) provavelmente será suficiente para texturas emissivas. No entanto, o modo de 32 bits do Photoshop fornece um bom suporte à edição de imagens de ponto flutuante, se necessário.
Nathan Reed
fonte