Bagaimana Anda membuat konten HDR?

33

Bagaimana Anda membuatnya mudah bagi artis Anda untuk membuat konten untuk renderer HDR ? Apa jenis alat yang harus Anda berikan, dan alur kerja apa yang perlu diubah, dari LDR ke HDR?

Perhatikan bahwa saya tidak bertanya tentang aspek teknis penerapan renderer HDR, tetapi tentang praktik terbaik untuk membuat bahan dan pencahayaan dalam HDR. Saya sudah sedikit mencari di Google, tetapi sepertinya tidak banyak tentang topik ini di web. Adakah yang bisa mengarahkan saya ke sumber daya yang bagus tentang ini, atau berbagi pengalaman mereka sendiri?

Beberapa poin spesifik:

  • Pencahayaan - bagaimana seniman pencahayaan dapat memilih warna cahaya HDR? Apakah mereka memiliki pemilih warna LDR standar dan kemudian pengganda? Apakah pengali dalam gamma atau ruang linear? Mungkin alih-alih pengganda itu adalah log-luminance? Atau tingkat kecerahan fisik, seperti jumlah lumens? Bagaimana mereka tahu multiplier / luminance / brightness apa yang "benar" untuk cahaya yang diberikan?
  • Bahan - bagaimana seniman tekstur dapat membuat peta warna memancarkan, seperti tanda-tanda neon, layar TV, skybox, dll? Bisakah Anda melukis satu sebagai gambar LDR (8-bit-per-channel) biasa dan menerapkan pengganda (atau pencahayaan log, dll.)? Apakah ada kasus di mana perlu untuk benar-benar melukis gambar HDR? Jika demikian, bagaimana Anda melakukannya di Photoshop (atau perangkat lunak lain)?
Nathan Reed
sumber
1
@Aralox, saya belum menemukan apa pun tentang bagaimana tim / perusahaan lain melakukan ini. Kami telah mengerjakan masalah ini di perusahaan saya, tetapi saya juga tidak bisa mengungkapkannya kepada publik. Saya berharap pada akhirnya dapat berbicara tentang alur kerja kami!
Nathan Reed
1
Saya benar-benar ingin melihat apa yang dikatakan orang tentang pembuatan konten HDR tanpa menggunakan sumber foto.
1
Ingat bahwa ini adalah sejarah kuno, tetapi ya lampu di luar secara harfiah hanya diatur jauh lebih terang daripada yang ada di gua dan mesin rendering harus mengatasinya. Volume digunakan untuk kontrol ambient dan nada. Idenya adalah bahwa batu tidak dengan sendirinya menjadi HDR, itu hanya batu dan cahaya yang menghantamnya adalah apa yang membuatnya sangat terang atau relatif gelap dibandingkan dengan apa yang dianggap render sebagai paparan abu-abu. Saya yakin Anda telah melihat HDR awal di mana "eksposur" terus menyesuaikan dengan di mana pemain berada; tren saat itu.
Patrick Hughes
2
Saya memiliki latar belakang fotografi, hanya panggilan naluriah bahwa "luar" mungkin 4-5 f-stop lebih terang daripada "di dalam" pintu masuk gua yang cukup terang.
Patrick Hughes

Jawaban:

5

Saya pikir kita masih dalam "manusia gua" yang dijelaskan Patrick Hugues dalam komentarnya.

Anda tidak ingin detail tentang implementasi renderer, tetapi biarkan saya mengklarifikasi hal-hal sedikit: Anda akan mengerti mengapa. HDR di mesin permainan sebagian besar tentang memiliki nilai "lebih luas" untuk output rendering (framebuffer). Biasanya floating point 16 bit yang bisa melampaui 1,0, bukan bilangan bulat 8 bit yang hanya memberi kita 256 nilai dalam kisaran [0,1]. Output ini kemudian dikonversi ke LDR menggunakan mapper nada , sehingga layar dapat menampilkannya. Bagi saya, "pembuat HDR" yang sebenarnya adalah dalam mengubah nada mapper ini, jadi Anda ingin memberikan kontrol sebanyak yang Anda bisa kepada artis Anda tentang hal ini. Akan ada beberapa jenis shader yang terlibat, jadi Anda memiliki artis teknis yang dapat mengatasinya, atau Anda meng-hardcode-nya dan mengekspos parameter yang paling berguna.

Saya tidak yakin bahwa Anda perlu lampu 16 bit, kecuali mungkin untuk membuat lampu yang memancarkan "lebih putih dari putih". Tetapi jika Anda ingin, dalam editor apa pun yang Anda gunakan untuk lampu Anda, Anda akan memerlukan semacam color picker atau sekelompok slider yang memberi Anda nilai-nilai floating point. Oh, itu jika Anda menginginkan GUI, Anda mungkin hanya akan mulai dengan nilai floating point teks biasa dalam file.

Tekstur HDR (16 bit per saluran) ada tetapi tidak banyak digunakan, mungkin hanya karena itu akan mengambil lebih banyak memori daripada tekstur LDR biasa (8 bit per saluran). Saya juga menduga lebih banyak keterbatasan perangkat keras pada konsol gen saat ini, sehingga sebagian besar mesin gim besar tidak terlalu mendorong hal ini. Sebagai contoh, tampaknya agak sulit untuk mengimpor tekstur HDR untuk digunakan dengan UDK . Namun demikian, untuk membuat tekstur 16 bit Anda memerlukan perangkat lunak yang mendukungnya, seperti Photoshop . Mungkin ada yang lain, tetapi sepertinya tidak sering, misalnyanyaitu adalah permintaan lama untuk GIMP itu masih menunggu. Anda juga harus menggunakan format gambar 16 bit sadar, seperti PNG.

Laurent Couvidou
sumber
1
Saya baru saja memeriksa bagaimana lampu diedit di dalam UDK. Tampaknya mereka menggunakan pemilih warna RGB klasik dengan nilai warna 8-bit, dengan tambahan faktor "kecerahan" yang dapat melampaui 1,0 dan menskalakan ketiga warna secara bersamaan.
Laurent Couvidou
1

seperti kata lorancou, Anda tidak benar-benar membuat konten hdr karena umumnya dinamis dengan jumlah cahaya. Tapi, Anda mungkin bisa menirunya dalam sebuah lightmap yang hanya akan melibatkan memodifikasi setiap shading precalculation untuk memperhitungkannya.

CobaltHex
sumber
1

Ya, tiga tahun kemudian dan saya baru saja menulis posting blog tentang pembuatan konten HDR , jadi sekarang saya bisa menjawab pertanyaan saya sendiri. :)

Untuk meringkas,

  • Cara yang baik untuk menangani berbagai nilai kecerahan HDR adalah dengan menggunakan skala logaritmik. Fotografer memiliki skala yang telah mereka gunakan selama beberapa dekade, yang disebut nilai pencahayaan atau EV.
  • Menggunakan EV di mesin / alat Anda sangat praktis karena nilai yang diukur dalam kehidupan nyata dengan meteran fotografer dapat digunakan sebagai data referensi untuk mengatur pencahayaan dalam game. Photoshop juga menggunakan EV (meskipun tidak menyebutnya demikian) dalam mode 32-bitnya.
  • Pemilih warna untuk sumber cahaya, bahan emisi dan sebagainya dapat memiliki komponen RGB LDR biasa yang dikombinasikan dengan komponen EV yang menskalakan kecerahan HDR keseluruhannya. Ini berguna untuk mencegah perubahan warna secara tidak sengaja ketika Anda hanya ingin mengubah kecerahan, atau sebaliknya.
  • Ini tidak perlu memiliki tekstur HDR untuk menyebar biasa dan peta specular, tetapi ini berguna untuk tekstur memancarkan. Kompresi BC6 diperlukan di sini, karena tekstur BC1 menunjukkan garis dan artefak yang mengerikan jika ditingkatkan hingga kecerahan tinggi (misalnya untuk tanda-tanda neon).
  • Biasanya tidak perlu benar-benar melukis tekstur emisif di floating-point. Mode Photoshop 16-bit (yang merupakan titik tetap) mungkin akan cukup untuk tekstur emissive. Namun, mode Photoshop 32-bit memang menyediakan dukungan pengeditan gambar floating-point yang cukup bagus jika diperlukan.
Nathan Reed
sumber