หลังจากที่ในบทความก่อนหน้านี้ได้แนะนำการปรับแต่งค่าต่างๆที่สำคัญในแผง base และ specular ไปแล้ว (
https://phyblas.hinaboshi.com/20210915,
https://phyblas.hinaboshi.com/20210916 และ
https://phyblas.hinaboshi.com/20210917)
คราวนี้มาต่อกันด้วยสมบัติอีกอย่างที่สำคัญ นั่นคือ
transmission (透過) ซึ่งก็คือค่าที่กำหนดสีของแสงที่จะส่องผ่านวัตถุ
แผงปรับค่าในส่วนของ transmission นั้นอยู่ถัดจาก specular
กดเข้าไปดูจะเห็นค่าต่างๆที่สามารถปรับได้ดังนี้
ชื่อแอตทริบิวต์ |
ชื่อที่แสดงในแผงปรับค่า |
ความหมาย |
ค่า |
transmission |
weight |
ウェイト |
น้ำหนักของสีส่องผ่าน |
0.0 ~ 1.0 |
transmissionColor |
color |
カラー |
สีส่องผ่าน |
0.0 ~ 1.0 0.0 ~ 1.0 0.0 ~ 1.0 |
transmissionDepth |
depth |
深度 |
ความลึกในการกระเจิง |
≥0.0 |
transmissionScatter |
scatter |
散乱 |
สีการกระเจิง |
0.0 ~ 1.0 0.0 ~ 1.0 0.0 ~ 1.0 |
transmissionScatterAnisotropy |
scatter anisotropy |
散乱の異方性 |
ความไม่สม่ำเสมอในทิศการกระเจิงขณะส่องผ่าน |
-1.0 ~ 1.0 |
transmissionDispersion |
dispersion abbe |
拡散アッベ数 |
เลขอับเบอสำหรับการกระจายแสงเช่นในเพชรหรือกระจก |
≥0.0 |
transmissionExtraRoughness |
extra roughness |
余分な粗さ |
ความหยาบเสริมเพิ่มเติมจากความหยาบในส่วนของสเป็กคิวลาร์ |
-1.0 ~ 1.0 |
เนื่องจากมีรายละเอียดที่น่าพูดถึงมาก จะขอแบ่งเป็น ๒ ตอน สำหรับหน้านี้จะมาลองดูแค่ที่ค่าน้ำหนักของแสงส่องผ่าน transmission และแสงของสีส่องผ่น transmissionColor ส่วนค่าที่เหลือซึ่งเกี่ยวกับการกระเจิงและกระจายแสงจะยกไปเขียนอึงแยกอีกที
ในที่นี้ขอแสดงตัวอย่างทดสอบโดยใช้โมเดล ฮาตากาเซะ (
旗風) (ที่มา
https://3d.nicovideo.jp/works/td30765)
ก่อนอื่นส่วนสำคัญอย่างหนึ่งที่ไม่ควรลืมถ้าหากจะเล่นกับแสงทะลุผ่านก็คือให้ปรับ ray depth ของ transmission เป็นเลขเยอะๆ เผื่อจะได้ทะลุผ่านได้หลายครั้ง นอกจากนั้นปรับผลรวม total ให้เยอะตามด้วย ในที่นี้ปรับค่าตามนี้
ความเปลี่ยนแปลงไปตามค่าน้ำหนัก (weight) ของสีส่องผ่าน
เริ่มแรกลองดูว่าเมื่อให้ transmission เป็นสีขาวล้วนแล้วปรับค่ำน้ำหนักของแสงส่องผ่านเพิ่มขึ้นไปเรื่อยๆจาก 0 จนถึง 1 จะเป็นอย่างไร
ในที่นี้ใส่ texture เป็นสี base ไปตามปกติ ส่วน specular ให้เป็น 0 ไปทั้งหมด
จะเห็นว่ายิ่ง weight ของ transmission มากก็จะยิ่งดูใสขึ้น สามารถมองทะลุเห็นด้านหลังได้ โดยพอค่าเป็น 1 แล้วสีของ base ก็จะไม่มีผลอะไร กลายเป็นโปร่งใสไปโดยสมบูรณ์ เงาก็หายไปด้วย
ภาพที่เห็นเมื่อมองผ่านวัตถุใสนี้ไม่ใช่แค่ทะลุไปเฉยๆ แต่ทะลุพร้อมหักเหแสงด้วย เหมือนเวลาเคลื่อนผ่านเลนส์หรือกระจก ทำให้ภาพที่เห็นอยู่ด้านหลังดูบิดเบี้ยวไป ดูแล้วสมจริง
ความเปลี่ยนแปลงไปตามดัชนีหักเหแสง
ค่าที่กำหนดสมบัติหักเหแสงระหว่างส่องผ่านวัตถุก็คือ specularIOR ซึ่งก็คือดัชนีหักเหแสงตัวเดียวกับที่ใช้ในสี specular ค่านี้มีผลทั้งเมื่อสะท้อนและการหักเหเมื่อส่องผ่าน
โดยค่าตั้งต้นแล้ว specularIOR=1.5 ซึ่งก็เท่ากับกรณีของแก้วโดยทั่วไป แต่หากเป็นน้ำก็จะเป็น 1.33 หรือเพชรจะอยู่ที่ประมาณ 2.4
ลองปรับค่าดัชนีหักเหตั้งแต่ 0.1 ไปจนถึง 2.5 แล้วดูความแตกต่าง
กรณีที่ดัชนีหักเหแสงน้อยกว่า 1 จุดที่มองผ่านทำมุมต่ำจะเกิดการสะท้อนกลับหมด ยิ่งดัชนีหักเหห่างจาก 1 มากภาพที่มองผ่านก็จะยิ่งหักเหไปมาก
ในที่นี้มีทั้งแสงหักเหและแสงสะท้อนปนกัน แต่สามารถแยกแยกได้ว่าอะไรเป็นอะไรโดยดูว่าถ้าเป็นภาพที่มองทะลุผ่านจะเปลี่ยนไปตามดัชนีหักเหแสง แค่ภาพจากการสะท้อนจะหน้าตาเหมือนเดิมตลอด ไม่ขึ้นกับดัชนีหักเหแสง
ความเปลี่ยนแปลงไปตามความหยาบ
ค่า specularRoughness คือความหยาบของสีสเป็กคิวลาร์นั้นไม่ได้แค่กำหนดความหยาบในการสะท้อน แต่ยังกำหนดความหยาบของแสงส่องผ่านด้วยเช่นกัน
ลองมาดูความเปลี่ยนแปลงที่เกิดขึ้นเมื่อปรับค่าความหยาบตั้งแต่ 0 ถึง 1
เมื่อให้ความโปร่งใสเฉพาะบางสี
ในตัวอย่างที่ผ่านมาเราปรับแสงส่องผ่านเป็นสีขาว นั่นหมายความว่าทุกสีสามารถส่องผ่านไปได้หมด แต่หากต้องการให้ผ่านได้บางสีก็สามารถทำได้
ในที่นี้ให้ specularRoughness=0.1 ลองดูว่าถ้าให้ค่าสีแดงกับเขียนเป็น 1 อยู่แล้วปรับค่าสีน้ำเงินลดลงเรื่อยๆตั้งแต่ 1 ไปจนถึง 0 จะเป็นอย่างไร
พอสีน้ำเงินเป็น 0 นั่นคือเป็นสี 1,1,0 แสงทะลุผ่านก็จะเป็นสีเหลือง ทำให้เห็นวัตถุเป็นสีเหลืองด้วย นอกจากนี้ยังเกิดเงาเป็นสีเหลืองด้วย เพราะสีแดงกับเขียวเท่านั้นที่ผ่านได้ สีน้ำเงินถูกดูดกลืนไปหมดระหว่างผ่านวัตถุ
ความเปลี่ยนแปลงไปตามดัชนีหักเหแสงในกรณีที่โปร่งใสสีเดียว
ต่อมาลองมาดูกรณีที่ให้แสงผ่านได้แค่สีเดียว ในที่นี้ให้เป็นสีแดง (1,0,0) ให้ specularRoughness=0.1 แล้วปรับดัชนีหักเหแสง specularRoughness=0.1 ไปเรื่อยๆ
เมื่อลองใช้เท็กซ์เจอร์เป็นสีส่องผ่าน
สีส่องผ่านก็สามารถใช้เป็นเท็กซ์เจอร์ได้เช่นเดียวกับสี base ลองดูว่าหากเปลี่ยนเอาสีเท็กซ์เจอร์ที่เคยใช้เป็นสี base อยู่มาใส่ให้สีส่องผ่านแทนจะเป็นอย่างไร
ในตัวอย่างนี้ก็ใช้ specularRoughness=0.1 แล้วเปลี่ยนค่า specularIOR ไปเรื่อยๆเช่นกัน
เมื่อใช้แสงที่มีแค่บางสีส่องผ่านวัตถุที่ให้ผ่านได้บางสี
ในตัวอย่างที่ผ่านมาใช้แต่แสงสีขาวส่องผ่านตลอด แต่ถ้าลองใช้แสงสีอื่นส่องบ้างจะเป็นอย่างไรก็น่าลองดูบ้างเช่นกัน
ในที่นี้ลองใช้สีเหลือง (1,1,0) ส่อง แล้วให้ค่าส่องผ่านสีแดงเป็น 0 และสีเขียวเป็น 1 แสงจึงผ่านได้แค่สีเขียว จากนั้นลองปรับให้แสงสีเขียวผ่านได้น้อยลงเรื่อยๆจนพอเป็น 0 ภาพก็จะดำมืดไป
จากตัวอย่างในนี้ทำให้ได้เห็นผลของการใช้แสงส่องผ่านและค่าต่างๆที่มีส่วนเกี่ยวข้องเช่น specularIOR และ specularRoughness เป็นต้น แต่ยังไม่ได้พูดถึงค่าตัวที่เหลือในแผง transmission ซึ่งจะเกี่ยวกับการกระเจิงและการกระจายแสง การทดลองในส่วนนี้จะแยกไปลงไว้ในบทความถัดไป