Bump, Normal ve Deplasman haritaları neden gama düzeltilmemelidir?


9

Bu yüzden kafamı oldukça teknik bir bakış açısıyla sarmaya çalışıyorum.

Gölgelendiricinize bir Bump veya Normal veya Deplasman haritası eklediğinizde, bunlar gama düzeltilmemelidir. Ancak dağınık dokular olmalıdır. Ama neden?

Bir dosyayı JPEG, PNG veya TIFF gibi bir formatta 8 bit (veya 16 bit Tamsayı) olarak kaydettiğinizde, yanmış 0.4545 (1 / 2.2) gama alırlar. Böylece bir kamera ışığı gerçek dünyadan yakalar (doğrusaldır) ve fotoğrafı JPEG olarak kaydederken, bilgileri 8 bit'e sıkıştırmanın bir yolu olarak 1 / 2.2'lik bir gama değeri eklenir ve ardından görüntüyü yeniden parlaklık sağlayarak 2.2'lik bir gama ekleyen bir monitörde görüntülerken eklenir.

Bu nedenle, dağınık dokular (fotoğraf gibi) kullanırken, doğrusal hale getirmek için (doğrusallaştırma olarak adlandırılır) 1 / 2.2 gama "kaldırmanız" gerekir, böylece doku daha koyu görünür, ancak bu değerler matematiksel açıdan doğru olur, böylece oluşturucu doğru hesaplamaları yapar. Yan not: Yazılım, dokuların doğru göründüğünden emin olmak için 2.2 ekran gama kullandı, bu sadece doğrusallaştırılmış iç hesaplama içindir. Ama Photoshop'ta bir Bump haritası oluşturup bunu bir JPG veya PNG olarak kaydettiğimde, o 1 / 2.2 gama bu görüntüye de yanıyor, bu yüzden bu Bump haritasının neden doğrusallaştırılmasına gerek yok?

3ds Max'e bir Bump haritasını 2.2 gibi bir giriş gama ile Diffuse dokusu ile yaptığı gibi yüklersem, dağınık doğru görünüyor, ancak yumru yanlış görünüyor, bu yüzden sırayla yumru için giriş gama'yı 1.0'a ayarlamalıyım doğru, ama dediğim gibi: neden, her iki görüntü dosyası da 1 / 2.2 gama yanmış, değil mi?

Yanıtlar:


5

Bir fotoğrafın gama alanında depolanması gerçeğinin PNG veya JPEG ile ilgisi yoktur, bunun bir fotoğraf olmasıyla ilgilidir.

Kamera% 50 yoğunluk algılar ancak 127 yerine 187 olarak kaydeder, çünkü bu yalnızca 256 farklı olası değere sahip olduğunuzda insan gözü için önemli olan renk bilgisini korumak için daha etkilidir. Bunu söylerseniz Photoshop da öyle yapar.

Normaller veya yer değiştirme haritaları için bu ihtiyaç yoktur, bu nedenle onlar için gama alanı kullanmak için bir neden yoktur ( onlar için gama kullanmak aslında bir hata olacaktır, çünkü hassasiyetin nasıl dağıtılacağını etkileyecektir). Böylece normal bir doku veya yer değiştirme dokusunu çözdüğünüzde gama uygulamanız gerekmez.

Normal harita, örneğin bir G-Tamponunda olduğu gibi farklı bir alanda kodlanmışsa , ilgili düzeltmeyi uygulamanız gerekir.


Photoshop'a bir görüntüyü yukarıda söylediğiniz gibi pişmiş gama ile kaydetmesini nasıl söylersiniz: "Ve bunu söylerseniz Photoshop da yapar."
Kristoffer Helander

Bu "neden" i hiç açıklamıyor. Sadece "ne" yi tekrarlar.
user1118321

@ user1118321: İnanıyor. Daha açık hale getirmek için vurguyu ekledim.
Julien Guertault

Doğru, ama hala nedenini açıklamıyor. Ben aynı sorun var itiraf sadece böyle sıkıştırma tarafından yapılan yarar veya zarar eksikliği söz. Gerek yok ama neden insanın duyuları nedeniyle görüntülerin verilerinin tuhaf olması, mekansal akıl yürütmenin doğada daha doğrusal olması (3D uygulaması söz konusu olduğunda)
joojaa

3

JPG, PNG veya diğer 8 bit görüntü formatları kendiliğinden 1 / 2.2 gama ile ilişkili değildir. Sadece 0-255 arasındaki değerleri saklarlar. Bu verinin nasıl yorumlanacağı, bu dosyaları okuyan ve yazan yazılıma bağlıdır. İlginç olan, çoğu görüntü düzenleme yazılımının varsayılan olarak gama renk alanını kullanmasıdır. Tüm fırçalar, efektler, filtreler ve hatta renk seçici gamma alanında çalışır. Photoshop'taki renk seçicideki gri tonlarına bakın. Doğrusal bir dağılım izlemezler.

Sonuç, Photoshop'un bir görüntüyü açarken veya kaydederken (varsayılan olarak) yalnızca gama ve doğrusal renk alanı arasında dönüştürme yapmamasıdır. Bu, fotoğrafları düzenleyebileceğiniz bir yükseklik haritası gibi doğrusal veriler oluşturmak veya düzenlemek için kolayca kullanabileceğiniz anlamına gelir. Yumru haritası, gama düzeltmesi ile yüklendiğinde doğru görünmüyor, çünkü kaydedilmedi.


Burada da bir görüntüdeki depolanan değerin 1 / 2.2 olduğunu açıklayan bir YouTube videosu var (ancak onu basitleştiriyor ve sadece kare kök olduğunu söylüyor, metinde bunun bir feragat var.) Bilgisayar Rengi Bozuldu - MinutePhysics bağlantısı
Kristoffer Helander

@KristofferHelander Evet, ancak değerleri sadece kare kök olarak saklayan kamera ve sadece onu geri alan ekran olduğunu söylüyor. Photoshop gibi görüntü düzenleme yazılımı daha sonra görüntüyü dönüşüm olmadan açar ve kaydeder, bu da renkleri karıştırmaya çalıştığınızda videoda gösterilen yapaylıklara neden olur.
Quinchilion

Bu konuda yanılıyorsam düzelt. Photoshop'ta bana ekranda doğrusal görünen bir gradyan rampası çizdiğimde, o rampadaki değerler aslında doğrusal. Ancak monitör 1 / 2.2'lik bir görüntüleme gama ekler, çünkü monitör 2.2'lik bir gama ekler, böylece görüntü piksel değerleri doğrusaldır ve aynı zamanda doğrusal görünürler. Ancak bu 1 / 2.2 gama yalnızca Photoshop'un görüntüyü görüntülemek için kullandığı görüntüleme gamalarıdır, görüntüye dönüştürülmez ve bu nedenle 3D yazılımında görüntüye gama düzeltmesi yapılması gerekmez (gama 1.0 kullanın) değerler doğrusal mıdır?
Kristoffer Helander

@KristofferHelander goo.gl/yqkeUP Alt gradyan fiziksel parlaklığı temsil eder. Photoshop, degradeyi çizmek veya görüntüyü görüntülemek için 1 / 2.2'lik bir gama uyguladıysa, alt degradeyi görürsünüz. Bunun yerine, tesadüfen doğrusal gibi görünen ama olmayan en üst olanı görürsünüz. Ayrıca fotoğrafları görüntülemek için işe yaramaz. Kamera fotoğrafı kaydederken 1 / 2.2 uyguladı, ardından Photoshop başka bir 1 / 2.2 uyguladı, ancak ekran sadece bir kez 2.2 gama ekledi. Bu doğru görünmezdi.
Quinchilion

Photoshop'ta bir belgeyi yarım tarafı kırmızı (255,0,0) ve diğer yarısını yeşil (0,255,0) ile doldurup bunun üzerinde bir Gauss bulanıklığı kullanırsam, ortaya çıkan degrade, gösterildiği gibi ortada sarıdan ziyade kahverengiye dönüşür yayınladığım videoda. Neden? Görüntüdeki pikseller doğrusalsa matematik neden bozulur? Photoshop'ta boyanmış bir yer değiştirme haritasının nasıl doğrusal ve renderleme için iyi olduğunu anlamıyorum ama aynı zamanda piksellerin bulanıklaşması yanlış gama ile bertaraf ediliyor ve renkler koyu ve kahverengimsi hale geliyor?
Kristoffer Helander

3

Giriş

Haritayı nasıl oluşturduğunuza bağlı! Aşağıdakileri düşünün ve ilerlemeden önce bir süre batmasına izin verin:

  1. Görüntü gözlerinizin yararına bir gama düzeltmesi ile görüntülenir
  2. Veriler hala sadece veridir. Gama düzeltmesi veri kısmı için değil ekran kısmı içindir.

Artık bir çarpma haritasını boya uygulamasıyla çizmek oldukça zor. Çünkü doğru lineer olsanız bile görmek zor. Sonuç olarak değerlere bakmak gibi şeyler kullanırsınız. Şimdi işte yakalama:

  • 128'in yoğunluğunuzun yarısında olduğuna karar verirseniz, o zaman gerçek budur. Veri akışına kodlamanız budur. Veri, insan gözü ve monitör için tasarlanmadığı için onu yorumladığınız şeydir. Monitörün verileri düzenleyen verileri nasıl yorumladığınızla ilgili olarak değerleri neyi gösterdiği kimin umurunda.

Çarpma / yer değiştirme haritasının yapılması

Tamam, şimdi verilerin yorumlamaya hazır olduğunu açıkladım. Ama verileri neden doğrusal olarak yorumlasın ki? Çünkü o zaman yan profilinizi daha iyi tasarlayabilirsiniz. Yapabileceğiniz şey, fırçanızın% 100 opaklığını, oymak veya katmanlamak istediğiniz hedef yükseklik olarak düşünmektir. Daha sonra, pul fırçanızın şeklini tasarlamak için eğriler aracını kullanabilirsiniz (verilerin doğrusal olduğunu düşündüğünüz için).

resim açıklamasını buraya girin

Resim 1 : Bir vantuz damgası.

Şimdi böyle bir şey yaparsanız, görüntünüz herkesin söylediklerine rağmen doğrusaldır. Aksini söyleyen resim kurallarını atmaya karar verdiniz. Bu yüzden görüntü doğrusaldır , yazar onun doğrusal olmasını seçer, böylece çalışması daha kolaydır.

resim açıklamasını buraya girin

Resim 2 : Aynı görüntü kaydırıldı ve doğrusal olarak yorumlandı (not, yüksekliği varsayılan bb boyutuma uyacak şekilde biraz ölçeklendirdim), istendiği gibi çalışıyor.

Teknik olarak doğrusal daha iyidir.

Sentetik bir haritanın belirli değerleri başkalarının pahasına sıkıştırmanın bir yararı yoktur. Doğrusal, doğası gereği daha iyidir, çünkü yumrularınızın yayılması bu şekilde daha iyidir. Bu yüzden onu bir gama düzeltmesi ile kodlayan kaynakları israf edersiniz.

İkincisi, bir görüntünün hangi renk alanında olduğunu belirtmesi gerekmez. Sadece görüntü düzenleyicileri sRGB kodlu olduğunu varsayar. Aynı yorumu yapmak için hiçbir nedeniniz yok, hiçbir bilgi sadece şu anlama gelir: "Kimse ne düşündüğünü yazmakla uğraşmadı". Belki de noktaya değinmelisiniz, onu doğrusal olarak etiketlemelisiniz. Ama işte ovmak ... bilgisayarınız kolay erişilebilir bir doğrusal profil ile gelmiyor.

Photoshop ve bulanıklığa ne dersiniz?

Zorlaştığı yer burası. Photoshop, bu şeyler hakkında hiçbir şey bilmenize gerek kalmamasını sağlamak için oldukça fazla çalışma yapmaya çalışır. Ve burada kendinizi ayağınızdan vuruyorsunuz. Photoshop, doku yapımı için değil, rastgele veriler değil görüntüleri düzenlemek içindir. Bu nedenle, bir görüntüdeki bulanıklık farklı doğrusal ve doğrusal olmadığından yanlış verilere yönelik çalışmaz.

Ancak bunu düzeltmek için 2 şeyden birini yapabilirsiniz:

  1. Bulanıklığın gama düzeltmesini devre dışı bırak
  2. çalışma alanınızı doğrusal bir profile ayarlama

Sonuç

Bununla zor zamanınızın nedeni

  1. Başkalarının ne düşündüğünü bilmiyorsunuz, sadece gama düzeltmeleri gerekip gerekmediğini bilmiyorsunuz.
  2. görüntüleri görüntü olarak değerlendiren bir uygulamayı kullanmanız

Birinci nokta özellikle kafa karıştırıcı. BÜTÜN çıkma ve yer değiştirme haritalarımın aslında doğrusal olduğunu biliyorum. Ama haritalarınızın ne olduğunu bilmiyorum. Oranlar doğrusaldır, çünkü neredeyse evrensel olarak verilerin doğrusal olduğu anlaşılmaktadır. Gammayı bilmeyen insanlar bile bir nedenden ötürü yumru / yer değiştirme için doğrusal yapma eğilimindedir (çünkü bu kolay ve birileri size aksini söyleyene kadar görüntülerin olduğunu düşündüğünüz şeydir).


Girdiğiniz için teşekkürler - vay! :) Daha fazla boş zaman bulduğumda buna bir göz atacağım. Sana geri döneceğim, teşekkürler!
Kristoffer Helander

Even people who do not know about gamma tend to do it linear for bump/displacement for some reasonMuhtemelen bu haritalar üretildiğinden.
Tara

3

Aslında, çarpma veya yer değiştirme haritanız bu 0.45 gama düzeltmesiyle kaydedildiyse, yanlıştır. Bu haritalar renk yerine geometrik bilgiler içerir ve bu nedenle basit bir şekilde doğrusal olarak kodlanmalıdır.

İlgili bir sorun ve Adobe Photoshop ile ilgili bir düzeltme için şu slayt destesine bakın: https://docs.google.com/presentation/d/1vS5nAAnXbZ8Pt6-dXxy-xEXDkjfjXTmNnthNGccorl0/edit#slide=id.g14b3e28660_0_8


Bu, vektör uzunluklarının 1 olmasını beklediğiniz normal bir harita için özellikle doğrudur.
PaulHK
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.