ฉันไม่สามารถหาเหตุผลที่ดีสำหรับสิ่งนี้ได้ทุกที่ เวกเตอร์สะท้อนที่ใช้ในพงษ์มีพื้นฐานง่าย ๆ ในวิชาฟิสิกส์ แต่เวกเตอร์ครึ่งหนึ่งที่ใช้ในรูปแบบบลินน์นั้นดูเหมือนจะไม่มีเหตุผลที่เป็นเหตุเป็นผล และยังมีการใช้งานในทุกสิ่งที่เรียกว่าฟังก์ชั่นการแรเงาตามร่างกาย หากมีพื้นฐานทางกายภาพที่ดีสำหรับมันฉันอยากจะรู้
สิ่งที่ฉันสามารถค้นหาได้มีสาเหตุบางประการ:
มันเร็วกว่า - มีข้อมูลที่หลากหลายเกี่ยวกับเรื่องนี้ แต่ถึงอย่างนั้นมันก็จะเป็นเหตุผลที่ดี ... ในปี 1998
มันจัดการมุมที่สูงกว่า 90 องศาได้ดีกว่า - เท่าที่ฉันสามารถบอกเหตุผลเดียวสำหรับเรื่องนี้ก็เพราะว่าคำว่าพงษ์ถูกใช้อย่างไม่ถูกต้อง ผลคูณของการสะท้อนและมุมมองให้มุมระหว่าง -1 ถึง +1 โดยปกติมุมนี้จะถูกจับเป็น 0 ถึง 1 นี่คือสาเหตุโดยตรงของปัญหา 90 องศา ปรับมุมให้เป็นมาตรฐานอีกครั้งแทนที่จะยึดไว้และคุณจะได้รับการครอบคลุม 180 องศาอย่างเต็มที่ ฉันปฏิเสธที่จะเชื่อว่าการทำงานแบบ x * 0.5 + 0.5 ที่เรียบง่ายทำให้โลกกราฟิกเป็นเวลา 40 ปี
มันจัดการกับขอบได้ดีขึ้น - "ปัญหา" ของขอบยังมีอยู่ในโซลูชัน blinn เพียงเล็กน้อยเท่านั้น สาเหตุหลักคือการจำลองแสงของพื้นที่ในเทอร์มิเนเตอร์อย่างไม่เหมาะสมซึ่งควรมีความสำคัญสำหรับส่วนใดส่วนหนึ่งของร่างกาย แต่แม้ในสถานการณ์ที่ง่ายกว่าฟังก์ชั่น sigmoid สามารถประมาณบรรทัด soft terminator ได้อย่างถูกต้อง การคูณลงในเทมเพลตแลมเบิร์ตนั้นไม่ถูกต้องเนื่องจากมันลดทอนคำศัพท์ที่ไม่ถูกต้องซึ่งอาจทำให้เทอมเฟรสหายและนำไปสู่ข้อผิดพลาดเพิ่มเติม
มันมีการสะท้อนที่ยาว - สำหรับฉันในขณะที่การสะท้อนแบบแอนไอโซโทรปิกอาจเป็นจริง แต่ Blinn ไม่ใช่วิธีที่ถูกต้องในการนำมันไปใช้เพราะมันปรากฏที่ขอบเท่านั้น มันเป็นเรื่องบังเอิญที่มีความสุขที่ความผิดพลาดในเทอม H เกิดขึ้นเพื่อให้ดูเหมือนจริง
เหตุผลเหล่านี้ไม่เป็นที่น่าพอใจฉันต้องการแยกแยะความบ้าคลั่งนี้
ฉันต้องการชี้แจงว่าฉันไม่ได้พูดถึง blinn และ phong โดยเฉพาะแต่แทนที่จะเกี่ยวกับองค์ประกอบของเวกเตอร์ H และ R ซึ่งใช้เป็นพื้นฐานสำหรับการให้เฉดสีเหล่านี้รวมถึงอื่น ๆ