เหตุใดแผนที่ปกติจึงเป็นสีน้ำเงินส่วนใหญ่แทนที่จะเป็นสีแบบสุ่ม
ฉันเดาว่าเวกเตอร์ปกติของวัตถุ 3 มิติสามารถชี้ไปในทุกทิศทางได้เช่น:
(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ...
เหตุใดแผนที่ปกติจึงเป็นสีน้ำเงินส่วนใหญ่แทนที่จะเป็นสีแบบสุ่ม
ฉันเดาว่าเวกเตอร์ปกติของวัตถุ 3 มิติสามารถชี้ไปในทุกทิศทางได้เช่น:
(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ...
คำตอบ:
แผนที่ปกติมีสองประเภทที่ใช้กันทั่วไปในการพัฒนาเกม วิธีที่คุณคิดว่าพวกเขาควรจะทำงานคือวิธีการทำงานประเภทหนึ่ง (แผนที่ปกติแบบจำลองพื้นที่ - เว้นวรรค) แต่เกมส่วนใหญ่ใช้ประเภทอื่น (แผนที่ปกติพื้นที่ว่างสัมผัส) ซึ่งเป็นสาเหตุที่คุณเชื่อมโยงพื้นผิวสีน้ำเงินส่วนใหญ่เข้ากับแผนที่ปกติ
ด้วยแผนที่ปกติพื้นที่จำลองแต่ละช่องสัญญาณจะเข้ารหัสค่าที่แม่นยำของปกติโดยใช้ระบบพิกัดเดียวกับจุดยอดของรุ่นที่ใช้ ซึ่งหมายความว่าส่วนต่าง ๆ ของแผนที่ปกติจะมีเฉดสีที่แตกต่างกัน แต่พิกเซลที่อยู่ใกล้กันจะมีสีเหมือนกัน ตัวอย่างของแผนที่ปกติของ model-space ปรากฏขึ้นด้านบน ( ต้นฉบับ )
แผนที่ปกติพื้นที่สัมผัสมักจะเป็นสีฟ้าอ่อน แผนที่ประเภทนี้กำหนดบรรทัดฐานในพื้นที่ประสานงานที่ไม่ซ้ำกันกับตำแหน่งของแต่ละพิกเซลบนพื้นผิวของตาข่าย มันใช้จุดสุดยอด (สอดแทรก) ยอดปกติตามแกน Z และเวกเตอร์มุมฉากอีกสองตัวเรียกว่าแทนเจนต์และบิทูเมนท์เป็นแกน X และ Y โดยพื้นฐานแล้วคุณสามารถนึกถึงบรรทัดฐานในแผนที่ว่าเป็น "ออฟเซ็ต" จากปกติสำหรับพิกเซลนั้นซึ่งคำนวณโดยการสอดแทรกบรรทัดฐานจุดยอด เวกเตอร์แทนเจนต์และบิทูเมนต์จะถูกสอดแทรกจากจุดสุดยอดข้อมูลและกำหนดทิศทางของตาข่ายที่สอดคล้องกับ "ขึ้น" และ "ซ้าย" ในแผนที่ปกติ รูปภาพที่ให้ไว้ในคำถามเป็นตัวอย่างที่ยอดเยี่ยมของแผนที่ปกติที่มีพื้นที่สัมผัสแทนกันดังนั้นฉันจะไม่ให้ตัวอย่างอื่นที่นี่
ส่วนประกอบของปกติตามปกติ (ไม่มีเล่นสำนวนเจตนา) [-1, 1]
ช่วงจาก แต่ส่วนประกอบของสีในช่วงภาพจาก[0, 1]
(หรือ[0, 255]
ปกติแล้วพวกมันจะถูกทำให้เป็นมาตรฐาน[0, 1]
) ดังนั้นภาวะปกติจะมีการปรับขนาดและชดเชยดังกล่าวว่าปกติจะกลายเป็นสี(0, 0, 1)
(0.5, 0.5, 1)
นี่คือสีฟ้าอ่อนที่คุณเห็นในแผนที่ปกติและบ่งชี้ว่าไม่มีการเบี่ยงเบนจากจุดยอดที่สอดแทรกปกติเมื่อใช้บรรทัดฐานแทนเจนต์ - สเปซ
เหตุผลบรรทัดฐานแทนเจนต์ - ช่องว่างเป็นที่นิยมมากกว่าบรรทัดฐานพื้นที่ - แบบจำลองเนื่องจากความจริงที่ว่าพวกเขาจะง่ายต่อการสร้างและสามารถนำมาใช้สำหรับหลายตาข่าย นอกจากนี้หากใช้กับตาข่ายแบบเคลื่อนไหวจะมีการใช้บรรทัดฐานแทนเจนต์พื้นที่แทนเจนต์เสมอเนื่องจากบรรทัดฐานนั้นเปลี่ยนแปลงตลอดเวลา
bitangent
และbinormal
ถูกต้อง
แผนที่ปกติส่วนใหญ่ชี้ออกไปจากพื้นผิว สมมติว่าคุณไปกับการทำแผนที่ปกติขององค์ประกอบ Z ของเวกเตอร์ปกติ XYZ เป็นทิศทาง "ความลึก" และการทำแผนที่นั้นไปยังองค์ประกอบ B ของพื้นที่สี RGB คุณจะท้ายด้วยเวกเตอร์ปกติส่วนใหญ่เป็นสีน้ำเงิน
ถ้าพื้นผิวเป็นสีแดงก็หมายความว่าแผนที่ปกติเป็นพื้นผิวที่ชี้ไปทางขวาเป็นส่วนใหญ่ คุณสามารถเห็นคุณสมบัติดังกล่าวในภาพตัวอย่างของคุณเนื่องจากขอบด้านขวาสุดของการกระแทกมีสีแดง
พื้นผิวที่สมบูรณ์ของสีแดงจะไม่สมเหตุสมผล นั่นจะบ่งบอกถึงพื้นผิวที่หันไปทางขวาทั้งหมด นั่นจะเป็นรูปแบบทางเรขาคณิตไม่ใช่ส่วนหนึ่งของแผนที่ปกติ