RenderFormer: การเรนเดอร์เชิงประสาทบนพื้นฐานเมชสามเหลี่ยมและโกลบอลอิลลูมิเนชัน
(microsoft.github.io)- RenderFormer เป็นไปป์ไลน์การเรนเดอร์เชิงประสาทที่สร้างภาพโดยตรงจากฉากเมชสามเหลี่ยม จุดสำคัญคือรองรับได้ถึง global illumination โดยไม่ต้องฝึกแยกตามแต่ละฉาก
- นิยามการเรนเดอร์ไม่ใช่ขั้นตอนการจำลองทางฟิสิกส์ แต่เป็น sequence-to-sequence transformation ที่แปลงโทเค็นของสามเหลี่ยมและคุณสมบัติการสะท้อนให้เป็นโทเค็นแพตช์พิกเซลขนาดเล็ก
- ไปป์ไลน์แบ่งเป็นขั้นที่ไม่ขึ้นกับมุมมองและขั้นที่ขึ้นกับมุมมอง โดยทั้งสองขั้นใช้ Transformer architecture และเรียนรู้ด้วยข้อจำกัดล่วงหน้าให้น้อยที่สุด
- ขั้นที่ไม่ขึ้นกับมุมมองโมเดล การถ่ายโอนแสง ระหว่างสามเหลี่ยม ส่วนขั้นที่ขึ้นกับมุมมองจะแปลงโทเค็นกลุ่มรังสีให้เป็นค่าพิกเซล
- ตัวอย่างที่เปิดเผยครอบคลุมแสง วัสดุ ความซับซ้อนทางเรขาคณิต แอนิเมชัน และการจำลองฟิสิกส์ โดยเรนเดอร์ โดยไม่ใช้ rasterization และ ray tracing
โครงสร้างการเรนเดอร์ของ RenderFormer
- RenderFormer เป็นไปป์ไลน์การเรนเดอร์เชิงประสาทที่เรนเดอร์ภาพโดยตรงจากการแทนฉากแบบสามเหลี่ยม
- รวมเอฟเฟกต์ global illumination ทั้งหมดไว้ด้วย แต่ไม่ต้องอาศัยการฝึกหรือการปรับละเอียดแยกตามแต่ละฉาก
- กระบวนการเรนเดอร์ประกอบเป็น sequence-to-sequence transformation
- อินพุตคือซีเควนซ์โทเค็นสามเหลี่ยมที่มีคุณสมบัติการสะท้อนรวมอยู่ด้วย
- เอาต์พุตคือซีเควนซ์โทเค็นที่แทนแพตช์พิกเซลขนาดเล็ก
- เป็นไปป์ไลน์ 2 ขั้นที่แยกการคำนวณการถ่ายโอนแสงที่ไม่ขึ้นกับมุมมองออกจากการสร้างพิกเซลจริง
- ขั้นที่ไม่ขึ้นกับมุมมอง: โมเดลการถ่ายโอนแสงระหว่างสามเหลี่ยม
- ขั้นที่ขึ้นกับมุมมอง: แปลงโทเค็นกลุ่มรังสีให้เป็นค่าพิกเซล โดยมีซีเควนซ์สามเหลี่ยมจากขั้นที่ไม่ขึ้นกับมุมมองคอยชี้นำ
- ทั้งสองขั้นอิง Transformer architecture และเรียนรู้ด้วยข้อจำกัดล่วงหน้าให้น้อยที่สุด
- กระบวนการเรนเดอร์ไม่ใช้ rasterization หรือ ray tracing
ผลลัพธ์ที่เผยแพร่และเอกสารอ้างอิง
- แกลเลอรีการเรนเดอร์แสดงสภาพแสง วัสดุ และความซับซ้อนทางเรขาคณิตที่หลากหลาย โดยไม่ต้องฝึกหรือปรับละเอียดแยกตามฉาก
- Cornell Box, Stanford Bunny in Cornell Box, Lucy Statue, Utah Teapot
- Composed Scene, Constant Width Bodies, Crystals, Fox in the Wild
- Horse and Heart, RenderFormer Logo, Interior Room, Shader Ball, Tree, Veach MIS
- มี reference images สำหรับการเปรียบเทียบรายละเอียด
- มีสื่อวิดีโอเพิ่มเติมเป็น uncompressed videos และ reference videos
-
ฉากทีเซอร์
- สามารถดูการหมุนวัตถุ การเปลี่ยนแสง และการปรับวัสดุได้
- Cornell Box Roughness Adjustment
- Bunny Roughness Adjustment
- Tree Light Change
- Tree Object Rotation
- Fancy Scene Rotation
- Composed Scene View Change
-
แอนิเมชันและการจำลอง
- ตัวอย่างการเรนเดอร์แอนิเมชันรวมถึง Cascade Cube Animation, Animated Crab, Gyroscope Motion, Animated Character, Marching Cubes Animation, Robot Animation
- ตัวอย่างการจำลองบนพื้นฐานฟิสิกส์รวมถึง Bowling Ball Physics Simulation, Rotating Box Dynamics, Constant Width Body Simulation
- งานวิจัยนี้จะตีพิมพ์ใน ACM SIGGRAPH 2025 Conference Papers และชื่อรายการ BibTeX คือ “RenderFormer: Transformer-based Neural Rendering of Triangle Meshes with Global Illumination”
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
สิ่งที่เจ๋งที่สุดตรงนี้อาจเป็น ความเร็ว: ในฉากเดียวกัน RenderFormer ใช้เวลา 0.0760 วินาที ส่วน Blender Cycles ใช้เวลา 3.97 วินาที (หรือ 12.05 วินาทีในค่าตั้งที่สูงกว่า) แต่ยังคงรักษาดัชนีความคล้ายเชิงโครงสร้างไว้ที่ 0.9526 (0~1 โดย 1 คือภาพเหมือนกันทุกประการ) ดูตารางที่ 2 และ 1 ในเปเปอร์ได้
แบบนี้อาจช่วยให้โมเดล Transformer ที่รันบนอุปกรณ์สามารถมอบ พรีวิวเรนเดอร์ทันที ที่คุณภาพดีกว่าให้ดีไซเนอร์ 3D บนเว็บหรือแอปเนทีฟได้
การวัดข้างต้นทำด้วยโมเดลเวอร์ชัน PyTorch ที่ยังไม่ได้ปรับแต่งบน A100 แม้ GPU ของผู้ใช้ทั่วไปจะอ่อนกว่ามาก แต่ถ้าเป็น GPU สำหรับดีไซเนอร์ 3D ก็อาจเพียงพอให้เห็นการเพิ่มความเร็วค่อนข้างมากเมื่อเทียบกับการเรนเดอร์แบบดั้งเดิมได้ หากเป็นระบบบนเว็บ ก็อาจเชื่อมต่อกับ A100 ฝั่งแบ็กเอนด์แล้วสตรีมภาพมายังเบราว์เซอร์ได้
ข้อจำกัดคือเมื่อความซับซ้อนของฉากเพิ่มขึ้น เช่น เงาที่มีรูปทรงซับซ้อน (พวกอนุภาคหรือเส้นผมก็น่าจะเช่นกัน) ผลลัพธ์จะไม่ถูกต้องสมบูรณ์ ดังนั้นเรนเดอร์ขั้นสุดท้ายก็น่าจะยังใช้วิธีแบบดั้งเดิม เพื่อหลีกเลี่ยงอาร์ติแฟกต์ทางภาพที่ไม่น่าดูซึ่งพบได้ในภาพ/วิดีโอที่ AI สร้างจำนวนมากในปัจจุบัน แต่ถ้ามัน “ดีพอ” และได้ความเร็วเพิ่มมากพอ สตูดิโอแอนิเมชันขนาดใหญ่ที่ต้องเรนเดอร์พรีวิวความยาวระดับภาพยนตร์เพื่อใช้ตรวจดนตรี เรื่องราว ฯลฯ ก็อาจมีเหตุผลที่จะนำไปใช้
ฉากเหล่านี้มีความซับซ้อนต่ำ เป็นเพียงเดโมเทคนิคที่เรียบง่ายมาก และดูเหมือนจะตั้ง Blender ให้ทำซ้ำ 4,000 ครั้งต่อพิกเซล ซึ่งฟังดูไม่ค่อยสมเหตุสมผล Blender พอผ่านไปไม่กี่ร้อย cycle ก็ใกล้เคียงกับผลลัพธ์สุดท้ายมากแล้ว และในอีก 3,800 cycle หลังจากนั้นก็มีโอกาสแค่เผา cycle ของ GPU โดยแทบไม่ดีขึ้น
ดูเหมือนพวกเขาเผลอรวมขั้นตอนเริ่มต้นของ Blender ไว้ในเวลาเรนเดอร์ทั้งหมด แต่ไม่ได้รวมเวลาเริ่มต้นของ Transformer ผมอยากเห็นเวลาที่ใช้เรนเดอร์เฟรมที่สองของแต่ละระบบ และเดาว่า Blender น่าจะทำผลงานได้ดีกว่ามาก ผลลัพธ์ของเปเปอร์เองน่าสนใจ แต่การตั้งค่า Blender และวิธีวัดมีรายละเอียดแฝงอยู่
ใน ray tracing ความคลาดเคลื่อนจะลดลงตามรากที่สองของจำนวน sample โดยปกติภาพอ้างอิงสำหรับเทียบคุณภาพจะใช้จำนวน sample สูงมาก แต่จำนวน sample ของเรนเดอร์ออฟไลน์ที่ใช้จริงมักต่ำกว่าในเปเปอร์นี้ 1~2 หลัก
ในเปเปอร์กราฟิกส์ การใส่ภาพอ้างอิงที่มีจำนวน sample สูงมากเพื่อเทียบคุณภาพเป็นเรื่องปกติ แต่ไม่มีใครเอาเวลาไปเทียบกับภาพอ้างอิงนั้นด้วย ถ้าผลลัพธ์เป็นค่าประมาณ ก็ควรเทียบกับ อัลกอริทึมเรนเดอร์แบบประมาณค่า อื่น ๆ จึงจะยุติธรรม ตัวติดตามเส้นทางแบบเรียลไทม์และตัวกำจัดนอยส์สมัยใหม่สามารถเรนเดอร์ฉากที่ซับซ้อนกว่านี้มากได้ต่ำกว่า 16ms แม้บน GPU ระดับผู้บริโภค
ประเด็นสำคัญคือ “ฉากที่ซับซ้อนกว่านี้มาก” การใช้ Transformer จะสเกลแบบกำลังสองทั้งต่อจำนวนสามเหลี่ยมและจำนวนพิกเซลเอาต์พุต ผมไม่ได้ตามงานวิจัยแมชชีนเลิร์นนิงล่าสุด อาจมีการปรับปรุงแล้วก็ได้ แต่ไม่น่าจะชนะการสเกลเชิงทฤษฎีของ path tracer ทั่วไปที่เป็น O(log n_triangles) และ O(n_pixels) ได้ การสเกลต่อจำนวนพิกเซลจริง ๆ ใกล้เคียงแบบต่ำกว่าเชิงเส้น เพราะพิกเซลข้างเคียงมีความสอดคล้องกันสูง
ผมอ่านผ่าน ๆ แต่หาไม่ได้ว่าตั้งค่าไว้อย่างไรละเอียด ๆ อยากรู้ว่า Cycles บน A100 ใช้ CPU หรือใช้เคอร์เนล CUDA กันแน่ อีกอย่าง ถ้าเป็นการเรนเดอร์เฟรมเดียว เวลา 3.97 วินาทีอาจมีส่วนที่ไม่เล็กซึ่งเสียไปกับการเริ่ม renderer หากเรนเดอร์เป็นลำดับภาพ เวลาเฉลี่ยต่อเฟรมน่าจะลดลง
เรื่องการสเกลความซับซ้อนต่อสามเหลี่ยมที่คอมเมนต์พี่น้องพูดถึงก็เป็นปัญหาเหมือนกัน
ดีปเลิร์นนิงถูกใช้กับ การกำจัดนอยส์ของภาพเรนเดอร์ global illumination ได้สำเร็จมากเช่นกัน [1]
ในแนวทางนี้ อัลกอริทึม ray tracing แบบดั้งเดิมจะคำนวณ global illumination แบบหยาบของฉากอย่างรวดเร็ว แล้วโครงข่ายประสาทจะกำจัดนอยส์ในเอาต์พุต
[1] https://www.openimagedenoise.org
แก้ไข: การกำจัดนอยส์ดูดีขึ้นที่การขยาย 100% มากกว่า 125% DPI และทำให้สังเกตเห็นเฟิร์นด้านล่างได้ง่ายขึ้น
เปเปอร์กราฟิกส์ต้องคิดถึง สิ่งที่มองไม่เห็น เสมอ
ในนี้แทบไม่มีโพลิกอน ความละเอียดต่ำ ไม่มีเท็กซ์เจอร์ ไม่มี motion blur ไม่มี depth of field และในแอนิเมชันก็มีอาร์ติแฟกต์อยู่บ้าง
เป็นงานวิจัยที่น่าสนใจ แต่ถ้ามองให้เข้าที่เข้าทาง ก็เหมือนกำลังใช้ GPU สมัยใหม่สร้างภาพที่เมื่อ 30 ปีก่อนทำได้ด้วยปริมาณการคำนวณระดับ 1/1,000,000 ของตอนนี้
รู้สึกแปลกที่ในตัวอย่างไม่มีอันไหนแสดง ด้านหลังกล้อง เลย
ไม่แน่ใจว่าเป็นข้อจำกัดของแนวทางนี้ หรือเป็นการตกหล่นตอนทำตัวอย่าง แต่เมื่อพูดถึงการสะท้อนและแสง ด้านหลังกล้องค่อนข้างสำคัญ
ขอถามเพราะไม่ค่อยรู้ ฉากพวกนี้ถูกเรนเดอร์โดยอิงจากวิธีที่คาดว่าฉากควรถูกเรนเดอร์ใช่ไหม? ถ้าอย่างนั้นผมไม่เข้าใจว่าทำไมต้องใช้วิธีนี้แทนวิธีที่ตรงไปตรงมากว่า เพราะดูไม่น่าจะเร็วกว่าโดยตรง
เช่น ถ้าฉากเป็นก้อนน้ำหนักอินพุต แล้วเติมนอยส์เข้าไป จะออกมาเป็นอย่างไร? จะได้เอาต์พุตเท่ ๆ ที่วิธีทั่วไปทำไม่ได้หรือเปล่า?
ถ้า interpolate ระหว่างการแทนฉากสองแบบที่ต่างกัน จะน่าสนใจไหม? คำถามทำนองนี้เป็นไปได้
ว้าว ถ้าอย่างนั้น GPU ก็ปิดลูปได้แล้วสิ จากการเรนเดอร์ไปสู่การคำนวณ แล้วกลับมาเป็นการเรนเดอร์อีกครั้ง
ดูใช้ได้แต่เบลอไปหน่อย น่าจะดีถ้าได้เห็น การเปรียบเทียบเวลาเรนเดอร์ ระหว่าง neural renderer กับ renderer แบบคลาสสิก
ในงานแอนิเมชัน โดยเฉพาะ Animated Crab และ Robot Animation จะเห็น อาร์ติแฟกต์แบบงานศิลป์ AI ที่หมุนวนรอบโมเดลอย่างไม่เป็นธรรมชาติค่อนข้างชัดเมื่อวัตถุและกล้องเคลื่อนที่
https://renderformer.github.io/pdfs/renderformer-paper.pdf
สงสัยว่าจะใช้แนวทางโครงข่ายประสาทกับเรขาคณิตที่ลดรูปแล้ว เฉพาะกับ แสงทางอ้อม จะใช้งานได้จริงไหม คือใช้ rasterizer ปกติ แล้วเสริม global illumination ไว้ด้านบน
มีเพื่อนที่ทำงานกับ เรนเดอเรอร์แบบอิงฟิสิกส์ ในวงการภาพยนตร์ และเคยทำวิจัยที่เกี่ยวข้องด้วย ผมชอบฟังเรื่องราวและคำอธิบายเสมอว่างานในวงการนี้ทำกันอย่างไร
สงสัยว่าสมัยนี้บริษัทไหนจ้างคนเก่งสายนี้บ้าง บริษัท AI ก็จ้างวิศวกรเรนเดอริงเพื่อสร้างสภาพแวดล้อมสำหรับการฝึกด้วยหรือเปล่า?
ถ้ามีที่ไหนต้องการจ้างวิศวกรเรนเดอริงสายวิจัย/อุตสาหกรรมที่มีประสบการณ์ ผมช่วยเชื่อมต่อให้ได้ เพื่อนผมไม่ได้เล่นโซเชียลมีเดีย แต่กำลังมองหาโอกาสอยู่
เป็นงานวิจัยที่เจ๋งมาก ชอบกรณีแบบนี้จริง ๆ ที่นำ Transformer ไปใช้กับโดเมนที่ไม่ใช่ข้อความ
ถ้าเป็นโดเมนที่อินพุตเป็นลำดับ และโทเคนอินพุตเหล่านั้นมีความสัมพันธ์กัน ก็น่าจะทำงานได้ดี รอคอยงานวิจัยเพิ่มเติมในสาขานี้
ในโดเมนที่ไม่ใช่ข้อความ มีสาขาน่าสนใจอะไรบ้างที่ Transformer น่าจะเหมาะเป็นพิเศษ?
แนวคิดในการ ฝึก Transformer ให้แปลงชุดสามเหลี่ยมซึ่งเป็นคำอธิบายฉาก ให้กลายเป็นอาร์เรย์พิกเซล 2D และทำให้ผลลัพธ์ดูเหมือนพิกเซลที่ได้จากการเรนเดอร์ฉากเดียวกันด้วยเรนเดอเรอร์แบบ global illumination นั้นยอดเยี่ยมและน่าสนใจ
ถ้าดูงานวิจัยในช่วง 5 ปีที่ผ่านมา ความจริงที่ว่าสิ่งนี้ทำงานได้ก็ไม่ได้ถึงกับน่าตกใจ แต่ก็ยังรู้สึกว่าเป็นผลลัพธ์ที่ค่อนข้างลึกซึ้งอยู่ดี โครงสร้าง Transformer นั้นสารพัดประโยชน์จริง ๆ
อย่างไรก็ดี มันเร็วมาก ใกล้เคียงกับผลลัพธ์จาก Blender และดูเหมือนเป็น โมเดลประมาณ 1 พันล้านพารามิเตอร์ ไม่รู้ว่าเป็น fp16 หรือ fp32 แต่ไฟล์ขนาด 2GB ก็ไม่มีอะไรให้ไม่ชอบนัก อยากเห็นเดโมฉากที่ “สมจริง” กว่านี้ด้วย แต่ถ้าต้องการก็สามารถดาวน์โหลดมารันเองบน Mac ได้