หน้าแรก · Lab · 2.5D และ projection

P3 Nodal pan กับการเลื่อนกล้อง

หมุนอยู่กับที่ไม่มี parallax งาน 2D พอ แต่เลื่อนตำแหน่งเมื่อไรต้องใช้ 3D

2.5D และ projection · ~7 นาที · ฟรี

1 อธิบาย

ถ้ากล้องหมุนรอบจุดศูนย์กลางของเลนส์ (nodal pan) แสงที่เข้ากล้องยังมาจากทิศเดิมทุกเส้น ภาพแค่ “ลื่น” ไปทั้งแผ่น ของใกล้กับของไกลขยับไปด้วยกัน การ track 2D แล้ว Transform ตามจึงตรงทั้งภาพ

แต่ถ้ากล้องเลื่อนตำแหน่งแม้นิดเดียว ของใกล้กับของไกลจะวิ่งไม่เท่ากัน การแก้ 2D ที่ล็อกกับระยะไกลสุดจะคลาดที่หินใกล้ทันที (ภูเขาเองก็คลาดไม่กี่ px) ตรงนี้ต้องใช้ camera track 3D หรือแยกชั้น

rotate only: x′ = K · R · K⁻¹ · x (one 2D warp works at every depth)

2 ลงมือลอง

ทำ camera move อย่างน้อย 10° ที่ 2D fix ยังตรงทั้งภาพ (คลาด < 1 px)

โหมด difference: ดำ = ตรงกัน, สว่าง = 2D fix คลาดจากของจริง

SkyVFX Lab · P3interactive · 1001

3 เจาะลึก

ทำไมหมุนแล้วไม่มี parallax

ทุกจุดในฉากส่งแสงเป็นเส้นตรงเข้าจุดศูนย์กลางของเลนส์ ถ้ากล้องหมุนรอบจุดนั้นพอดี เส้นแสงทุกเส้นยังเข้ามาจากทิศเดิม แค่ภาพทั้งแผ่นเปลี่ยนมุม การแปลงนี้เป็น 2D warp ตัวเดียว (homography) ที่ใช้ได้กับทุกความลึก

ใน figure “2D fix” คือ plate บนการ์ดไกลมาก ถ่ายด้วยกล้องที่หมุนอย่างเดียว เท่ากับการ track ภาพไกลแล้ว warp ทั้งภาพตาม

เลื่อนนิดเดียวก็พัง

ความคลาดของ 2D fix เท่ากับ parallax ที่หายไป ≈ f·T·(1/Z_ใกล้ − 1/Z_ไกล) โดย Z_ไกล คือระยะที่ fix ล็อกไว้ ใน figure ล็อกไว้ที่ระยะไกลสุด (แทบเป็นอนันต์) ความคลาดจึงเหลือราว f·T/Z เลื่อนแค่ 0.5 ม. พื้นใกล้ ๆ ก็คลาดราว 72 px ส่วนภูเขาคลาดแค่ราว 4 px

การเคลื่อนparallaxใช้อะไร
กล้องนิ่งไม่มีไม่ต้อง track
หมุนรอบ nodalไม่มี2D track / warp
เลื่อน (dolly, truck, ถือมือ)มี3D camera track หรือแยกชั้น
เลื่อน แต่ทุกอย่างไกลมากน้อยมากมักใช้ 2D ได้

ขาตั้งกล้องไม่ได้แปลว่า nodal

หัวขาตั้งทั่วไปหมุนรอบแกนที่อยู่ใต้กล้อง ไม่ใช่ที่จุดศูนย์กลางเลนส์ จึงมีการเลื่อนเล็กน้อยปนอยู่ ของที่ใกล้มากอาจมี parallax ให้เห็น ให้เช็กโดย stabilize ด้วย track ไกล แล้วดูว่าของใกล้ยังนิ่งไหม

stabilize ด้วยจุดไกล แล้วดูจุดใกล้ ถ้าวิ่ง = มี parallax

เลือกเครื่องมือที่ง่ายที่สุดที่ยังใช้ได้

ตัดสินใจตามงานแต่ละชิ้น ไม่ใช่ตามช็อต ช็อตเดียวกันอาจใช้ 2D สำหรับแทนฟ้า (ไกลมาก) แต่ต้องใช้ 3D สำหรับวางของบนพื้นใกล้ ๆ เริ่มจากวิธีที่ง่ายสุด แล้วค่อยขยับไปวิธีที่หนักขึ้นเมื่อเช็กแล้วไม่ผ่าน

4 ในงานจริง

ทำใน Nuke

  1. Tracker บนจุดไกล → ตั้งเป็น match-move หรือสร้าง Transform จาก track
  2. เช็ก: ใช้ Tracker แบบ stabilize แล้วดูว่าจุดใกล้ยังนิ่งไหม
  3. ถ้ามี parallax: solve กล้อง 3D (เช่น CameraTracker ใน NukeX หรือโปรแกรม matchmove) แล้วใช้ Camera กับ Card / ScanlineRender

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

  • ✗ solve กล้อง 3D ทุกช็อต แม้เป็น nodal pan✓ เช็ก parallax ก่อน ถ้าไม่มี 2D เร็วกว่าและนิ่งกว่า
  • ✗ ใช้ 2D track กับช็อตที่กล้องเดิน แล้ววางของบนพื้นใกล้✓ ของใกล้ต้องการ 3D track หรือ track ที่ระยะเดียวกับของนั้น
  • ✗ คิดว่าขาตั้ง = ไม่มี parallax✓ stabilize แล้วดูของใกล้ทุกครั้ง

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

  • รู้ว่ากล้องหมุนอย่างเดียวหรือมีการเลื่อน
  • stabilize แล้วจุดใกล้กับไกลนิ่งพร้อมกัน (ถ้าใช้ 2D)
  • track อยู่ที่ระยะเดียวกับของที่จะวาง
  • เล่นทั้งช็อตดูว่าของที่วางไม่ลื่น

5 เช็กตัวเอง

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

ช็อตกล้องบนขาตั้ง แพนช้า ๆ ไม่มีการเลื่อน ต้องแปะป้ายบนหินไกล ๆ ใช้อะไรพอ

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

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

คำถามเพิ่ม

1. ช็อต drone บินไปข้างหน้าผ่านภูเขาไกลมาก ต้องเปลี่ยนท้องฟ้า ใช้อะไรน่าจะพอ

2. กล้องเลื่อน 0.1 ม. หินที่ 5 ม. กับภูเขาที่ 120 ม. ห่างกันราวกี่พิกเซล (f ≈ 622)

ตัวเลขมาจากไหน: ฉากสร้างใหม่ในเบราว์เซอร์จาก plate ทะเลทรายและ depth pass จาก Blender (กล้อง 35 มม. เซนเซอร์ 36 มม. สูง 1.6 ม. ก้ม 4°) ตัวเลข parallax คำนวณจากสูตร pinhole: เลื่อนกล้อง T ม. จุดที่ลึก Z ม. เลื่อน ≈ 622·T/Z px ในเฟรมกว้าง 640 การแยกชั้น, ค่า "stretch", ตาข่ายความลึก และ clean plate อัตโนมัติ เป็นแบบสอนหลักการ (ขอบวัตถุและการลบหินทำแบบง่าย) ไม่ใช่ผลจาก Nuke