หลังจากที่ในบทความที่แล้วได้ลองพยายามทำความเข้าใจเกี่ยวกับสีพื้นฐาน (base) ไปแล้ว
https://phyblas.hinaboshi.com/20210915
คราวนี้จะมาพูดถึงสีอีกส่วนหนึ่งที่มีความสำคัญและใช้บ่อยรองลงมา นั่นคือสีสเป็กคิวลาร์ (specular)
ซึ่งเป็นสีที่เกิดเมื่อวัตถุมีการสะท้อนแสงเป็นภาพเงาเหมือนอย่างกระจก
เมื่อลองเปิดดูแอตทริบิวต์อีดิเตอร์ จะพบว่าแผง
specular (スペキュラ) ซึ่งใช้ปรับสีในส่วนของสเป็กคิวลาร์นั้นอยู่เป็นลำดับที่ ๒ ถัดจากส่วนสีพื้นฐาน
ในแผง specular นั้นมีค่าที่สามารถปรับได้อยู่ ๖ ตัว ได้แก่
ชื่อแอตทริบิวต์ |
ชื่อที่แสดงในแผงปรับค่า |
ความหมาย |
ค่า |
specular |
weight |
ウェイト |
น้ำหนักของสีสเป็กคิวลาร์ |
0.0 ~ 1.0 |
specularColor |
color |
カラー |
สีสเป็กคิวลาร์ |
0.0 ~ 1.0 0.0 ~ 1.0 0.0 ~ 1.0 |
spucularRoughness |
roughness |
粗さ |
ความหยาบของสีสเป็กคิวลาร์ |
0.0 ~ 1.0 |
specularIOR |
IOR≡ |
IOR≡ |
ดัชนีหักเหแสง |
≥0.0 |
specularAnisotropy |
anisotropy |
異方性 |
ค่าความไม่สม่ำเสมอในทิศทาง |
0.0 ~ 1.0 |
specularRotation |
rotation |
回転 |
มุมหมุนของค่าความไม่สม่ำเสมอในทิศทาง |
≥0.0 |
ในที่นี้เราจะลองมาทำการปรับค่าต่างๆแล้วเทียบผลความแตกต่างที่ได้ดู
สำหรับตัวอย่างคราวนี้จะใช้โมเดลมุราซาเมะ (
村雨) (ที่มา
https://3d.nicovideo.jp/works/td27576)
ความเปลี่ยนแปลงไปตามค่าน้ำหนักของสีสเป็กคิวลาร์
โดยทั่วไปแล้วแสงสะท้อนจะเป็นสีขาว ไม่ว่าวัตถุนั้นจะมีพื้นผิวสีอะไรก็ตาม ในที่นี้ก็จะให้ค่าสีสเป็กคิวลาร์เป็นสีขาว
แล้วลองเปลี่ยนค่าน้ำหนักของสเป็กคิวลาร์ไปเรื่อยๆ
จะเห็นว่าเมื่อสเป็กคิวลาร์เป็น 0 วัตถุจะมีแค่สีพื้น ซึ่งโดยทั่วไปจะไม่มีความแตกต่างในทิศทาง
และเมื่อปรับให้มีสเป็กคิวลาร์ก็จะเห็นส่วนสีขาวที่สะท้อนภาพลายกำแพงรวมและดวงไฟ ทำให้ดูเปล่งปลั่งขึ้นมา
สีสเป็กคิวลาร์กับความเปลี่ยนแปลงไปตามมุมที่มอง
สีสเป็กคิวลาร์ก็สีที่สะท้อนแบบกระจก ดังนั้นเมื่อเปลี่ยนมุมมองก็จะเห็นความเปลี่ยนแปลง
ลองทำการเปลี่ยนมุมมองดูจะพบว่าภาพลายผนังหรือดวงไฟมีตำแหน่งเปลี่ยนไปเรื่อยๆ ในขณะที่สีพื้นจะเหมือนเดิมตลอด
ความเปลี่ยนแปลงไปตามค่าความหยาบ
specularRoughness คือค่าความหยาบของสเป็กคิวลาร์ ในตัวอย่างที่ผ่านมานั้นได้ตั้งให้ค่าความหยาบนี้เป็น 0
นั่นหมายความว่าผิววัสถุจะสะท้อนแสงสเป็กคิวลาร์ชัดเจนเป็นเหมือนกระจกเงา
แต่ในธรรมชาติแล้ว แสงที่สะท้อนในวัสดุที่ไม่ใช่กระจกเงามักจะมีความหยาบ ทำให้มีการกระเจิงไปยังทิศต่างๆ
จึงไม่สามารถเห็นภาพสะท้อนชัดเหมือนอย่างในกระจกเงา
ลองมาดูว่าเมื่อปรับค่าความหยาบไปเรื่อยๆแล้วจะมีผลต่อลักษณะการสะท้อนแสงของพื้นผิวอย่างไรบ้าง
จะเห็นว่าถ้าค่าความหยาบเป็น 0 ก็จะสะท้อนภาพลายผนังหรือดวงไฟชัดเหมือนกระจกเงา
แต่เมื่อเริ่มมีความหยาบเล็กน้อยภาพนั้นก็จะเริ่มเบลอไป
และเมื่อเพิ่มมากเข้าก็จะกระจัดกระจายไปมากจนไม่เห็นเป็นรูปร่างแล้ว
สำหรับผนังและพื้นที่ใช้เป็นฉากหลังนี้มีค่าความหยาบของสเป็กคิวลาร์เป็น 0.2
จึงเห็นการสะท้อนแบบพอเป็นรูปเป็นร่างอย่างที่เห็น
ความเปลี่ยนแปลงไปตามดัชนีหักเหแสง
specularIOR คือค่าดัชนีหักเหแสง ซึ่งเป็นค่าที่กำหนดสมบัติการหักเหแสงตาม
สมการแฟรแนล
มีผลต่อปริมาณแสงที่สะท้อนและหักเหในมุมต่างๆ
ลองให้ค่าความหยาบเป็น 0.1 แล้วเปลี่ยนดัชนีหักเหแสงไปเรื่อยๆตั้งแต่ 0.1 ถึง 2.5
ในกรณีที่ค่าไม่ถึง 1 จะเกิดปรากฏการณ์การสะท้อนกลับหมด โดยยิ่งดัชนีหักเหห่างจาก 1
มากก็ยิ่งจะมีส่วนที่ถูกสะท้อนมากขึ้น การสะท้อนจะมากยิ่งขึ้น ถ้าดัชนีหักเหยิ่งเข้าใกล้ 1
ก็จะแทบไม่เห็นแสงสะท้อน
ความเปลี่ยนแปลงไปตามค่า anisotropy
specularAnisotropy คือค่าที่บอกถึงความไม่สม่ำเสมอของการสะท้อนในแต่ละทิศทาง ถ้าค่าเป็น 0
การสะท้อนก็จะสมมาตรในทุกทิศทาง เรียกว่าเป็นไอโซทรอปิก (isotropic) แต่พอ specularAnisotropy
ก็จะทำให้บางทิศมีการกระเจิงเหมือนมีความหยาบขึ้นไปมากกว่า
ในตัวอย่างนี้ ลองให้ specularRoughness=0.1, specularIOR=1.5 แล้วปรับค่า specularAnisotropy ตั้งแต่ 0 ไปจนถึง 1
ความเปลี่ยนแปลงไปตามค่ามุมหมุนของ anisotropy
ค่า specularRotation คือค่ามุมของการจัดวางความไม่สม่ำเสมอ โดยค่า 1 จะเท่ากับหมุนไปเป็นมุม 180
อาจเอาไว้ใช้กับพวกโลหะที่ถูกขัดมันเพื่อควบคุมทิศทางที่ถูกขัด
ลองให้ ค่า specularRoughness=0.1, specularIOR=1.5, specularAnisotropy=0.8 แล้วเปลี่ยนค่า specularRotation
ไปเรื่อยๆตั้งแต่ 0 ถึง 1 เทียบความแตกต่างดู
หากลองใช้เท็กซ์เจอร์เป็นสีสเป็กคิวลาร์
ในตัวอย่างที่ผ่านมาเราได้ใช้เท็กซ์เจอร์เป็นสีพื้นฐานไปตามปกติ แล้วจึงเติมสเป็กคิวลาร์เป็นสีขาวล้วน
แต่จริงๆแล้วสีสเป็กคิวลาร์ก็สามารถใช้เท็กซ์เจอร์ได้เช่นกัน
คราวนี้จะมาลองดูว่าหากแทนที่จะเอาเท็กซ์เจอร์ใส่เป็นสีพื้นฐานแต่เอาไปใส่ให้สเป็กคิวลาร์แทนจะเป็นอย่างไร
ให้น้ำหนักสีพื้นฐานเป็น 0 แล้วให้น้ำหนักสเป็กคิวลาร์เป็น 1 ส่วน IOR=1.5 แล้วลองปรับค่าความหยาบ specularRoughness
ตั้งแต่ 0 ไปจนถึง 1 เทียบความแตกต่าง
จะเห็นว่าเพราะสีพื้นฐานเป็น 0 ดังนั้นโดยรวมแล้วจึงดำมืด แต่ว่าแสงที่สะท้อนจะเป็นสีตามเท็กซ์เจอร์ ทำให้พอจะเห็นสีสันขึ้นมาได้ ยิ่งเมื่อปรับค่าความหยาบมากขึ้นมา
จากตัวอย่างที่ได้แสงไปทำให้ได้เข้าใจเกี่ยวกับสีสเป็กคิวลาร์และค่าต่างๆที่ปรับได้รวมถึงความต่างที่เกิดขึ้นเมื่อปรับค่า
แต่เรื่องที่เกี่ยวข้องกับสเป็กคิวลาร์นั้นไม่ได้มีอยู่เท่านี้
ที่จริงแล้วยังมีอีกเรื่องที่ควรพูดถึงไปด้วยคือเรื่องของความเป็นโลหะ metalness ซึ่งเป็นค่าที่อยู่ในส่วนของ base
แต่มีความเกี่ยวพันทั้งสีฐานและสเป็กคิวลาร์ และมีรายละเอียดน่าสนใจมาก ดังนั้นจะขอยกไปเขียนถึงในหน้าถัดไป