1 อธิบาย
สลิงเป็นเส้นบาง ๆ แต่สิ่งที่อยู่ข้างหลังเปลี่ยนไปตลอดแนว ทั้งท้องฟ้า แนวเขา และทราย การ fill จากสองฝั่งตามแสงได้ การ clone จากข้าง ๆ เก็บ grain ได้ แต่แต่ละวิธีพังกันคนละจุด
สลับวิธีลบสลิงและ “แถบเกินสลิงข้างละ” แล้วกด Play ดูท้องฟ้า ภาพซูมในกรอบเหลืองตรงแนวขอบเขา และทราย viewer แบบ high-pass (grain) โชว์ว่า grain หายไปตรงไหน ส่วนตัวเลขบอก “สลิงเหลือ” กับ “grain ที่ขยับ” ของแต่ละช่วง: ท้องฟ้า แนวขอบเขา เขาและทราย
split: LF = blur(fill), HF = beside − blur(beside), out = LF + HF2 ลงมือลอง
ลบสลิงทั้งสองเส้น: ทุกช่วงเหลือไม่เกิน 25% และ grain ที่ขยับอยู่ระหว่าง 0.65–1.35×
ดูแนวขอบเขาในภาพซูม และดูทรายใน view แบบ high-pass วิธีที่ผ่านช่วงหนึ่งอาจตกอีกช่วง ปรับแถบเกินสลิงคู่กันไปด้วย
3 เจาะลึก
สามวิธี สามจุดอ่อน
สลิงเส้นยาวในฉากนี้วิ่งราว 502 px ผ่านท้องฟ้า แนวเขา และทราย แต่ละช่วงต้องการคนละอย่าง ท้องฟ้าต้องการ grain แนวเขาต้องการขอบที่ไม่เลื่อน ทรายต้องการ texture
| วิธี | ได้อะไร | พังตรงไหน |
|---|---|---|
| fill จากสองฝั่ง | แสงและขอบที่ตัดผ่าน | ไม่มี grain เห็นเป็นเส้นตอนเล่น ทรายเรียบเกิน |
| clone จากข้าง ๆ | grain และ texture ที่ขยับทุกเฟรม | ขอบที่ไม่ได้วิ่งไปทางเดียวกับ offset ของ clone เลื่อน แนวเขาเป็นรอยบาก |
| fill + clone detail | low จาก fill, detail จากข้าง ๆ | ถ้า blur ของการแยกใหญ่เกิน แสงจะรั่วเข้าชั้น detail |
แถบเกินสลิง: กว้างพอคลุมขอบนุ่ม
สลิงมีขอบ anti-aliased ที่จางลงทีละนิด ถ้า band แคบเกิน ขอบจาง ๆ นี้จะเหลือเป็นเส้นบาง ๆ ถ้า band กว้างเกินไปมาก fill ต้องเดาข้ามพื้นที่ใหญ่ และแนวเขาจะงอ
ความกว้างสลิงไม่เท่ากันตลอดเส้น ราว 3.3 px ตรงที่ออกจากเสา และราว 0.8 px ที่หมุดบนพื้น band ที่พอดีปลายหนึ่งอาจไม่พอดีอีกปลาย
ใช้ view แบบ contrast ไล่ดูทั้งเส้น ขอบที่เหลือจะโผล่ชัดกว่า view ปกติ
แยกความถี่: เอาส่วนดีของทั้งสองวิธี
แยกภาพเป็นสองชั้น LF คือภาพที่ blur แล้ว HF คือภาพเดิมลบด้วย blur ของมัน รวมสองชั้นกลับต้องได้ภาพเดิมเป๊ะ ตรวจได้ด้วย difference
เอา LF จาก fill เพราะ fill ตามแสงและแนวเขาได้ แล้วเอา HF จาก plate ข้าง ๆ สลิง เพราะมี grain และ texture จริง ขนาด blur ควรราวขนาด detail ที่อยากให้อยู่ในชั้น HF ถ้าใหญ่เกิน แสงจะรั่วเข้าชั้น HF แล้วถูกคัดลอกข้ามมาด้วย
- 1fill → Blur = LF
- 2plate ข้าง ๆ − Blur = HF
- 3LF + HF
- 4วางในแถบด้วย matte
ตัดสินตอนเล่น ไม่ใช่ตอนนิ่ง
บริเวณที่ paint หรือ fill ต้องมี grain ที่ตรงกับ plate ไม่อย่างนั้นจะเห็นเป็นจุดเรียบตอนเคลื่อนไหว เฟรมนิ่งซ่อนปัญหานี้ได้ดีมาก
view แบบ high-pass โชว์แค่ texture และ grain ถ้าแถบตรงสลิงเป็นสีเทาเรียบ ๆ ไม่มีเม็ดเหมือนข้าง ๆ แปลว่า grain หาย ถ้าไม่เอา HF จากข้าง ๆ ก็ต้อง regrain ทับ fill
กด Play แล้วมองท้องฟ้าเฉย ๆ สักรอบ ตาจะจับเส้นที่ไม่มี grain ได้เอง
4 ในงานจริง
ทำใน Nuke
- Roto: วาดรูปทรงบาง ๆ ตามสลิงแต่ละเส้น ให้กว้างเกินขอบนุ่มของสลิงนิดหนึ่ง ใช้เป็น matte ของบริเวณที่จะเติม
- Inpaint: ตั้ง Fill Region เป็น Matte Alpha (alpha ของ matte ที่ต่อเข้ามา) เพื่อเติมจากรอบ ๆ ส่วน Detail (Source, Amount) ใช้เติมเนื้อภาพกลับเข้าไปใน fill
- Blur ผล fill = LF จากนั้น Transform สำเนา plate ขยับไปด้านข้างไม่กี่ px แล้ว Merge (from) ลบ Blur ของมันออก = HF
- Merge (plus) LF กับ HF แล้ว Keymix ลงบน plate โดยใช้ matte จาก Roto
- RotoPaint (clone) แก้จุดที่ split ยังไม่เนียน เช่นตรงขอบเขาพอดี
- ถ้าไม่ได้เอา HF จากข้าง ๆ ใส่ Grain2 ทับ fill ค่า seed เริ่มต้นเป็นค่าคงที่ grain จะนิ่ง ต้อง animate seed และ maskgrain เปิดอยู่โดยปริยาย จะใส่ grain เฉพาะที่ input มี alpha
พลาดบ่อย → แก้ยังไง
- ✗ band แคบเกิน ขอบ anti-aliased ของสลิงเหลือเป็นเส้นจาง ๆ✓ ขยาย band ให้คลุมขอบนุ่ม แล้วไล่ดูทั้งเส้นด้วย view แบบ contrast
- ✗ band กว้างเกินไปมาก แนวเขางอ✓ ให้ band เลยขอบสลิงแค่พอ fill จะได้ไม่ต้องเดาข้ามพื้นที่ใหญ่
- ✗ fill เรียบแล้วไม่ regrain ดูเฟรมนิ่งแล้วผ่าน✓ เอา HF จากข้าง ๆ หรือ regrain แล้วตัดสินตอนเล่นช็อต
- ✗ clone ข้ามเส้นขอบเขา ขอบเป็นรอยบากหรือขั้นบันได✓ ให้ fill ดูแล LF ตรงที่ตัดขอบ แล้วเอาแค่ detail จากข้าง ๆ
- ✗ ใช้ Grain2 ด้วย seed เริ่มต้น grain นิ่งทุกเฟรม✓ animate seed ให้ grain เปลี่ยนทุกเฟรม
เช็กก่อนส่งช็อต
- ไม่เหลือขอบสลิงตลอดเส้น ทั้งปลายที่เสาและปลายที่หมุด
- แนวเขาตรงที่สลิงตัดผ่านไม่งอ ไม่มีรอยบาก ดูทั้งซูมและ viewer ที่ดันแล้ว
- เล่นช็อตแล้วไม่เห็นเส้นเรียบบนท้องฟ้า grain ขยับทุกเฟรม
- view แบบ high-pass: texture ในแถบเท่ากับข้าง ๆ
- LF + HF รวมกลับแล้ว difference กับภาพเดิมเป็น 0
5 เช็กตัวเอง
fill จากสองฝั่งบนท้องฟ้าดูเนียนในเฟรมนิ่ง พอเล่นช็อตจะเห็นอะไร
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. clone จากข้าง ๆ ตรงที่สลิงตัดแนวเขา ผลที่มักเห็นคืออะไร
2. ตั้ง Blur ของการแยกความถี่ใหญ่เกินไป จะเกิดอะไร
ตัวเลขมาจากไหน: ภาพเป็นเรนเดอร์ Blender ของเราเอง ทั้งแบบมีและไม่มีเสากับสลิง (ตั้งค่าเดียวกัน) เส้นสลิงได้จากการฉายปลายสลิง 3D ผ่านกล้อง Blender สลิงในภาพนี้ไม่มีเงา (ทำให้ง่ายขึ้น) fill, clone และ split เป็นแบบสอนหลักการที่เขียนแบบต่อพิกเซลสำหรับหน้านี้ (ไม่ได้รัน node ของ Nuke) grain เติมในเบราว์เซอร์ คะแนนเทียบภาพแบบ low-pass กับเรนเดอร์สะอาด ซึ่งงานจริงไม่มีให้เทียบ และเกณฑ์เป็นของเราเอง