เหตุใดแผนที่ปกติจึงเป็นสีน้ำเงินและสีม่วง


11

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

คำตอบ:


12

เนื่องจากแผนที่ปกติครอบคลุมเวกเตอร์ตั้งแต่ -1 ถึง 1 จึงเหมาะสมที่จะขยายขอบเขตนี้เป็น 0-> 1 ดังนั้นทั้งหมดจึงสามารถอยู่ในช่วงของ RGB ได้

ดังนั้นโดยปกติแล้วเราจะใช้การแปลงแบบปกติเพื่อแปลงเป็นสิ่งที่เราเห็น

vec3 colour = vec3(0.5) + normal * 0.5;

สีฟ้าเป็นเพราะแผนที่ปกติควรจะใช้เทียบกับแบบดั้งเดิม (สามเหลี่ยม / ฯลฯ ) ปกติพร้อมทิศทางเริ่มต้น (0,0,1) เพื่อระบุว่าไม่มีการเบี่ยงเบนจากสามเหลี่ยมปกติ โดยปกติชิ้นส่วนจำเป็นต้องหมุนปกตินี้สัมพันธ์กับปกติต่อพิกเซลปัจจุบันที่รันไทม์


รหัสvec3 colour = vec3(0.5) + normal * 0.5;นี้แปลง RGB เป็น XYZ หรือไม่?
Abhinay Singh Negi

1
@AbhinaySInghNegi no สีคือ RGB และปกติคือ XYZ ดังนั้นนี่เป็นการแปลง XYZ เป็น RGB ถ้าคุณต้องการ RGB เป็น XYZ ให้ใช้vec3 normal = (colour - vec3(0.5)) * 2.0;
bram0101

20

แผนที่ปกติของพื้นที่สัมผัสแทนนั้นจะมีสีน้ำเงินเป็นหลัก นี่เป็นเพราะสีน้ำเงินสีแสดงถึงค่าปกติของ (0,0,1) ซึ่งจะเป็นปกติไม่เปลี่ยนแปลงเมื่อรูปสามเหลี่ยมอยู่ในระนาบ x และ y คือตั้งฉากกับพื้นผิว แทนเจนต์, x และไบแทนเจนต์, y (หรือเรียกอีกอย่างว่าไบ - ปกติ) ถูกเข้ารหัสในช่องสีแดงและสีเขียวและแบบฟอร์มเหล่านี้เพื่อสร้างพื้นที่แทนเจนต์ปกติสำหรับจุดบนพื้นผิวของรูปสามเหลี่ยม

หากแผนที่ปกติของพื้นที่แทนเจนต์ต้องเข้ารหัสสีเป็นสีแดงเท่านั้น (1.0, 0.0, 0.0) สิ่งนี้จะสร้างพื้นที่ปกติแทนเจนต์ - ขนานกับพื้นผิวสามเหลี่ยม สิ่งนี้ไม่เคยถูกมองเห็นเพราะมันหมายความว่ารูปสามเหลี่ยมจะส่องสว่างแค่ 90 องศาจากพื้นผิวและดูเวกเตอร์ที่จุดที่คุณไม่สามารถมองเห็นสามเหลี่ยมได้

แผนที่ปกติอวกาศของโลกเข้ารหัสหน่วยปกติเหนือทรงกลมเพื่อให้สามารถสีที่แตกต่างกันหลักเมื่อเข้ารหัสจาก [-1, 1] ถึง [0, 1] ต่อช่อง

การเปรียบเทียบสามารถดูได้ที่นี่:

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

ในทางปฏิบัติแผนที่ปกติมักจะเข้ารหัสในรูปแบบ 2 ช่องทางเช่นBC5ซึ่งจริง ๆ แล้วเก็บเฉพาะ x และ y โดย z จะถูกสร้างขึ้นใหม่เนื่องจากเรารู้ว่ามันเป็นเวกเตอร์หน่วย สิ่งนี้ช่วยให้คุณรักษาความแม่นยำที่สูงขึ้นด้วยบิตที่มากขึ้นโดยไม่เพิ่มขนาดไฟล์


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