หน้าแรก · Lab · Case Files: แก้ปัญหา comp จากงานจริง

CF4 เคส 4: ประกายไฟซีด และ bokeh เป็นวงเทา

แสงถูกตัดที่ 1 ก่อน defocus แล้วยัง screen ซ้ำ

Case Files: แก้ปัญหา comp จากงานจริง · ~7 นาที · ฟรี

1 อธิบาย

อาการ: ประกายไฟดูแบนเหมือนสติกเกอร์สีส้ม วง bokeh เป็นวงเทาจาง ๆ ไม่มีแกนจ้า ชี้เมาส์ที่ Read sparks แกนอ่านได้ราว 62 แต่หลัง "Clamp (keep it legal)" เหลือแค่ 1 มีคนคิดว่าค่าเกิน 1 "ผิดกฎ" เลยตัดทิ้ง

Defocus กระจายแสงของจุดหนึ่งไปทั่ววง ถ้าแสงถูกตัดเหลือ 1 ก่อน วงก็เหลือแสงนิดเดียว พอเลิกตัดแสง แกนจะกลับมาเกิน 1 และตรงนั้น Merge screen ของ Nuke คืนค่า max(A, B) แสงจึงยังไม่ถูกบวกกับ plate แก้สองจุด: เลิกตัดแสงก่อน defocus และบวกแสงด้วย plus

screen (Nuke): A + B − AB in 0–1, max(A, B) above 1

2 ลงมือใน mini compositor

โจทย์: ให้ประกายไฟกลับมาจ้าและ bokeh กลมสว่าง (สองจุดที่ต้องแก้)

ปิด node ที่ตัดแสง แล้วเปลี่ยน operation ของ Merge ลด gain ของ Viewer เหลือ 0.1 เพื่อดูแกน

SkyVFX mini compositor · CF4640×360 · float · 1001

3 เจาะลึก

แสงต้องมีพลังงานครบก่อนกระจาย

Defocus และ motion blur คือการกระจายแสงของจุดหนึ่งไปหลายพิกเซล ปริมาณแสงรวมคงเดิม ส่วน glow บวกสำเนาแสงที่กระจายแล้วเพิ่มเข้าไป แกนประกายไฟที่ 62 กระจายบนวงกว้างยังสว่างพอให้เห็นเป็นวง bokeh ชัด แต่ถ้าถูกตัดเหลือ 1 ก่อน แสงรวมหายไปเกือบ 99% วงจึงเหลือแค่เงาเทา ๆ

แกนประกายไฟก่อน Defocusผลที่วง bokeh
ไม่ตัด≈ 70วงสว่างชัด
Clamp ที่ 11วงจาง เทา

screen ไม่ใช่ plus

ใน Nuke 17 screen ใช้สูตร A + B − AB เฉพาะตอนทั้งสองค่าอยู่ใน 0–1 ถ้าเกิน 1 จะคืนค่า max(A, B) แกนแสงที่เกิน 1 จึงไม่ถูกบวกกับ plate เลย ภาพดู "ปลอดภัย" แต่แบน

บางคนใช้ screen ตั้งใจเพื่อกัน glow กว้าง ๆ ไม่ให้ขาวทะลุ นั่นคือการเลือกแบบศิลปะ แต่สำหรับแสงจริงอย่างไฟและประกาย ให้ใช้ plus แล้วคุมความแรงด้วย gain ของ element

ถ้าค่าสูงจริง ๆ ทำอะไรได้

ค่าเกิน 1 ไม่ใช่ความผิด แต่ถ้าต้องจำกัดจริง ๆ (เช่นก่อนทำ mask หรือส่งเข้า node ที่รับได้แค่ 0–1) ให้ทำบนสำเนาที่ใช้เป็น mask เท่านั้น สายภาพหลักต้องเก็บค่าแสงเต็มไว้จนถึงหลัง defocus และ glow

ดูแกนแสงที่ Viewer gain 0.1 ถ้าแกนแบนเป็นที่ราบ = ถูกตัด

4 ในงานจริง

ทำใน Nuke

  1. Read fire/sparks → (Grade ด้วย gain) → Defocus หรือ ZDefocus → Merge plus บน plate
  2. Clamp ถ้าจำเป็น: ติ๊กแค่ minimum เพื่อตัดค่าติดลบ ไม่ตัด maximum บนสายแสง
  3. Merge: operation plus สำหรับแสงที่ alpha 0 (over ให้ผลเท่ากันเมื่อ a = 0)
  4. ตรวจด้วย Viewer gain ต่ำ และ sample แกนแสงก่อนและหลังแต่ละ node

พลาดบ่อย → แก้ยังไง

  • ✗ Clamp ที่ 1 เพราะคิดว่าค่าเกิน 1 ผิด✓ ค่าเกิน 1 คือแสงจริงใน scene-linear เก็บไว้
  • ✗ ใช้ screen กับแสง HDR✓ screen ของ Nuke ตัดที่ max(A, B) เมื่อเกิน 1 ใช้ plus
  • ✗ Defocus หลังแปลงเป็นค่าจอหรือหลังตัดค่า✓ Defocus ใน linear ที่ยังไม่ตัด

เช็กก่อนส่งช็อต

  • ไม่มี Clamp maximum บนสายแสงก่อน defocus/glow
  • แสงใช้ plus ไม่ใช่ screen (เว้นตั้งใจ)
  • แกนแสงที่ Viewer gain 0.1 ยังมีรายละเอียด ไม่แบน
  • ดู FX บนพื้นดำและพื้นขาวก่อนโทษ plate

5 เช็กตัวเอง

เช็กตัวเอง 1 ข้อ

ทำไมวง bokeh ถึงเป็นวงเทาจาง

สิ่งที่ได้เรียน

🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด

คำถามเพิ่ม

1. A = 2.0 screen B = 0.5 ใน Nuke 17 ได้เท่าไหร่

2. ต้องจำกัดค่าแสงเพื่อทำ mask จะทำที่ไหน

ตัวเลขมาจากไหน: เคสจากปัญหาที่เจอในงานจริง เล่าใหม่แบบไม่ระบุงาน และสร้างซ้ำด้วยภาพ Blender ของเราเอง ภาพคำนวณในเบราว์เซอร์: Merge, Grade, Premult, Keymix, Invert, Clamp ตรงกับ Nuke 17.0v2 (ตรวจแล้ว) ส่วน Toe, Defocus, Sharpen, Grain, Keyer และ Despill เป็นแบบสอนหลักการ ไม่เท่า node ใน Nuke เป๊ะ