Blender VSE ที่เผลอได้ใช้งานโดยบังเอิญ
(aras-p.info)มีส่วนร่วมกับ Blender VSE โดยบังเอิญ
- เมื่อสองเดือนก่อน เริ่มส่งโค้ดเล็กน้อยเข้าไปมีส่วนร่วมกับ VideoSequence Editor (VSE) ของ Blender
- รู้ไหมว่า Blender มีเครื่องมือตัดต่อวิดีโอด้วย? ฉันก็ไม่รู้เหมือนกัน
- ทั้งที่ไม่รู้อะไรเลยเกี่ยวกับการตัดต่อวิดีโอ, ไทม์ไลน์, ซีเควนเซอร์, การเกรดสี, ffmpeg, การมิกซ์เสียง ฯลฯ ก็ยังเริ่มมาจับงาน VSE
เริ่มทำงาน VSE แบบ 'บังเอิญ' ได้อย่างไร?
- ไปงานประชุม Unite 2023 ของ Unity ที่อัมสเตอร์ดัม แล้วตัดสินใจแวะไปเยี่ยมเพื่อน ๆ
- หลังจบงานประชุม ได้ไปเยี่ยมสำนักงานใหญ่ของ Blender อยู่ครึ่งวัน และ Francesco กับ Sergey ก็ถามว่าสนใจจะมีส่วนร่วมกับ VSE ไหม
- จากนั้นก็เลยเริ่มทำงานกับ VSE
ปรับปรุงการวาดไทม์ไลน์
- ไทม์ไลน์ของ VSE อยู่ด้านล่างของภาพ และมองเห็น "strip" ได้ประมาณ 3000 รายการพร้อมกัน
- การเลื่อนและขยับไทม์ไลน์ ทำให้อินเทอร์เฟซผู้ใช้อัปเดตได้ราว 15 เฟรม
- ตอนนี้อัปเดตได้มากกว่า 60 เฟรมแล้ว (#115311)
Scopes
- VSE สามารถแสดง "scopes" ทั่วไปอย่างฮิสโตแกรม, waveform, และ vectorscope ได้
- มีการปรับปรุงในส่วนของฮิสโตแกรม, waveform, และ vectorscope
ส่วนของ ffmpeg
- Blender ใช้ไลบรารี ffmpeg เป็นหลักสำหรับการอ่านและเขียนเสียง/วิดีโอ
- ใช้
libswscaleเพื่อแปลงเฟรมภาพยนตร์ RGB↔YUV - ตอนนี้ใช้ multithreading เพื่อเร่งขั้นตอนการแปลง RGB→YUV ให้เร็วขึ้น (#116008)
การรีแซมเพิลเสียง
- ภายในไลบรารีเสียง (Audaspace) ใช้เวลามากกับการรีแซมเพิลข้อมูลคลิปเสียง
- ได้เพิ่มการตั้งค่าคุณภาพการรีแซมเพิลระดับ "กลาง" แบบใหม่ใน Audaspace และนำไปใช้ตอนเรนเดอร์ (#116059)
การแปลงภาพและการกรอง
- ใน VSE สามารถแปลงภาพ, ภาพยนตร์, ข้อความ, ซีน ฯลฯ ได้: จัดตำแหน่ง, หมุน, ปรับขนาด, และใช้การครอปเพิ่มเติม
- การแปลงเหล่านี้ทั้งหมดทำบน CPU และเดิมก็รองรับ multithreading อยู่แล้ว
แก้ไข "ข้อผิดพลาดครึ่งพิกเซล"
- ในโค้ดมี "ข้อผิดพลาดครึ่งพิกเซล" อยู่หลายจุด ซึ่งในหลายกรณีก็หักล้างกันเองหรือมองไม่เห็น
- ตอนนี้ข้อผิดพลาดเหล่านี้ถูกแก้แล้ว (#116628)
ขอบความโปร่งใสรอบ ๆ Bilinear filtering
- มีเพียง Bilinear filtering เท่านั้นที่เพิ่มความโปร่งใสรอบภาพผลลัพธ์
- ตอนนี้ได้เอา "การ blend เข้ากับความโปร่งใส" ออกจากโค้ด Bilinear filtering แล้ว (#117717)
เพิ่มและเปลี่ยนตัวกรอง
- เดิมการแปลง strip ของ VSE ไม่มีตัวเลือก Cubic filtering
- ตอนนี้ใน VSE สามารถเลือก Cubic filtering ได้สองแบบ (#117100, #117517)
- เพิ่มตัวเลือกตัวกรอง "Auto" และตั้งให้เป็นค่าเริ่มต้น (#117853)
ปรับแต่งประสิทธิภาพของเอฟเฟกต์ VSE
- ในชุดข้อมูลภาพยนตร์จริงไม่ได้ใช้เอฟเฟกต์มากนัก แต่ก็พบจุดที่น่าปรับปรุงในโค้ดและทำการ optimize
- การปรับปรุงส่วนใหญ่ทำผ่าน multithreading
ทั้งหมดนี้มีความหมายอย่างไรกับเวลาเรนเดอร์?
- บนชุดข้อมูลสามชุดจาก Blender Studio เวลาเรนเดอร์สุดท้ายของภาพยนตร์ VSE เร็วขึ้นราว 2 เท่าบนพีซี
ความคิดเกี่ยวกับกระบวนการทำงานจริง
- ไม่แน่ใจว่างานทั้งหมดข้างต้นนับเป็น "ปริมาณงานที่ดี" สำหรับความพยายามแบบพาร์ตไทม์สองเดือนหรือไม่
- แต่สำหรับนักพัฒนา (ฉัน) ที่ไม่รู้อะไรเลยทั้งเรื่องโดเมนนี้และโค้ดเบส ก็ถือว่าออกมาดีทีเดียว
- มี pull request ทั้งหมด 37 รายการที่ทำเสร็จ ผ่านการรีวิว และถูกรวมเข้าระบบแล้ว
อะไรต่อจากนี้?
- Blender 4.1 เข้าสู่สถานะเบต้าแล้ว และในเชิงฟีเจอร์ถือว่า "เสร็จสมบูรณ์"
- งานของ Blender 4.2 เริ่มต้นขึ้นแล้ว และตั้งใจจะทำงานกับ VSE ต่อไป
GN⁺ ความเห็น:
- บทความนี้แบ่งปันการปรับปรุงและกระบวนการพัฒนา VSE ของ Blender พร้อมแสดงให้เห็นว่าการมีส่วนร่วมในโครงการโอเพนซอร์สมีความสำคัญเพียงใด
- เน้นย้ำว่านักพัฒนาสามารถสร้างผลงานที่มีความหมายได้แม้ในพื้นที่ที่ไม่ใช่ความเชี่ยวชาญของตน จึงเป็นข้อความเชิงบวกที่ชวนให้กล้ารับความท้าทายใหม่ ๆ
- บทความนี้ตอกย้ำความสำคัญของการ optimize และการเพิ่มประสิทธิภาพในการพัฒนาซอฟต์แวร์ พร้อมยกตัวอย่างอย่างเป็นรูปธรรมว่าการปรับปรุงเหล่านี้ส่งผลต่อประสบการณ์ผู้ใช้และเวลาเรนเดอร์จริงอย่างไร
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News