หน้าแรก · Lab · Camera & Lens Lab

L5 Shutter angle กับ motion blur

ความยาวเบลอ = ความเร็ว × shutter

Camera & Lens Lab · ~5 นาที · ฟรี

1 อธิบาย

กล้องภาพยนตร์บอกเวลาเปิดชัตเตอร์เป็นองศา 180° คือเปิดครึ่งหนึ่งของเวลาต่อเฟรม (1/48 วินาทีที่ 24 fps) ของที่วิ่ง 48 พิกเซลต่อเฟรมจะเบลอยาว 24 พิกเซล

CG ต้องใช้ shutter เดียวกับ plate ไม่งั้นของจะดูกระตุกหรือเบลอเกิน ส่วนประกายไฟที่เบลอมาแล้ว อย่าใส่ motion blur ซ้ำ

blur (px) = speed (px/frame) · angle / 360 · exposure = angle / (360 · fps)

2 ลงมือลอง

ปรับ shutter angle ให้ความยาวเบลอเท่า plate

SkyVFX Lab · L5interactive · 1001

3 เจาะลึก

องศา ↔ วินาที

เวลาเปิดชัตเตอร์ = angle ÷ (360 × fps) ใน Nuke ค่า shutter เป็นสัดส่วนของเฟรม 180° = 0.5 ความยาวเบลอ = ความเร็ว × angle/360 แขนหุ่นที่เคลื่อน 40 px ต่อเฟรม ที่ 180° เบลอ 20 px ที่ 45° เหลือ 5 px ดูกระตุกแบบหนังแอ็กชัน

fpsAngleเปิด (วินาที)Nuke shutter
24180°1/480.5
25180°1/500.5
2490°1/960.25
2445°1/1920.125

อ่าน shutter จาก plate เอง

ไม่มี report ก็วัดเองได้ หาของที่เคลื่อนตรงด้วยความเร็วคงที่ วัดว่าเฟรมต่อเฟรมขยับกี่ px และรอยเบลอยาวกี่ px (หักขนาดของตัววัตถุออก) แล้ว angle = 360 × ความยาวเบลอ ÷ ระยะที่ขยับต่อเฟรม

หน้ากอง: จด fps และ shutter ทุก setup และถามว่าผู้กำกับภาพเปลี่ยน shutter เพื่อลุคหรือไม่ เช็ก shutter offset ของเรนเดอร์ด้วย (centred, start หรือ end) ถ้าไม่ตรง รอยเบลอจะนำหน้าหรือตามหลังวัตถุ

  1. 1รู้ shutter plate
  2. 2ตั้ง CG เท่ากัน
  3. 3เลือกวิธีเบลอ
  4. 4เทียบความยาวรอยเบลอ

เลือกวิธีใส่ motion blur

ดีที่สุดคือเบลอจากตัว node ที่ขยับของเอง (Transform, CornerPin, Tracker, Roto, ScanlineRender) เพราะรู้การเคลื่อนจริง ถ้าเห็นเป็นภาพซ้อนหลายชั้นให้เพิ่ม samples ไม่ใช่เพิ่ม shutter CG ที่เรนเดอร์ motion vector มาใช้ VectorBlur ได้ ส่วน MotionBlur เดาการเคลื่อนจากภาพเมื่อไม่มีข้อมูลอื่น (อาจต้องใช้ NukeX / Nuke Studio แล้วแต่ license)

VectorBlur เบลอเป็นเส้นตรงต่อพิกเซล ของที่หมุนหรือวิ่งเป็นโค้ง (ล้อ ใบพัด) จะเบลอผิดทรง ต้องใช้วิธีที่ตามเส้นโค้งได้ หรือเรนเดอร์ motion blur มาจาก 3D

เมื่อไหร่ "ไม่" ควรเติม

ประกายไฟคือจุดสว่างที่เบลอมาแล้ว รอยเส้นคือ motion blur ของมัน เติมซ้ำจะได้เส้นอ้วน ๆ ตรง ๆ CG ที่เรนเดอร์มีเบลอแล้วก็อย่าผ่าน VectorBlur อีก แสงวาบที่สั้นกว่าชัตเตอร์ (muzzle flash) ติดคมทั้งที่ทั้งเฟรมเบลอ นั่นถูกต้องตามจริง

สงสัยเมื่อไหร่ ปิด motion blur แล้วดูว่า element มีเบลออยู่แล้วหรือยัง

4 ในงานจริง

ทำใน Nuke

  1. Transform / CornerPin / Tracker: motionblur (samples) เปิด, shutter 0.5 สำหรับ 180°
  2. วาง Transform ติดกันให้ concatenate จะ filter และเบลอครั้งเดียว อย่าแทรก Grade ระหว่างกลาง
  3. ScanlineRender: samples และ shutter เท่ากับ plate
  4. CG มี motion vector → VectorBlur ปรับให้เบลอเท่ากับ shutter ของ plate
  5. ไม่มีข้อมูลการเคลื่อน → MotionBlur (ประมาณจากภาพ อาจต้องใช้ NukeX / Nuke Studio แล้วแต่ license)

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

  • ✗ ใช้ 360° ให้ดูนุ่ม✓ ใช้ shutter ของ plate
  • ✗ เติมเบลอให้ประกายไฟหรือ CG ที่มีเบลอแล้ว✓ เช็กก่อน เบลอครั้งเดียวพอ
  • ✗ VectorBlur กับล้อที่หมุน✓ ใช้วิธีที่ตามเส้นโค้งหรือเรนเดอร์เบลอจาก 3D
  • ✗ เห็นภาพซ้อนเป็นขั้นแล้วเพิ่ม shutter✓ เพิ่ม samples และคง shutter ไว้

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

  • รู้ fps และ shutter ของ plate (จาก report หรือวัดเอง)
  • CG และ transform ใช้ shutter และ offset เดียวกับ plate
  • ความยาวรอยเบลอของ CG เทียบได้กับของจริงใน plate
  • ไม่มีเบลอซ้อนบน element ที่มีเบลอแล้ว
  • ไม่มีภาพซ้อนเป็นขั้นในเฟรมที่เร็วที่สุด

5 เช็กตัวเอง

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

plate 24 fps shutter 180° ใน CG ควรตั้ง shutter ยังไง

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

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

คำถามเพิ่ม

1. plate 24 fps วัตถุขยับ 30 px ต่อเฟรม รอยเบลอยาว 10 px (หักขนาดวัตถุแล้ว) shutter angle เท่าไหร่

2. 25 fps ที่ 180° ชัตเตอร์เปิดนานเท่าไหร่

ตัวเลขมาจากไหน: สูตรเลนส์เป็นแบบ thin lens มาตรฐาน (FOV, CoC, hyperfocal) ใช้ CoC = เส้นทแยงเซนเซอร์ ÷ 1500 ซึ่งเป็นธรรมเนียมทั่วไป ไม่ใช่ค่าตายตัว distortion ใช้โมเดล Brown–Conrady (k1, k2) ภาพ DOF จริงเรนเดอร์จาก Blender Cycles