1 อธิบาย
pass ความลึก (depth) ในบทนี้ปรับไว้แล้วเป็น 0 ที่ใกล้ 1 ที่ไกล เอามาเป็น alpha ของชั้นสีหมอก แล้ว over plate ของไกลจะโดนหมอกมาก ของใกล้แทบไม่โดน
การยก lift ทั้งภาพ ยกใกล้และไกลเท่ากัน ซึ่งเหมือนแสง flare มากกว่าอากาศ ลองดูโหนดทีละตัวเพื่อเห็นความต่าง
haze = Constant(colour) · depth → over plate2 ลงมือใน mini compositor
โจทย์: ปิด Grade (lift) แล้วเปิด Merge ชั้นหมอก
กด node "Read depth" เพื่อดู pass ความลึก
3 เจาะลึก
หมอกคือชั้นสี ไม่ใช่การยกดำ
อากาศจริงทำสองอย่างพร้อมกัน มันยกดำขึ้น และกดไฮไลต์ลง ภาพไกล ๆ จึงทั้งจางและคอนทราสต์ต่ำ แถมติดสีของอากาศ ส่วน Grade lift ไม่เหมือนกัน มัน pivot ที่ 1 จึงยกโทนมืดและโทนกลาง และดึงค่าที่เกิน 1 ลง (lift 0.1 ทำให้ 4.5 เป็น 4.15 ดูบท I1) แต่ทำเท่ากันทุกระยะ และไม่มีสีของอากาศ
วิธีที่ตรงกว่าคือวางชั้นสีหมอก (Constant สีเดียว) ทับลงไป โดยใช้ depth เป็น mask ผลคือ ภาพ × (1 − m) + สีหมอก × m ยิ่ง m มาก ภาพเดิมยิ่งหาย สีหมอกยิ่งแทนที่
ดำที่ลอยมากขึ้นตามระยะ = อากาศ / ดำที่ลอยเท่ากันทั้งใกล้และไกล = flare
ทำ depth ให้เป็น 0 ถึง 1 ก่อน
ค่า depth ดิบจาก Blender เป็นระยะจริง อาจเป็นหลักร้อยหรือหลักพัน ใช้เป็น mask ตรง ๆ ไม่ได้ ต้องแปลงให้ใกล้ = 0 ไกล = 1 ก่อน ด้วย Grade ที่ตั้ง blackpoint = ค่าที่ใกล้สุด และ whitepoint = ค่าที่ไกลสุด
เช็กก่อนว่าได้ depth แบบไหน บาง render ให้ระยะจริง (ใกล้ = ค่าน้อย) บางที่ให้ 1/Z (ใกล้ = ค่ามาก) และพิกเซลท้องฟ้าว่าง ๆ อาจมีค่าสูงมากหรือเป็น 0 ให้ดูค่าจริงด้วย viewer ก่อนตั้ง Grade
- 1Shuffle depth → alpha
- 2Grade ใกล้ 0 ไกล 1
- 3Grade ที่สอง จัดรูปทรง
- 4Constant สีหมอก
- 5Merge ผ่าน mask
จัดรูปหมอกและเลือกสี
ใส่ Grade ที่สองบน mask เพื่อบอกว่าหมอกเริ่มที่ระยะไหน (blackpoint) และหนาสุดที่ระยะไหน (whitepoint) ส่วน gamma คุมว่าหมอกค่อย ๆ หนาขึ้นแบบนุ่มหรือแบบเร็ว หมอกต้องเพิ่มขึ้นตามระยะเสมอ
สีหมอกให้ดูดจากบริเวณไกลที่เป็นกลาง ๆ ของ plate เช่นแนวเนินเขาที่ขอบฟ้า อีกทางคือใช้ plate ที่ blur หนัก ๆ เป็นแหล่งสี หมอกจะเปลี่ยนสีตาม plate เองเมื่อแสงในช็อตเปลี่ยน
ดูหมอกที่ exposure ปกติแทบไม่ควรเห็น ให้ยก gain ของ viewer เพื่อตรวจว่ามันเพิ่มขึ้นตามระยะจริง
ลำดับ grade ของฉาก
หมอกกินคอนทราสต์ ถ้าเร่งคอนทราสต์ก่อนใส่หมอก มันจะถูกหมอกล้างหายไป จึงต้องเรียงแบบนี้ ปรับสมดุลก่อน แต่งไฮไลต์เล็ก ๆ (ping) ใส่หมอก แล้วค่อยดึงคอนทราสต์กลับ และ grade เชิงลุคไว้ท้ายสุด ลำดับนี้เป็นของทั้งฉากหลัง merge แล้ว (เช่นฉาก CG ทั้งฉาก หรือลุคสุดท้ายของ plate กับ CG) ส่วนสายของ element แต่ละตัวจากบท I1 จบก่อนถึงตรงนี้ หลัง re-contrast และ creative grade ให้เช็กดำใหม่ด้วย viewer gamma ขึ้น
- 1Balance
- 2Ping ไฮไลต์
- 3Haze
- 4Re-contrast
- 5Creative
ปรับหมอกเมื่อไร ให้กลับไปเช็กไฮไลต์ เงา และคอนทราสต์ใหม่ทุกครั้ง
4 ในงานจริง
ทำใน Nuke
- Shuffle: ย้าย depth ของ CG ไปไว้ใน alpha
- Grade บน alpha: blackpoint = ใกล้สุด, whitepoint = ไกลสุด ได้ mask ใกล้ 0 ไกล 1
- Grade ที่สองบน mask: กำหนดระยะเริ่ม ระยะหนาสุด และ gamma ของการไล่
- Constant สีหมอกที่ดูดจาก plate ไกล ๆ → Merge (over) ลง CG ที่ unpremult แล้ว ใช้ depth เป็น mask (หรือ Keymix) แล้ว Copy alpha เดิมของ CG กลับ ในสายของบท I1 ขั้นนี้อยู่หลัง Toe ก่อน Premult ถ้าใส่หมอกให้ CG ให้แมทช์ Toe กับดำที่ไม่มีหมอก (ดำของโซนใกล้) แล้วให้หมอกเป็นตัวยกดำของระยะไกล ถ้า Toe แมทช์กับดำโซนไกลแล้วยังใส่หมอกซ้ำ CG ไกลจะถูกยกสองรอบ
- ถ้าขอบ depth ไม่ตรงกับขอบภาพจนเกิดเส้นมืด ให้ Erode หรือ Blur mask เล็กน้อย
พลาดบ่อย → แก้ยังไง
- ✗ ทำหมอกด้วย Grade lift อย่างเดียว✓ ใช้ Constant สีหมอก ทับผ่าน mask depth จะได้ทั้งยกดำ กดไฮไลต์ และติดสี มากขึ้นตามระยะ
- ✗ ใช้ depth ดิบเป็น mask โดยไม่ normalise✓ Grade ให้ใกล้ 0 ไกล 1 ก่อนเสมอ
- ✗ mask กลับด้าน หมอกหนาที่หุ่นยนต์ด้านหน้า✓ ตรวจว่าใกล้ = ดำ ไกล = ขาว ถ้า render ให้ 1/Z ต้องกลับค่าก่อน
- ✗ เร่งคอนทราสต์ก่อนใส่หมอก✓ ใส่หมอกก่อน แล้วค่อยดึงคอนทราสต์กลับ
เช็กก่อนส่งช็อต
- หมอกเพิ่มขึ้นตามระยะ ไม่เท่ากันทั้งใกล้และไกล
- mask depth ใกล้ = 0 ไกล = 1
- สีหมอกมาจาก plate ไม่ใช่สีที่เดาเอง
- ดำของ CG ไม่ลอยกว่าท้องฟ้าหรือเนินเขาไกล
- ไม่มีเส้นมืดตามขอบ CG หลังใส่หมอก
5 เช็กตัวเอง
ยกดำเท่ากันทั้งใกล้และไกล ดูเหมือนอะไร
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. ยก viewer gain แล้วเห็นดำของ CG ลอยเท่ากันทั้งตัวที่อยู่ใกล้และไกล ภาพนี้อ่านว่าอะไร
2. ทำไมหมอกด้วย Constant ผ่าน mask ถึงดูจริงกว่า Grade lift
ตัวเลขมาจากไหน: ภาพคำนวณในเบราว์เซอร์ Saturation, Multiply, Clamp, Invert, Keymix, Copy และ Grade ตรงกับ Nuke 17.0v2 (ตรวจแล้ว) ส่วน Blur, Defocus, Glow, Sharpen, ChromaticAberration, Vignette, LensDistort, Grain, Erode, Toe, Keyer และ Despill เป็นแบบสอนหลักการ ไม่เท่า node ใน Nuke เป๊ะ Transform ในห้องนี้ก็เป็นแบบสอนหลักการเช่นกัน ใช้ bilinear ไม่ concatenate และตัดขอบที่เฟรม ภาพเป็นเรนเดอร์ Blender ของเราเอง (green screen สร้างด้วยโค้ดล้วน ฉากทะเลทรายใช้ภูเขาจาก Gaea 2.3 ท้องฟ้าเป็น HDRI CC0 จาก Poly Haven หินและหญ้าจาก Poly Haven CC0 ทรายและหินผาจาก Quixel และ rig หุ่นจาก Mixamo โดย Quixel และ Mixamo ใช้ในเรนเดอร์เท่านั้น)