1 อธิบาย
patch ที่ paint ไว้ต้องขยับไปกับ plate ถ้าใช้ 2D track หรือ corner pin มันจะขยับเป็นแผ่นเรียบแผ่นเดียว แต่ถ้าสิ่งที่ patch ปิดอยู่มีหลายความลึก เมื่อกล้องเลื่อนออกข้าง แต่ละส่วนจะเลื่อนไม่เท่ากัน patch จึงไถล
เสาอยู่ห่างกล้องราว 5.9 ม. และ patch ใต้เสาครอบทรายตั้งแต่ราว 6 ถึง 27 ม. เพราะทรายด้านหลังเสาทอดยาวออกไปไกล เลื่อน “กล้องเลื่อนข้าง” แล้วสลับ “วิธีทำ patch” ดูทรายในกรอบประ (ที่เสาเคยอยู่) กับภาพซูมในกรอบเหลือง และอ่านค่าคลาดเป็น px กับนาทีทำงานของแต่ละวิธี ว่าวิธีไหนพังที่ระยะเท่าไร
shift (px) = f · slide / depth2 ลงมือลอง
ช็อตเลื่อน 1.5 ม.: เลือกวิธีที่ถูกที่สุดที่ patch คลาดน้อยกว่า 0.5 px
ตั้งการเลื่อนไว้ที่ 1.5 ม. ก่อน แล้วลองทีละวิธี ดูทรายไกลและเนินทรายด้วย ไม่ใช่แค่ทรายที่โคนเสา แล้วเทียบนาทีทำงานเฉพาะวิธีที่คลาดไม่เกิน 0.5 px
3 เจาะลึก
ทำไม patch แผ่นเดียวถึงไถล
เมื่อกล้องเลื่อนออกข้าง จุดในภาพเลื่อนไปตามสัดส่วน 1 / ความลึก ของใกล้เลื่อนมาก ของไกลเลื่อนน้อย ถ้า patch ปิดของที่อยู่หลายความลึก ไม่มีการขยับแบบ 2D แบบไหนที่ตรงกับทุกส่วนพร้อมกันได้
ในฉากนี้จุด track อยู่บนทรายข้างโคนเสา ลึกราว 5.9 m แต่ที่ slide 1.5 m patch ใต้เสาครอบทรายตั้งแต่ราว 6 ถึง 27 m ทรายแต่ละระยะจึงเลื่อนไม่เท่ากัน ความต่างนี้คือสิ่งที่ patch error วัด
ส่วนต่าง ๆ ของวัตถุเดียวกันที่เลื่อนเร็วไม่เท่ากัน คือสัญญาณว่าต้องใช้ 3D
สี่วิธีขยับเฟรมที่ paint
เริ่มจากวิธีที่ถูกที่สุดที่น่าจะใช้ได้ แล้วค่อยขยับขึ้นเมื่อมันพัง ที่ slide 1.5 m 2D track บนทรายข้างโคนเสาพลาดเฉลี่ยราว 65 px และ corner pin บนระนาบพื้นพลาดราว 7.3 px เพราะเนินทรายไม่ได้อยู่บนระนาบเดียว
| วิธี | ยึดได้ | พังเมื่อ |
|---|---|---|
| 2D track (move) | ความลึกเดียว กล้องขยับน้อย | มีหลายความลึกหรือกล้องเลื่อนไกล |
| Planar / corner pin | ผิวเรียบหนึ่งผิว แม้กล้องขยับแบบ 3D | พื้นไม่ใช่ระนาบเดียว เช่นเนินทรายหรือหิน |
| Project บน geometry | ทุกความลึกที่ geometry มีรูปตรง | กล้องเห็นส่วนที่เฟรม paint ไม่เคยเห็น |
| Paint ทุกเฟรม | ได้ แต่แพงมาก | ช็อตยาว งานบานและ patch boil |
Project เฉพาะ patch ผ่านกล้องที่ track
paint บนเฟรมเดียว เอาเฉพาะส่วนที่ paint (output เป็น alpha แล้ว premult) ไป project ผ่านกล้องที่ FrameHold ไว้ที่เฟรมนั้น ลงบน Card หรือ geometry ที่มีรูปทรงใกล้ของจริง แล้ว render ด้วยกล้องที่ขยับตามช็อต
กล้องที่ FrameHold ทำหน้าที่เหมือน reference frame ของ tracker ถ้าไม่ hold ภาพ paint จะเลื่อนตามกล้องไปเรื่อย ๆ และไม่ติดกับฉาก
- 1RotoPaint เฟรม N
- 2alpha + premult
- 3Project3D (กล้อง hold ที่ N)
- 4Card / geometry
- 5ScanlineRender (กล้องช็อต)
- 6Merge over plate
ขีดจำกัดของ projection
อย่า project ทั้ง plate และอย่าใช้ Card แผ่นเดียวปิดทั้งฉาก plate จะนุ่มลงและภาพจะยืดจนเสียมิติ ใช้ Card แยกตามผิวหรือ geometry ที่ตรงกับรูปทรง
projection ยังมีช่องโหว่ตรงที่กล้องเห็นสิ่งที่เฟรม paint ไม่เคยเห็น และ patch หนึ่งอาจยึดได้แค่ช่วงหนึ่งของช็อต ให้ทำ patch ใหม่จากเฟรมที่เห็นส่วนนั้น แล้ว dissolve ต่อกัน ถ้ากล้อง push in ให้ project จากเฟรมที่ใกล้หรือซูมเข้ามากที่สุด เฟรมอื่นจะแค่ย่อภาพ paint
ภาพนิ่งภาพเดียวตาม parallax ของกล้องที่เลื่อนไกลไม่ได้ ถ้าไม่มี geometry รองรับ
4 ในงานจริง
ทำใน Nuke
- ลองแบบถูกก่อน: Tracker → CornerPin2D หรือ PlanarTracker (NukeX) บนพื้น แล้วดูทรายไกลและเนินทรายตลอดช็อต
- ถ้าไถล: CameraTracker (NukeX) หา camera แล้ววาง Card หรือ geometry ง่าย ๆ ให้ตรงกับพื้นและเนินทราย
- RotoPaint บนเฟรมที่ใกล้หรือซูมเข้ามากที่สุด ตั้ง output เป็น alpha แล้ว Premult ให้เหลือเฉพาะ patch
- ต่อ FrameHold ที่กล้องสำหรับ project ตั้งเป็นเฟรมที่ paint
- Project3D → Card / geometry → ScanlineRender ด้วยกล้องช็อตที่ไม่ hold
- Merge (over) ผลลัพธ์ลงบน plate เดิม
พลาดบ่อย → แก้ยังไง
- ✗ corner pin patch ที่มีหินหรือขั้นอยู่ข้างใน✓ ส่วนที่ยื่นจะไถล ใช้ projection บน geometry ที่มีรูปทรงนั้น
- ✗ project ทั้ง plate แทนเฉพาะส่วนที่ paint✓ ตั้ง RotoPaint ให้ output เป็น alpha แล้ว premult และ project เฉพาะ patch
- ✗ ลืม FrameHold กล้องที่ใช้ project✓ hold ไว้ที่เฟรมที่ paint ไม่งั้นภาพ paint จะเลื่อนตามกล้อง
- ✗ paint ทุกเฟรมในช็อตที่กล้องเลื่อนไกล✓ paint เฟรมเดียวแล้วให้ track หรือ projection ขยับ งานน้อยลงและไม่ boil
- ✗ ใช้ Card แผ่นเดียวปิดทั้งฉาก✓ แยก Card ตามผิว หรือใช้ geometry ที่ตรงกับรูปทรง
เช็กก่อนส่งช็อต
- patch ไม่ไถลทั้งบนทรายใกล้และทรายไกล ตลอดช็อต
- ดูหัวและท้ายช็อต ตรงที่กล้องเลื่อนไปไกลที่สุด
- กล้องที่ใช้ project ถูก FrameHold ที่เฟรมที่ paint
- project เฉพาะ patch plate นอก patch ยังคมเท่าเดิม
- ไม่มีช่องโหว่ตรงที่กล้องเห็นสิ่งที่เฟรม paint ไม่เห็น
5 เช็กตัวเอง
ทำ corner pin ให้ patch บนพื้น ซึ่งปิดทั้งทรายและหินบางส่วน แล้วกล้องเลื่อนออกข้าง จะเห็นอะไร
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. ต่อ Project3D แล้วแต่ไม่ได้ FrameHold กล้องที่ใช้ project จะเห็นอะไร
2. กล้อง push in ตลอดช็อต ควร paint และ project จากเฟรมไหน
ตัวเลขมาจากไหน: ภาพที่เลื่อนแล้วคือเรนเดอร์ clean ของเราที่ re-project ผ่าน depth pass ของมันเองในเบราว์เซอร์ (แบบสอนหลักการ เหมือนในชุด 2.5D & Projection) ค่าคลาดคำนวณจาก depth pass ด้วยสูตร pinhole (focal length ราว 622 px) โดย project และ paint ทุกเฟรมถือว่าตรงพอดีในแบบจำลองนี้ นาทีทำงานเป็นค่าประมาณคร่าว ๆ ของเราสำหรับช็อต 24 เฟรม ไม่ใช่ตัวเลขของอุตสาหกรรม