1 อธิบาย
กล้องคือกล่องมืดที่มีรูเล็ก ๆ แสงจากฉากวิ่งผ่านรูไปตกบนเซนเซอร์ด้านหลัง ระยะจากรูถึงเซนเซอร์คือ focal length ภาพบนเซนเซอร์กลับหัว และกรอบสี่เหลี่ยมของเซนเซอร์กำหนดว่าเห็นได้กว้างแค่ไหน (FOV)
มีสามเหลี่ยมคล้ายกันสองอัน: เซนเซอร์ ÷ focal = เฟรมที่ระยะหุ่น ÷ ระยะ เพิ่ม focal เซนเซอร์ถอยลึกลง กรวยแคบลง เปลี่ยนเป็นเซนเซอร์เล็ก กรวยก็แคบลงเหมือนกัน (crop factor) ถ้ามือถือมีเซนเซอร์เอียง ลองกดปุ่มแล้วเล็งกล้องด้วยการเอียงเครื่อง
FOV = 2 · atan(sensor ÷ (2 · focal)) · sensor ÷ focal = frame ÷ distance2 ลงมือลอง
บทนี้ไม่มีโจทย์ ลองเปลี่ยนเซนเซอร์แล้วปรับ focal ให้ภาพในกรอบเล็กเหมือนเดิม
3 เจาะลึก
กล้องคือรูเข็มกับแผ่นรับแสง
ในโปรแกรม 3D กล้องเป็น pinhole ในอุดมคติ: ทุกเส้นแสงผ่านจุดเดียว แล้วตกบนเซนเซอร์ที่อยู่หลังจุดนั้นเป็นระยะเท่ากับ focal ไม่มีชัดตื้น ไม่มี distortion จนกว่าจะเพิ่มเอง
กรวยที่ออกจากรูไปจนถึงขอบเซนเซอร์ (ด้านกลับ) คือ frustum ทุกอย่างในกรวยนี้จะอยู่ในภาพ ของนอกกรวยไม่ถูกเรนเดอร์
สามเหลี่ยมคล้ายสองอัน
ด้านหลังรู: ครึ่งเซนเซอร์กับ focal ด้านหน้ารู: ครึ่งเฟรมกับระยะ มุมเดียวกัน จึงได้ เซนเซอร์ ÷ focal = เฟรม ÷ ระยะ และ FOV = 2·atan(เซนเซอร์ ÷ 2·focal)
| focal | hFOV บน 36 มม. | เฟรมกว้างที่ 6 ม. |
|---|---|---|
| 18 mm | 90.0° | 12.0 m |
| 35 mm | 54.4° | 6.17 m |
| 50 mm | 39.6° | 4.32 m |
| 135 mm | 15.2° | 1.60 m |
crop factor
crop factor = ความกว้าง full frame ÷ ความกว้างเซนเซอร์ Super 35 กว้าง 24.89 มม. → crop ≈ 1.45 Micro 4/3 กว้าง 17.3 มม. → crop ≈ 2.08 เลนส์ 35 มม. บน Super 35 ให้มุมเท่ากับราว 50 มม. บน full frame แต่เลนส์ยังเป็น 35 มม. เหมือนเดิม
สำหรับ VFX ตัวเลขที่ต้องการคือขนาดพื้นที่เซนเซอร์ที่บันทึกจริงในโหมดที่ถ่าย (กล้องหลายตัวครอปเมื่อถ่ายบางความละเอียด) ไม่ใช่ชื่อรุ่นของเซนเซอร์
focal ไม่มีความหมายถ้าไม่บอกขนาดเซนเซอร์
pan และ tilt ในมุมมองพระเจ้า
pan หมุนกรวยรอบแกนตั้ง tilt หมุนรอบแกนนอน ตัวกล้องไม่ได้ย้าย ภาพในกรอบเล็กจึงแค่เลื่อน ไม่มีของใกล้–ไกลแยกจากกัน (บท CL6) การเอียงมือถือในห้องนี้ขยับแค่สองแกนนี้
4 ในงานจริง
ทำใน Nuke
- Camera: focal length, horizontal aperture และ vertical aperture คือสามเหลี่ยมในบทนี้ aperture คือขนาดเซนเซอร์เป็นมม.
- Viewer 3D (Tab): เห็น frustum ของกล้องเป็นเส้น ใช้ดูว่ากล้องเล็งไปทางไหนและกว้างแค่ไหน
- Camera: near และ far clipping กำหนดหัวและท้ายของ frustum ของที่อยู่นอกช่วงจะหายจากภาพ
- format ของ ScanlineRender ควรมี aspect เท่ากับ horizontal ÷ vertical aperture ไม่อย่างนั้นภาพจะยืดหรือถูกครอป
พลาดบ่อย → แก้ยังไง
- ✗ ใช้ focal จากกองแต่ปล่อย aperture เป็นค่าเริ่มต้น✓ ใส่ขนาดเซนเซอร์ของกล้องและโหมดที่ถ่ายจริง
- ✗ คิดว่า crop factor เปลี่ยน focal ของเลนส์✓ เลนส์เท่าเดิม แค่เซนเซอร์เก็บภาพได้น้อยลง
- ✗ format ของ render ไม่ตรงกับสัดส่วน aperture✓ ให้ aspect ของ format = horizontal ÷ vertical aperture
เช็กก่อนส่งช็อต
- focal และขนาดเซนเซอร์มาจากแหล่งเดียวกัน
- สัดส่วน aperture ตรงกับ format ของ plate
- near/far ไม่ตัดของที่ต้องเห็น
- มองจาก 3D ว่ากล้องอยู่และเล็งถูกที่
5 เช็กตัวเอง
เปลี่ยนจาก full frame เป็น Super 35 (crop ราว ×1.45) โดยใช้ 35 มม. เหมือนเดิม จะเกิดอะไรขึ้น
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. เซนเซอร์กว้าง 36 มม. ใช้ 36 มม. hFOV เท่าไร
2. อยากได้มุมเท่ากับ 50 มม. บน full frame แต่ใช้ Micro 4/3 (crop ≈ 2.08) ต้องใช้ focal เท่าไร
ตัวเลขมาจากไหน: ความกว้างเซนเซอร์: full frame 36 มม., Super 35 24.89 มม., Micro 4/3 17.3 มม. ครอปเป็น 16:9 ทั้งหมด เซนเซอร์วาดใหญ่ขึ้น 25 เท่าให้มองเห็น การเอียงมือถือเป็นทางเลือก ขยับได้แค่ pan/tilt กล้องเป็นแบบ pinhole ในอุดมคติ (ไม่มี lens distortion) เซนเซอร์กว้าง 36 มม. ครอปเป็น 16:9 (36 × 20.25 มม.) ฉากและหุ่นสร้างด้วยโค้ดใน three.js