หน้าแรก · Lab · Paint และ cleanup

PC2 ลบสลิง (wire removal)

fill, clone หรือแยกความถี่ ให้สลิงหายโดยไม่ทิ้งเส้นเรียบไว้

Paint และ cleanup · ~8 นาที · ฟรี

1 อธิบาย

สลิงเป็นเส้นบาง ๆ แต่สิ่งที่อยู่ข้างหลังเปลี่ยนไปตลอดแนว ทั้งท้องฟ้า แนวเขา และทราย การ fill จากสองฝั่งตามแสงได้ การ clone จากข้าง ๆ เก็บ grain ได้ แต่แต่ละวิธีพังกันคนละจุด

สลับวิธีลบสลิงและ “แถบเกินสลิงข้างละ” แล้วกด Play ดูท้องฟ้า ภาพซูมในกรอบเหลืองตรงแนวขอบเขา และทราย viewer แบบ high-pass (grain) โชว์ว่า grain หายไปตรงไหน ส่วนตัวเลขบอก “สลิงเหลือ” กับ “grain ที่ขยับ” ของแต่ละช่วง: ท้องฟ้า แนวขอบเขา เขาและทราย

split: LF = blur(fill), HF = beside − blur(beside), out = LF + HF

2 ลงมือลอง

ลบสลิงทั้งสองเส้น: ทุกช่วงเหลือไม่เกิน 25% และ grain ที่ขยับอยู่ระหว่าง 0.65–1.35×

ดูแนวขอบเขาในภาพซูม และดูทรายใน view แบบ high-pass วิธีที่ผ่านช่วงหนึ่งอาจตกอีกช่วง ปรับแถบเกินสลิงคู่กันไปด้วย

SkyVFX Lab · PC2interactive · 1001

3 เจาะลึก

สามวิธี สามจุดอ่อน

สลิงเส้นยาวในฉากนี้วิ่งราว 502 px ผ่านท้องฟ้า แนวเขา และทราย แต่ละช่วงต้องการคนละอย่าง ท้องฟ้าต้องการ grain แนวเขาต้องการขอบที่ไม่เลื่อน ทรายต้องการ texture

วิธีได้อะไรพังตรงไหน
fill จากสองฝั่งแสงและขอบที่ตัดผ่านไม่มี grain เห็นเป็นเส้นตอนเล่น ทรายเรียบเกิน
clone จากข้าง ๆgrain และ texture ที่ขยับทุกเฟรมขอบที่ไม่ได้วิ่งไปทางเดียวกับ offset ของ clone เลื่อน แนวเขาเป็นรอยบาก
fill + clone detaillow จาก 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 แล้วถูกคัดลอกข้ามมาด้วย

  1. 1fill → Blur = LF
  2. 2plate ข้าง ๆ − Blur = HF
  3. 3LF + HF
  4. 4วางในแถบด้วย matte

ตัดสินตอนเล่น ไม่ใช่ตอนนิ่ง

บริเวณที่ paint หรือ fill ต้องมี grain ที่ตรงกับ plate ไม่อย่างนั้นจะเห็นเป็นจุดเรียบตอนเคลื่อนไหว เฟรมนิ่งซ่อนปัญหานี้ได้ดีมาก

view แบบ high-pass โชว์แค่ texture และ grain ถ้าแถบตรงสลิงเป็นสีเทาเรียบ ๆ ไม่มีเม็ดเหมือนข้าง ๆ แปลว่า grain หาย ถ้าไม่เอา HF จากข้าง ๆ ก็ต้อง regrain ทับ fill

กด Play แล้วมองท้องฟ้าเฉย ๆ สักรอบ ตาจะจับเส้นที่ไม่มี grain ได้เอง

4 ในงานจริง

ทำใน Nuke

  1. Roto: วาดรูปทรงบาง ๆ ตามสลิงแต่ละเส้น ให้กว้างเกินขอบนุ่มของสลิงนิดหนึ่ง ใช้เป็น matte ของบริเวณที่จะเติม
  2. Inpaint: ตั้ง Fill Region เป็น Matte Alpha (alpha ของ matte ที่ต่อเข้ามา) เพื่อเติมจากรอบ ๆ ส่วน Detail (Source, Amount) ใช้เติมเนื้อภาพกลับเข้าไปใน fill
  3. Blur ผล fill = LF จากนั้น Transform สำเนา plate ขยับไปด้านข้างไม่กี่ px แล้ว Merge (from) ลบ Blur ของมันออก = HF
  4. Merge (plus) LF กับ HF แล้ว Keymix ลงบน plate โดยใช้ matte จาก Roto
  5. RotoPaint (clone) แก้จุดที่ split ยังไม่เนียน เช่นตรงขอบเขาพอดี
  6. ถ้าไม่ได้เอา 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 เช็กตัวเอง

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

fill จากสองฝั่งบนท้องฟ้าดูเนียนในเฟรมนิ่ง พอเล่นช็อตจะเห็นอะไร

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

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

คำถามเพิ่ม

1. clone จากข้าง ๆ ตรงที่สลิงตัดแนวเขา ผลที่มักเห็นคืออะไร

2. ตั้ง Blur ของการแยกความถี่ใหญ่เกินไป จะเกิดอะไร

ตัวเลขมาจากไหน: ภาพเป็นเรนเดอร์ Blender ของเราเอง ทั้งแบบมีและไม่มีเสากับสลิง (ตั้งค่าเดียวกัน) เส้นสลิงได้จากการฉายปลายสลิง 3D ผ่านกล้อง Blender สลิงในภาพนี้ไม่มีเงา (ทำให้ง่ายขึ้น) fill, clone และ split เป็นแบบสอนหลักการที่เขียนแบบต่อพิกเซลสำหรับหน้านี้ (ไม่ได้รัน node ของ Nuke) grain เติมในเบราว์เซอร์ คะแนนเทียบภาพแบบ low-pass กับเรนเดอร์สะอาด ซึ่งงานจริงไม่มีให้เทียบ และเกณฑ์เป็นของเราเอง