หน้าแรก · Lab · Keying Lab

K1 Keyer ทำงานยังไง

screen = g − max(r, b) แล้วกลับด้านเป็น alpha

Keying Lab · ~7 นาที · ฟรี

1 อธิบาย

กรีนสกรีนคือพิกเซลที่เขียวกว่าแดงและน้ำเงิน keyer พื้นฐานวัดว่า "เขียวเกินแค่ไหน" (g − max(r, b)) แล้วกลับด้านเป็น alpha ตรงไหนเขียวมาก alpha ต่ำ ตรงไหนไม่เขียว alpha สูง

gain ขยายความต่าง clip black ดันฉากหลังที่ยังเทา ๆ ให้เป็น 0 clip white ดันตัวที่ยังโปร่งให้เป็น 1 กดปุ่ม a ที่ Viewer เพื่อดู matte และเลือกดู node Keyer หรือ Premult

alpha = 1 − clamp((g − max(r, b)) · gain), then clip black / clip white

2 ลงมือใน mini compositor

โจทย์: ปรับ Keyer ให้ matte ใกล้ matte จริง (error ≤ 1.1‰)

ดู alpha ที่ node Premult: ลด gain แล้วใช้ clip white ให้ตัวหุ่นทึบ และ clip black ให้ฉากหลังดำสนิท

SkyVFX mini compositor · K1640×360 · float · 1001

3 เจาะลึก

ไล่ตัวเลขทีละพิกเซล

screen = g − max(r, b) แล้ว alpha = 1 − clamp(screen × gain) ตารางใช้ gain 2 พิกเซลจอเขียวยังเหลือ alpha 0.1 ไม่ใช่ 0 ต้องใช้ clip black ช่วย ส่วนสีเหลืองที่เขียวน้อยกว่าแดง ได้ screen ติดลบ ถูก clamp เป็น 0 จึงทึบเต็ม

ต่อด้วย clip: alpha = (alpha − clip black) ÷ (clip white − clip black) ตั้ง clip black 0.15 และ clip white 0.9 จอเขียวกลายเป็น 0 และตัวหุ่น 0.96 ถูกดันเป็น 1

พิกเซลr, g, bg − max(r, b)alpha (gain 2)
จอเขียว0.10, 0.60, 0.150.450.10
ตัวหุ่นสีเทา0.40, 0.42, 0.400.020.96
สีเหลืองบนหุ่น0.80, 0.70, 0.10−0.10 → 01.00

คีย์ได้เพราะ contrast ระหว่างช่องสี

ถ้าตาเห็นความต่างระหว่างตัวกับจอในช่องใดช่องหนึ่ง ก็คีย์ได้ เริ่มทุกช็อตด้วยการดูช่อง R, G, B ทีละช่องที่ Viewer ว่าช่องไหนแยกตัวกับจอได้ชัด

เลือกสีจอที่ตัวแสดงไม่มี หุ่นที่มีชิ้นส่วนสีเขียวควรถ่ายบนบลูสกรีน

คีย์ง่ายเริ่มที่หน้ากอง

จอสว่างสม่ำเสมอ ไม่มี hotspot หรือเงา แยกไฟจอกับไฟตัวแสดง ให้ตัวแสดงห่างจอพอลด spill และเงาตกบนจอ เปิดรับแสงจอพอดี ถ่าย clean plate (จอเปล่า) ไว้ และวาง tracking marker ที่ลบง่าย

จอที่สว่างไม่สม่ำเสมอ แก้ใน comp แพงกว่าแก้ที่หน้ากองมาก

ตัดสิน matte ให้ถูกวิธี

ดูที่ช่อง alpha เสมอ ลด gamma ของ Viewer ลงสุดเพื่อหารูในตัวที่ควรทึบ เพิ่ม gain เพื่อหาหมอกเทาบนจอ แล้วลอง over พื้นเทา ตาราง checker และฉากหลังจริง เล่นที่ความเร็วจริงด้วย

สำเนา plate ที่ใช้คีย์ทำอะไรก็ได้ (denoise, grade) เพราะเราเก็บแค่ alpha จากมัน ภาพสีที่ใช้จริงยังมาจาก plate ต้นฉบับ

  1. 1ดู alpha
  2. 2Gamma ลง: หารู
  3. 3Gain ขึ้น: หาหมอก
  4. 4Over เทา/ฉากจริง
  5. 5เล่นความเร็วจริง

4 ในงานจริง

ทำใน Nuke

  1. Denoise สำเนา plate ก่อนคีย์ ใช้เฉพาะสาย alpha
  2. Keylight: เลือก Screen Colour (Ctrl+Shift ลากเพื่อเฉลี่ย) ใช้ Screen Gain ใกล้ 1 แล้วปรับ Clip Black / Clip White ดูผลแบบ Screen Matte
  3. จอไม่สม่ำเสมอ: IBKColour สร้าง clean plate ต่อเฟรม แล้วใช้ IBKGizmo
  4. Copy alpha เข้าสายหลัก → Premult → Merge over ฉากหลัง
  5. ที่ Viewer: กด a ดู alpha ใช้ gain/gamma ของ Viewer ตรวจรูและหมอก

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

  • ✗ ตัดสินคีย์จากภาพสีอย่างเดียว✓ ดู alpha พร้อม gamma ลงและ gain ขึ้น
  • ✗ ดัน gain/clip แรงเพื่อกำจัดหมอกไกลตัว✓ ใช้ garbage matte สำหรับพื้นที่ไกลตัว เก็บคีย์ไว้ดูแลขอบ
  • ✗ คีย์บน plate ที่ grain แรง matte จึงสั่น✓ denoise สำเนาสำหรับคีย์
  • ✗ รวม alpha ด้วย plus จน alpha เกิน 1✓ ใช้ max และ alpha ต้องอยู่ใน 0–1

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

  • ฉากหลังใน alpha เป็น 0 จริง (gain ขึ้นแล้วไม่มีหมอก)
  • ตัวหุ่นทึบ 1 (gamma ลงแล้วไม่มีรู)
  • alpha อยู่ในช่วง 0–1
  • ลอง over เทา และฉากหลังจริงแล้ว
  • เล่นที่ความเร็วจริง matte ไม่สั่น

5 เช็กตัวเอง

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

ด้วย key ตั้งต้น ตัวหุ่นดูโปร่ง: บางส่วนของตัวเห็นฉากหลังทะลุ และขอบติดสีเขียวจาก spill ควรปรับอะไรก่อน

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

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

คำถามเพิ่ม

1. พิกเซล (0.2, 0.5, 0.3) ค่า screen = g − max(r, b) เท่าไหร่

2. ทำไม denoise สำเนา plate ก่อนคีย์ได้โดยไม่ทำให้ภาพสุดท้ายนุ่ม

ตัวเลขมาจากไหน: Keyer ในห้องนี้เป็นแบบ green-difference ง่าย ๆ (ไม่ใช่ Keylight หรือ IBK) สูตร despill มาจากหลักการ despill มาตรฐาน คะแนนเทียบกับ matte จริงที่เรนเดอร์จาก Blender พร้อมกับ plate กรีน (หุ่นตัวเดียวกันและกล้องตัวเดียวกับ plate) เป้าหมายวัดจากภาพชุดนี้ เทียบกับคีย์ที่ดีที่สุดที่ Keyer นี้ทำได้