ทำไมไม่ควรแก้ไขแกมม่า Bump, Normal และ Displacement?


9

ดังนั้นฉันจึงพยายามปิดหัวของฉันลงไปจากมุมมองทางเทคนิคอย่างเป็นธรรม

เมื่อคุณเพิ่มแผนที่ Bump หรือ Normal หรือ Displacement ใน shader ของคุณพวกเขาไม่ควรแก้ไขแกมม่า แต่ควรกระจายพื้นผิว แต่ทำไม

เมื่อคุณบันทึกไฟล์ใน 8 บิต (หรือ 16 บิต Integer) ด้วยรูปแบบเช่น JPEG, PNG หรือ TIFF พวกเขาจะได้รังสีแกมม่า 0.4545 (1 / 2.2) ที่ถูกเผาไหม้ดังนั้นกล้องจึงจับแสงจากโลกแห่งความเป็นจริง (นั่นคือเป็นเส้นตรง) และเมื่อบันทึกภาพเป็น JPEG จะเพิ่มค่าแกมม่า 1 / 2.2 เป็นวิธีการบีบอัดข้อมูลลงใน 8 บิตจากนั้นเมื่อคุณดูภาพบนจอภาพที่เพิ่มแกมม่า 2.2 ทำให้ความสว่างเป็นเส้นตรงอีกครั้ง

ดังนั้นเมื่อใช้พื้นผิวแบบกระจาย (เช่นภาพถ่าย) คุณจำเป็นต้อง "ลบ" ที่ 1 / 2.2 แกมม่าเพื่อทำให้เป็นเส้นตรง (เรียกว่าเป็นเชิงเส้น) ดังนั้นตอนนี้พื้นผิวจะดูมืดกว่า แต่ค่าเหล่านี้ถูกต้องจากมุมมองทางคณิตศาสตร์ ทำการคำนวณที่ถูกต้อง หมายเหตุด้านข้าง: ซอฟต์แวร์ใช้แกมม่าแสดงผล 2.2 เพื่อให้แน่ใจว่าพื้นผิวดูถูกต้องมันเป็นเพียงการคำนวณภายในที่เป็นเส้นตรงเท่านั้น แต่เมื่อฉันสร้างแผนที่ Bump ใน Photoshop และบันทึกเป็น JPG หรือ PNG ดังนั้นรังสีแกมมา 1 / 2.2 นั้นจะถูกเผาในภาพนั้นด้วยเหตุนี้แผนที่ Bump นี้จึงไม่จำเป็นต้องถูกทำให้เป็นเส้นตรงเช่นกัน

ถ้าฉันโหลดแผนที่ Bump ใน 3ds Max ด้วยอินพุทแกมม่า 2.2 เช่นเดียวกับที่มีพื้นผิวแบบกระจายการกระจายดูขวา แต่ชนดูผิดดังนั้นฉันต้องตั้งค่าแกมมาอินพุตเป็น 1.0 สำหรับการชนตามลำดับ เพื่อให้มันดูถูกต้อง แต่อย่างที่ฉันบอกว่า: ทำไมไฟล์ภาพทั้งสองมีการเผาไหม้ 1 / 2.2 แกมม่าใช่ไหม?

คำตอบ:


5

ความจริงที่ว่าภาพถ่ายถูกเก็บไว้ในพื้นที่ gamma ไม่ได้เกี่ยวข้องกับ PNG หรือ JPEG แต่ต้องเกี่ยวข้องกับความจริงที่ว่ามันเป็นภาพถ่าย

กล้องตรวจจับความเข้ม 50% แต่จะบันทึกเป็น 187 แทนที่จะเป็น 127 เพราะมันมีประสิทธิภาพมากกว่าในการเก็บข้อมูลสีที่สำคัญต่อสายตามนุษย์เมื่อคุณมีค่าที่เป็นไปได้ 256 แบบเท่านั้น Photoshop ก็เช่นกันถ้าคุณบอกเช่นนั้น

สำหรับแผนที่เชิงบรรทัดฐานหรือการกระจัดคุณไม่มีความต้องการนี้ดังนั้นจึงไม่มีเหตุผลที่จะใช้พื้นที่แกมม่าสำหรับพวกเขา (การใช้แกมม่าสำหรับพวกเขาจะเป็นความผิดพลาดจริง ๆ เพราะมันจะส่งผลต่อการกระจายความแม่นยำ) ดังนั้นเมื่อคุณถอดรหัสพื้นผิวปกติหรือพื้นผิวการกระจัดคุณไม่จำเป็นต้องใช้แกมมา

หากแผนที่ปกติมีการเข้ารหัสในพื้นที่ที่แตกต่างกันแม้ว่าเช่นในกรณีของ G-Buffer เช่นนั้นคุณจะต้องใช้การแก้ไขที่สอดคล้องกัน


คุณจะบอก Photoshop ให้บันทึกภาพด้วยแกมม่าที่อบในขณะที่คุณกล่าวไว้ข้างต้นได้อย่างไร: "และ Photoshop จะทำเช่นนั้นถ้าคุณบอกเช่นนั้น"
Kristoffer Helander

นี่ไม่ได้อธิบาย "ทำไม" เลย มันแค่ย้ำว่า "อะไร"
user1118321

@ user1118321: ฉันเชื่อว่ามันเป็นเช่นนั้น ฉันเพิ่มการเน้นในความพยายามทำให้ชัดเจนขึ้น
Julien Guertault

จริง แต่ก็ยังไม่ได้อธิบายว่าทำไม ฉันยอมรับว่าฉันมีปัญหาเดียวกันฉันเพียงแค่พูดถึงการขาดผลประโยชน์หรืออันตรายจากการบีบอัดดังกล่าว ไม่จำเป็นต้องเป็น แต่เป็นเหตุผลที่ว่าข้อมูลของภาพที่เป็นเฉพาะเนื่องจากความรู้สึกของมนุษย์ในขณะที่เหตุผลเชิงพื้นที่ของเรามีมากขึ้นในธรรมชาติเชิงเส้น (เท่าที่แอปพลิเค 3D เป็นห่วง)
joojaa

3

JPG, PNG หรือรูปแบบภาพ 8 บิตอื่น ๆ ไม่มีความเกี่ยวข้องกับแกมมา 1 / 2.2 พวกเขาเพียงแค่เก็บค่าจาก 0-255 วิธีการตีความข้อมูลนั้นขึ้นอยู่กับซอฟต์แวร์ที่อ่านและเขียนไฟล์เหล่านั้น ข้อเท็จจริงที่น่าสนใจคือซอฟต์แวร์แก้ไขภาพส่วนใหญ่ใช้พื้นที่สีแกมม่าเป็นค่าเริ่มต้น แปรงเอฟเฟกต์ฟิลเตอร์และแม้แต่เครื่องมือเลือกสีทั้งหมดทำงานในพื้นที่แกมม่า เพียงแค่ดูเฉดสีเทาบนเครื่องมือเลือกสีใน Photoshop พวกเขาไม่ปฏิบัติตามการกระจายเชิงเส้น

ผลที่ตามมาก็คือ Photoshop จะไม่มีการแปลงระหว่างแกมม่าและพื้นที่สีเชิงเส้นเมื่อเปิดหรือบันทึกรูปภาพ (โดยค่าเริ่มต้น) เฉพาะเมื่อแสดงเท่านั้น ซึ่งหมายความว่าคุณสามารถใช้มันเพื่อสร้างหรือแก้ไขข้อมูลเชิงเส้นเช่นแผนผังความสูงได้อย่างง่ายดายเช่นเดียวกับที่คุณสามารถแก้ไขภาพถ่าย แผนที่ bump ดูไม่ถูกต้องเมื่อโหลดด้วยการแก้ไขแกมม่าเนื่องจากไม่ได้บันทึกด้วย


นี่คือวิดีโอ YouTube ที่อธิบายว่าค่าที่เก็บไว้ในภาพคือ 1 / 2.2 (แต่เขาทำให้มันง่ายขึ้นและเพียงแค่บอกว่ามันเป็นสแควร์รูทมีข้อจำกัดความรับผิดชอบในข้อความ) สีคอมพิวเตอร์เสีย - ลิงค์
Kristoffer Helander

@KristofferHelander ใช่ แต่เขาบอกว่ามันเป็นเพียงกล้องที่เก็บค่าเป็นรากที่สองและมีเพียงหน้าจอที่กำลังสองกลับ ซอฟต์แวร์แก้ไขภาพอย่าง Photoshop แล้วเพียงแค่เปิดและบันทึกภาพโดยไม่มีการแปลงซึ่งส่งผลให้สิ่งประดิษฐ์แสดงในวิดีโอเมื่อคุณพยายามผสมผสานสี
Quinchilion

แก้ไขฉันถ้าฉันทำผิดในเรื่องนี้ เมื่อฉันวาดลาดลาดใน Photoshop ที่มีลักษณะเป็นเส้นตรงกับฉันบนหน้าจอค่าในทางลาดนั้นเป็นเส้นตรง แต่ Photoshop ได้เพิ่มแกมม่าการรับชมที่ 1 / 2.2 เนื่องจากมอนิเตอร์เพิ่มแกมม่าที่ 2.2 ดังนั้นค่าพิกเซลของภาพจึงเป็นเส้นตรงและพวกมันยังมีลักษณะเป็นเส้นตรง แต่แกมมา 1 / 2.2 นี้เป็นเพียงแกมม่าสำหรับดูที่ Photoshop ใช้สำหรับแสดงภาพมันไม่ได้ถูกอบเข้าไปในรูปภาพและดังนั้นจึงไม่จำเป็นต้องทำการแก้ไขแกมม่ากับรูปภาพในซอฟต์แวร์ 3D (ใช้แกมม่า 1.0) ตั้งแต่ ค่าเป็นเส้นตรงหรือไม่?
Kristoffer Helander

@KristofferHelander goo.gl/yqkeUPการไล่ระดับสีด้านล่างแสดงถึงความสว่างทางกายภาพ หาก Photoshop ใช้แกมม่าที่ 1 / 2.2 สำหรับการวาดการไล่ระดับสีหรือการแสดงภาพคุณจะเห็นการไล่ระดับสีด้านล่าง แต่คุณจะเห็นอันดับต้น ๆ ซึ่งดูเหมือนจะเป็นแบบเชิงเส้น แต่ไม่ใช่ นอกจากนี้ยังใช้ไม่ได้กับการดูรูปภาพ กล้องใช้ 1 / 2.2 เมื่อบันทึกภาพถ่ายจากนั้น Photoshop จะใช้อีก 1 / 2.2 แต่จอแสดงผลเพิ่มแกมม่า 2.2 เพียงครั้งเดียวเท่านั้น นั่นจะดูไม่ถูกต้อง
Quinchilion

ถ้าฉันเติมเอกสารใน Photoshop ครึ่งด้านสีแดง (255,0,0) และอีกครึ่งหนึ่งเป็นสีเขียว (0,255,0) จากนั้นใช้ Gaussian blur ที่นั้นการไล่ระดับสีจะกลายเป็นสีน้ำตาลแทนที่จะเป็นสีเหลืองตรงกลางดังที่แสดง ในวิดีโอที่ฉันโพสต์ ทำไมถึงเป็นอย่างนั้น? หากพิกเซลในภาพเป็นเส้นตรงเหตุใดคณิตศาสตร์จึงถึงผิดพลาด? ฉันไม่เข้าใจว่าแผนที่การกระจัดที่ทาสีใน Photoshop นั้นเป็นเส้นตรงและดีต่อการเรนเดอร์ แต่ในเวลาเดียวกันการเบลอของพิกเซลจะถูกทำให้เมาขึ้นด้วยแกมม่าและสีที่ผิดกลายเป็นมืดและน้ำตาล?
Kristoffer Helander

3

บทนำ

ขึ้นอยู่กับว่าคุณสร้างแผนที่อย่างไร! ลองพิจารณาสิ่งต่อไปนี้และปล่อยให้มันจมลงไปซักพักก่อนที่คุณจะไปข้างหน้า:

  1. ภาพจะปรากฏพร้อมการแก้ไขแกมม่าเพื่อประโยชน์ต่อดวงตาของคุณ
  2. ข้อมูลยังเป็นเพียงข้อมูล การแก้ไขแกมม่านั้นมีไว้สำหรับส่วนที่แสดงไม่ใช่ส่วนของข้อมูล

ตอนนี้แผนที่ชนยากที่จะวาดด้วยแอปพลิเคชันสี เพราะมันยากที่จะดูแม้ว่าคุณจะเป็นเส้นตรงอย่างถูกต้อง ดังนั้นคุณจะใช้สิ่งต่าง ๆ เช่นดูค่า ตอนนี้ที่นี่คือการจับ:

  • หากคุณคิดว่า 128 อยู่กึ่งกลางความเข้มของคุณ เนื่องจากเป็นสิ่งที่คุณเข้ารหัสลงในกระแสข้อมูล ข้อมูลเป็นสิ่งที่คุณตีความว่าเป็นเพราะมันไม่ได้มีไว้สำหรับสายตามนุษย์และจอภาพ ใครเป็นผู้ดูแลสิ่งที่จอภาพแสดงให้เห็นว่าคุณค่าเป็นอย่างไรบ้างกับสิ่งที่คุณตีความการแก้ไขข้อมูล

ทำแผนที่ชน / การกระจัด

ตกลงดังนั้นตอนนี้ฉันได้อธิบายว่าข้อมูลนั้นขึ้นอยู่กับการตีความ แต่ทำไมคุณถึงตีความข้อมูลเป็นเส้นตรง เพราะคุณสามารถออกแบบโปรไฟล์ด้านข้างของคุณได้ดีขึ้น ดูสิ่งที่คุณทำได้คือคิดว่าแปรงของคุณมีความทึบ 100% เป็นความสูงเป้าหมายที่คุณต้องการแกะสลักหรือเลเยอร์ จากนั้นคุณสามารถใช้เครื่องมือเส้นโค้งเพื่อออกแบบรูปร่างของแปรงแสตมป์ของคุณ (เนื่องจากคุณคิดว่าข้อมูลเป็นเส้นตรง)

ป้อนคำอธิบายรูปภาพที่นี่

ภาพที่ 1 : ตราประทับถ้วยดูด

ทีนี้ถ้าคุณทำอะไรแบบนี้ภาพของคุณจะเป็นแบบเส้นตรงแม้จะเป็นแบบที่ทุกคนบอกคุณ คุณได้ตัดสินใจทิ้งกฎรูปภาพที่ระบุไว้เป็นอย่างอื่น และนั่นคือสาเหตุที่ภาพเป็นเส้นตรงผู้เขียนเลือกให้เป็นเส้นตรงเพื่อให้ใช้งานได้ง่ายขึ้น

ป้อนคำอธิบายรูปภาพที่นี่

ภาพที่ 2 : ภาพเดียวกันแทนที่และแปลเป็นเส้นตรง (หมายเหตุฉันปรับขนาดความสูงเล็กน้อยเพื่อให้พอดีกับขนาด bb เริ่มต้นของฉัน) ทำงานตามที่ต้องการ

เทคนิคเชิงเส้นจะดีกว่า

แผนที่สังเคราะห์ไม่มีประโยชน์ในการบีบอัดค่าบางอย่างกับค่าใช้จ่ายของผู้อื่น การเชิงเส้นนั้นดีกว่าโดยธรรมชาติเพราะการกระจายของการชนของคุณนั้นดีกว่า นี่คือเหตุผลที่คุณต้องสูญเสียทรัพยากรที่เข้ารหัสไว้ในลักษณะที่ถูกต้องแกมมา

ประการที่สองภาพไม่จำเป็นต้องระบุว่ามีพื้นที่สีอะไรอยู่เพียงแค่ตัวแก้ไขรูปภาพนั้นจะถือว่ามีการเข้ารหัส sRGB คุณไม่มีเหตุผลที่จะทำการตีความแบบเดียวกันไม่มีข้อมูลหมายถึงเพียงแค่: "ไม่มีใครใส่ใจที่จะเขียนสิ่งที่พวกเขาคิด" ดังนั้นจุดควรทำให้คุณควรแท็กเป็นเส้นตรง แต่นี่คือการถู ... คอมพิวเตอร์ของคุณไม่ได้มาพร้อมกับโปรไฟล์แบบเส้นตรงที่เข้าถึงได้ง่าย

Photoshop และเบลอมีอะไรบ้าง

นี่คือที่ที่มันจะยุ่งยาก Photoshop พยายามทำงานค่อนข้างมากเพื่อให้แน่ใจว่าคุณไม่จำเป็นต้องรู้อะไรเกี่ยวกับสิ่งนี้ และนี่คือที่ที่คุณยิงตัวเองที่เท้า Se Photoshop ไม่ได้มีไว้สำหรับการสร้างพื้นผิว แต่มีไว้เพื่อแก้ไขภาพไม่ใช่ข้อมูลแบบสุ่ม ดังนั้นเนื่องจากความพร่ามัวของภาพนั้นเป็นเส้นตรงและไม่เชิงเส้นจึงไม่สามารถทำงานกับข้อมูลที่ผิดได้

แต่คุณสามารถทำหนึ่งในสองสิ่งนี้เพื่อแก้ไขปัญหานี้:

  1. ปิดใช้งานการแก้ไขแกมม่าของเบลอ
  2. ตั้งค่าพื้นที่ทำงานของคุณเป็นโปรไฟล์เชิงเส้น

ข้อสรุป

เหตุผลที่คุณมีปัญหากับเรื่องนี้คือ

  1. คุณไม่รู้ว่าคนอื่นคิดอย่างไรคุณแค่ไม่รู้ว่าควรแก้ไขแกมม่าหรือไม่
  2. ที่คุณใช้แอพพลิเคชั่นที่ใช้รูปภาพเป็นรูปภาพ

ประเด็นที่หนึ่งทำให้เกิดความสับสนโดยเฉพาะอย่างยิ่ง ฉันเพิ่งรู้ว่าแผนที่ชนและการกระจัดกระจายของฉันทั้งหมดเป็นเส้นตรง แต่ฉันไม่รู้ว่าแผนที่ของคุณคืออะไร อัตราต่อรองที่พวกเขาเป็นเชิงเส้นเพราะเกือบเข้าใจในระดับสากลว่าข้อมูลเป็นเส้นตรง แม้แต่คนที่ไม่รู้จักแกมม่าก็มีแนวโน้มที่จะทำมันแบบเส้นตรงเพื่อชน / แทนที่ด้วยเหตุผลบางอย่าง (เพราะมันง่ายและนั่นคือสิ่งที่คุณคิดว่าเป็นภาพจนกว่าจะมีคนบอกคุณเป็นอย่างอื่น)


ขอบคุณสำหรับข้อมูลของคุณ - ว้าว! :) ฉันจะดูสิ่งนี้เมื่อฉันมีเวลามากขึ้น ฉันจะกลับไปหาคุณขอบคุณ!
Kristoffer Helander

Even people who do not know about gamma tend to do it linear for bump/displacement for some reasonอาจเป็นเพราะแผนที่เหล่านั้นถูกสร้างขึ้น
ธารา

3

ที่จริงแล้วหากบันทึกการชนหรือการกระจัดของคุณด้วยการแก้ไขแกมม่า 0.45 นั่นแสดงว่าผิด แผนที่เหล่านี้มีข้อมูลเชิงเรขาคณิตมากกว่าสีดังนั้นควรเข้ารหัสแบบเชิงเส้น

สำหรับปัญหาที่เกี่ยวข้องและการแก้ไขสำหรับ Adobe Photoshop ให้ดูที่สไลด์เดอร์นี้: https://docs.google.com/presentation/d/1vS5nAAnXbZ8Pt6-dXxy-xEXDkjfjXTmNnthNGccorl0/edit#slide=id.g14b3e28660_0_8


นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับแผนที่ปกติถ้าคุณคาดหวังความยาวเวกเตอร์เท่ากับ 1
PaulHK
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.