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

CF5 เคส 5: แสงข้างหลังมาติดบนตัวหุ่น

plus แสงหลังจาก over ของหน้าแล้ว แสงจึงทับของหน้า

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

1 อธิบาย

อาการ: ประกายไฟอยู่ข้างหลังหุ่น แต่แขนขวาของหุ่นกลับสว่างจ้าเหมือนแสงลอยอยู่ข้างหน้า ชี้เมาส์ที่แขนเทียบ "Merge over" กับ "Merge plus (sparks)" ตรงที่ซ้อนกันสว่างขึ้นหลายเท่า ในงานจริงวัดแบบนี้ได้ว่าคนที่ยืนหน้า element สว่างขึ้น 1.6 เท่า

ต้นเหตุคือลำดับ: plus บวกแสงเข้าไปทุกพิกเซล รวมถึงพิกเซลของหุ่นที่ควรบังแสงไว้ ทางแก้คือ holdout: ตัดแสงออกด้วย alpha ของหุ่นก่อน plus (stencil) ผลเท่ากับวางแสงไว้ใต้หุ่นแล้วค่อย over

holdout: sparks · (1 − a_robot)

2 ลงมือใน mini compositor

โจทย์: ทำให้แสงอยู่หลังหุ่น โดยไม่เปลี่ยนความสว่างของประกายไฟตรงที่ไม่มีหุ่นบัง

มี node holdout เตรียมไว้แล้ว เช็กว่ามันทำงานอยู่ไหม

SkyVFX mini compositor · CF5640×360 · float · 1001

3 เจาะลึก

plus ไม่รู้ว่าอะไรอยู่หน้า

over ใช้ alpha ตัดสินว่าใครบังใคร แต่ plus แค่บวกทุกพิกเซล ถ้าแสงของ element ที่อยู่ข้างหลังถูก plus หลังจากของหน้า over ไปแล้ว แสงจะไปบวกบนของหน้าด้วย

ทางแก้มีสองแบบที่ได้ผลเท่ากัน: (1) plus แสงเข้ากับ plate ก่อน แล้วค่อย over ของหน้า หรือ (2) stencil แสงด้วย alpha ของของหน้าแล้วค่อย plus ห้องนี้ใช้แบบที่ 2

  1. 1แสง × (1 − a ของหน้า)
  2. 2plus บน comp
  3. 3ของหน้าไม่โดนแสง

วัดด้วยอัตราส่วน

วิธีจับอาการนี้แบบเป็นตัวเลข: เอา comp หารด้วยภาพก่อน plus บนพื้นที่ของหน้า ถ้าถูกต้องควรได้ราว 1 ในงานจริงเคยวัดได้ 1.6 บนคนที่ยืนหน้า element ที่เรืองแสง หลังย้าย glow ไปอยู่ใต้ holdout กลับมาราว 1.0

ทุก glow หรือแสงที่บวก ต้องอยู่ใต้ holdout ของของหน้า

ถ้าแสงควรตกบนของหน้าจริงล่ะ

บางครั้งแสงจากไฟข้างหลังควรส่องขอบคนที่ยืนหน้า นั่นคือ interactive light ทำแยกเป็นชั้นของมันเอง: ใช้แสงที่เบลอและลดความแรงตามระยะ คูณกับ matte ของคน แล้วคุมให้ตกเฉพาะด้านที่หันเข้าหาแสง อย่าปล่อยให้ glow ของ element ทำหน้าที่นี้แบบบังเอิญ

4 ในงานจริง

ทำใน Nuke

  1. Merge (stencil): B = แสง, A = matte ของหน้า แล้วต่อเข้า Merge (plus)
  2. หรือ: แสง plus plate ก่อน แล้ว Merge over ของหน้าทีหลัง
  3. matte ของหน้ามาจาก roto, key หรือ depth ใช้ Copy หรือต่อเข้า A โดยตรง
  4. ตรวจ: Merge (divide) comp ÷ ภาพก่อน plus แล้ว sample บนของหน้า

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

  • ✗ plus glow ท้ายสุดหลังทุกอย่าง✓ glow ของ element ข้างหลังต้องอยู่ใต้ holdout
  • ✗ ลด gain ของแสงเพื่อให้ของหน้าไม่สว่าง✓ แสงจะมืดทุกที่ แก้ที่ลำดับหรือ holdout
  • ✗ ใช้ matte ที่ครอบคนอื่นหรือของอื่นติดมาด้วย✓ ดู matte ทับ plate ทุกช็อต ให้ครอบเฉพาะของที่ตั้งใจ

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

  • แสงและ glow ทุกตัวที่มาจากข้างหลังอยู่ใต้ holdout ของของหน้า
  • comp ÷ ภาพก่อน plus บนของหน้า ≈ 1
  • matte ของ holdout ครอบเฉพาะของที่ตั้งใจ
  • ถ้าต้องการแสงบนของหน้า ทำเป็น interactive light แยก

5 เช็กตัวเอง

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

แขนหุ่นสว่างขึ้นหลายเท่าตรงที่ซ้อนกับประกายไฟ ต้นเหตุคืออะไร

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

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

คำถามเพิ่ม

1. สองแบบนี้ให้ผลเท่ากันไหม: (หุ่น over plate) + แสง·(1 − a) กับ หุ่น over (plate + แสง)

2. จะพิสูจน์ด้วยตัวเลขว่าคนข้างหน้าไม่โดน glow ทำอย่างไร

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