φυβλαςのβλογ
บล็อกของ phyblas



ทำความเข้าใจสีพื้นฐาน (base) ของ standardSurface ใน arnold ใน maya
เขียนเมื่อ 2021/09/15 23:43
แก้ไขล่าสุด 2023/04/25 05:41

ในบทความที่แล้วได้แนะนำการใช้วัสดุ standardSurface โดยผ่าน preset วัสดุชนิดต่างๆมาแล้ว https://phyblas.hinaboshi.com/20210914

คราวนี้จะมาลองเจาะลึกถึงค่าต่างๆไปทีละส่วน โดยจะขอเริ่มจากค่าในส่วนของ base (ベース) ซึ่งเป็นส่วนของสีพื้นฐาน ถ้าดูในแอตทริบิวต์อีดิเตอร์จะพบว่าอยู่ในแถบบนสุด



จะเห็นว่าค่าต่างๆที่ให้ปรับได้ในแผงนี้มีอยู่ ๔ ตัว ได้แก่

ชื่อแอตทริบิวต์ ชื่อที่แสดงในแผงปรับค่า ความหมาย ค่า
base weight ウェイト น้ำหนักของสีพื้นฐาน 0.0 ~ 1.0
baseColor color カラー สีพื้นฐาน 0.0 ~ 1.0
0.0 ~ 1.0
0.0 ~ 1.0
diffuseRoughness diffuse roughness 拡散の粗さ ความหยาบของการแพร่ของสี 0.0 ~ 1.0
metalness metalness メタル性 ความเป็นโลหะของวัสดุ 0.0 ~ 1.0

ในที่นี้จะอธิบาย ๓ ตัวแรกเป็นหลัก ส่วน metalness นั้นมีความเกี่ยวข้องกับส่วนของ specular และมีรายละเอียดมากมาย จึงจะแยกไปเขียนถึงต่างหากอีกที




ความเปลี่ยนแปลงไปตามค่าน้ำหนักของสีพื้นฐาน

ปกติค่าสีจริงๆที่ปรากฏนั้นจะเท่ากับค่าน้ำหนัก base ซึ่งเป็นค่าเลขตัวเดียวที่มีค่าตั้งแต่ 0 ถึง 1 คูณด้วยค่าสี baseColor คือค่าตัวเลข ๓ ค่าที่แสดงปริมาณส่วนผสมสีแดง เขียว น้ำเงิน ซึ่งก็มีค่าตั้งแต่ 0 ถึง 1 เหมือนกัน

ในที่นี้ขอแสดงตัวอย่างทดสอบโดยใช้โมเดล อุมิกาเซะ (海風うみかぜ) (ที่มา https://3d.nicovideo.jp/works/td24340)

โดยค่าสี baseColor จะใช้ตามเท็กซ์เจอร์ และในที่นี้เพื่อให้เห็นผลของค่าสี base อย่างเดียวจึงจะขอปรับค่า specular เป็น 0 ทั้งหมด

ลองดูความแตกต่างเมื่อปรับค่า weight ตั้งแต่ 0 ไปจนถึง 1 โดยค่าอื่นทั้งหมดให้คงเดิมตลอด รวมทั้งแสงไฟและฉากหลังด้วย


ถ้าค่า weight สีพื้นฐานเป็น 0 วัตถุก็จะดำมืด ไม่ว่าจะตั้งค่าสีเป็นสีอะไรก็ตาม เพราะจะถูกคูณด้วย 0 หมด

แต่จริงๆแล้วปกติแล้วจะมีแสงในส่วนของ specular ซึ่งหมายถึงแสงสะท้อน แต่ในที่นี้ตั้งเป็น 0 คือไม่มีแสงสะท้อนใดๆทั้งสิ้น จึงดำมืดสนิทไปจริงๆ

การปรับสีของวัสดุนั้นอาจจะปรับที่ weight หรือปรับ baseColor เอาก็ได้ เช่นถ้าต้องการผิวดำมืดก็อาจทำโดยใช้สีดำ (0,0,0) หรือตั้ง weight ของส่วน base เป็น 0 ก็ได้เหมือนกัน

อย่างไรก็ตามสำหรับวัสดุโดยทั่วไปนั้นปกติแล้วเราจะให้ค่าน้ำหนักในส่วนของ base นี้เป็น 1 แล้วปรับค่าสี baseColor เอา ไม่ต้องไปปรับค่านี้โดยตรง

สำหรับตัวอย่างต่อจากนี้ไปก็จะตั้งค่า base เป็น 1 ไว้ตลอด




ความเปลี่ยนแปลงไปตามปริมาณแสงที่ส่อง

สี base นั้นคือสีหลักของวัตถุซึ่งจะมองเห็นได้เมื่อมีแสงมาตกกระทบแล้วสะท้อนเข้าตาเรา ถ้าไม่มีแสงเลยก็จะมองไม่เห็น และยิ่งปริมาณแสงสว่างมากก็จะเห็นวัตถุสว่างขึ้นไปด้วย

ลองมาดูภาพที่เปลี่ยนไปเรื่อยๆตามปริมาณแสง โดยในที่นี้ใช้ไฟ arnold area light อันเดียวส่องมาจากด้านหน้า ทำเฉียงไป 30 องศา

ความสว่างของ arnold area light นั้นจะขึ้นอยู่กับค่า exposure เป็นหลัก โดยความสว่างแปรตามเลขสองยกกำลัง exposure ดังนั้นถ้าค่ามากขึ้น 1 ก็หมายถึงสว่างขึ้นสองเท่า

ลองเปลี่ยนค่า exposure ของแสงแล้วดูความแตกต่างที่เกิดขึ้น





ความเปลี่ยนแปลงไปตามมุมที่แสงส่อง

นอกจากปริมาณแสงแล้ว ความสว่างยังขึ้นกับมุมที่แสงฉายเข้ามาด้วย ยิ่งแสงกระทบตั้งฉากก็จะยิ่งสว่าง

ลองปรับมุมของแสงไฟที่ส่องเข้ามาดูโดยคงปริมาณแสง แล้วดูความเปลี่ยนแปลงได้





ความเปลี่ยนแปลงไปตามค่าความหยาบการแพร่

สำหรับค่า diffuseRoughness นั้นคือความหยาบในการแพร่ของสี โดยวัสดุหยาบนั้นจะมองเห็นสีตามแบบจำลองของโอเรน-นายาร์ (Oren-Nayar) ส่วนวัสดุที่ไม่หยาบจะเป็นตามแบบจำลองของลัมแบร์ท (Lambert)

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

ยิ่งค่าเข้าใกล้ 1 จะมองเห็นพื้นผิวดูหยาบมากขึ้น แต่จริงๆถึงจะปรับค่าไปก็ไม่ได้เห็นความแตกต่างมากมายนัก

ลองเปรียบเทียบค่าความเปลี่ยนแปลงเมื่อปรับความหยาบให้มีค่าเปลี่ยนไป


โดยรวมแล้วจะเห็นว่าว่ายิ่งหยาบก็จะยิ่งมืด แต่เป็นเพียงความต่างเล็กน้อยปลีกย่อย มองเห็นผลไม่มากนักถ้าเทียบกับค่าอื่นๆ ดังนั้นในกรณีที่ไปอาจให้เป็น 0 ไป ไม่ต้องมาปรับค่าอะไรตรงนี้




ความเปลี่ยนแปลงไปตามมุมที่มอง

สีในส่วน base นี้คือสีของตัววัตถุนั้นๆโดยตรง ซึ่งจะเปลี่ยนไปโดยขึ้นกับปริมาณแสงที่ตกกระทบและมุมของแสงนั้น ไม่ว่าเราจะมองจากมุมไหนก็ตาม

ลองดูตัวอย่างความเปลี่ยนแปลงเมื่อให้แสงฉายจากที่เดิมตลอด แล้วหมุนกล้องให้มองจากมุมต่างๆกันไป


จะเห็นว่าส่วนที่มืดก็ยังมืดอยู่ตลอด การเปลี่ยนมุมมองไม่ได้ทำให้มองเห็นความมืดหรือสว่างต่างไปนัก

เพียงแต่หากมีสีในส่วน specular ปนอยู่ด้วยแล้วผลก็จะต่างออกไปตามมุมมองอย่างเห็นได้ชัด ซึ่งเรื่องนี้จะยกไปเขียนถึงในบทความถัดไปอีกที https://phyblas.hinaboshi.com/20210916






-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> 3D >> maya

ไม่อนุญาตให้นำเนื้อหาของบทความไปลงที่อื่นโดยไม่ได้ขออนุญาตโดยเด็ดขาด หากต้องการนำบางส่วนไปลงสามารถทำได้โดยต้องไม่ใช่การก๊อปแปะแต่ให้เปลี่ยนคำพูดเป็นของตัวเอง หรือไม่ก็เขียนในลักษณะการยกข้อความอ้างอิง และไม่ว่ากรณีไหนก็ตาม ต้องให้เครดิตพร้อมใส่ลิงก์ของทุกบทความที่มีการใช้เนื้อหาเสมอ

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
มอดูลต่างๆ
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
ภาษา javascript
ภาษา mongol
ภาษาศาสตร์
maya
ความน่าจะเป็น
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
-- บันทึกในฮ่องกง
-- บันทึกในมาเก๊า
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  ค้นหาบทความ

  บทความแนะนำ

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ

บทความแต่ละเดือน

2024年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2023年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2022年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2021年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2020年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

ค้นบทความเก่ากว่านั้น

ไทย

日本語

中文