กลับไปหน้าบทความ

อ่าน 2 นาที

การเรนเดอร์แบบขนาน

การเรนเดอร์แบบขนาน (หรือ การเรนเดอร์แบบกระจาย ) คือการประยุกต์ใช้ การเขียนโปรแกรมแบบขนาน กับโดเมนการคำนวณของ กราฟิกคอมพิวเตอร์ การ เรนเดอร์...

การเรนเดอร์แบบขนาน

การเรนเดอร์แบบขนาน (หรือการเรนเดอร์แบบกระจาย ) คือการประยุกต์ใช้การเขียนโปรแกรมแบบขนานกับโดเมนการคำนวณของกราฟิกคอมพิวเตอร์การเรนเดอร์กราฟิกอาจต้องการทรัพยากรการคำนวณจำนวนมหาศาลสำหรับฉากที่ซับซ้อนซึ่งเกิดขึ้นใน การแสดงภาพ ทางวิทยาศาสตร์การแสดงภาพทางการแพทย์แอ ปพลิเคชัน CADและความเป็นจริงเสมือนงานวิจัยล่าสุดยังแนะนำว่าการเรนเดอร์แบบขนานสามารถนำไปใช้กับเกมมือถือเพื่อลดการใช้พลังงานและเพิ่มความแม่นยำของกราฟิก[ 1 ]การเรนเดอร์เป็น ภาระงาน แบบขนานที่น่าอับอายในหลายโดเมน (เช่น พิกเซล วัตถุ เฟรม) และด้วยเหตุนี้จึงเป็นหัวข้อของการวิจัยมากมาย

การกระจายภาระงาน

มีเหตุผลสองประการที่มักขัดแย้งกันในการใช้การเรนเดอร์แบบขนาน การปรับขนาดประสิทธิภาพช่วยให้เรนเดอร์เฟรมได้เร็วขึ้น ในขณะที่การปรับขนาดข้อมูลช่วยให้แสดงชุดข้อมูลขนาดใหญ่ได้ วิธีการกระจายภาระงานที่แตกต่างกันมักจะเอื้อประโยชน์ต่อการปรับขนาดประเภทใดประเภทหนึ่งมากกว่าอีกประเภทหนึ่ง นอกจากนี้ยังมีข้อดีและข้อเสียอื่นๆ เช่นปัญหาความหน่วงและสมดุลของภาระงานตัวเลือกหลักสามประการสำหรับการกระจายข้อมูลพื้นฐาน ได้แก่ เฟรมทั้งหมด พิกเซล หรือวัตถุ (เช่นตาข่ายสามเหลี่ยม )

การกระจายเฟรม

หน่วยประมวลผลแต่ละหน่วยสามารถเรนเดอร์เฟรมภาพทั้งหมดจากมุมมองหรือช่วงเวลาที่แตกต่างกันได้ เฟรมภาพที่เรนเดอร์จากมุมมองต่างๆ สามารถปรับปรุงคุณภาพของภาพด้วยการลดรอยหยัก (anti-aliasing) หรือเพิ่มเอฟเฟกต์ต่างๆ เช่น ความชัดลึก (depth-of-field) และ การ แสดงผลแบบสามมิติวิธีนี้ช่วยให้สามารถปรับขนาดประสิทธิภาพได้ดี แต่ไม่ทำให้ข้อมูลลดลง

เมื่อแสดงผลเฟรมต่อเนื่องพร้อมกัน จะเกิดความล่าช้าในการใช้งานแบบโต้ตอบ ความล่าช้าระหว่างการป้อนข้อมูลของผู้ใช้และการกระทำที่แสดงผลนั้นแปรผันตามจำนวนเฟรมต่อเนื่องที่แสดงผลพร้อมกัน

การกระจายพิกเซล

ชุดพิกเซลในพื้นที่หน้าจอสามารถกระจายไปยังหน่วยประมวลผลได้ ซึ่งมักเรียกว่าการเรนเดอร์แบบเรียงลำดับก่อน[ 2 ]

การกระจายเส้นพิกเซลแบบสลับกันช่วยให้การกระจายโหลดมีประสิทธิภาพ แต่ทำให้ไม่สามารถปรับขนาดข้อมูลได้ การกระจายไทล์พิกเซล 2 มิติที่ต่อเนื่องกันช่วยให้สามารถปรับขนาดข้อมูลได้โดยการตัดข้อมูลที่มีขอบเขตการมองเห็นออกอย่างไรก็ตาม มีค่าใช้จ่ายด้านข้อมูลเพิ่มเติมจากการจำลองวัตถุที่อยู่บนขอบเขตการมองเห็น และต้องโหลดข้อมูลแบบไดนามิกเมื่อมุมมองเปลี่ยนไป การกระจายโหลดแบบไดนามิกก็จำเป็นเช่นกันเพื่อรักษาประสิทธิภาพการทำงาน

การแจกจ่ายวัตถุ

การกระจายวัตถุระหว่างหน่วยประมวลผลมักเรียกว่าการเรนเดอร์แบบเรียงลำดับสุดท้าย[ 3 ]ซึ่งให้การปรับขนาดข้อมูลที่ดีและสามารถปรับขนาดประสิทธิภาพได้ดี แต่ต้องใช้ภาพระดับกลางจากโหนดการประมวลผลมาประกอบกันเพื่อสร้างภาพสุดท้าย เมื่อความละเอียดของภาพเพิ่มขึ้น ค่าใช้จ่ายในการประกอบภาพอัลฟาก็จะเพิ่มขึ้นด้วย

นอกจากนี้ยังจำเป็นต้องมีระบบกระจายภาระงานเพื่อรักษาประสิทธิภาพการทำงานไม่ว่าจะอยู่ในสภาวะการรับชมแบบใดก็ตาม สามารถทำได้โดยการแบ่งพื้นที่วัตถุออกเป็นส่วนย่อยๆ และกำหนดชิ้นส่วนหลายชิ้นให้กับแต่ละหน่วยประมวลผลในลักษณะสุ่ม อย่างไรก็ตาม วิธีนี้จะเพิ่มจำนวนขั้นตอนการผสมภาพแบบอัลฟ่าที่จำเป็นในการสร้างภาพสุดท้าย อีกทางเลือกหนึ่งคือการกำหนดบล็อกที่ต่อเนื่องกันให้กับแต่ละหน่วยประมวลผลและอัปเดตแบบไดนามิก แต่ต้องมีการโหลดข้อมูลแบบไดนามิกด้วย

การกระจายแบบไฮบริด

สามารถนำรูปแบบการกระจายภาพแบบต่างๆ มาผสมผสานกันได้หลายวิธี เช่น การเรนเดอร์เฟรมต่อเนื่องสองสามเฟรมพร้อมกัน หรือเรนเดอร์แต่ละเฟรมแยกกันโดยใช้การกระจายแบบพิกเซลหรือแบบวัตถุ การกระจายแบบวัตถุอาจพยายามลดการทับซ้อนกันในพื้นที่หน้าจอให้น้อยที่สุดเพื่อลดต้นทุนในการประมวลผลภาพแบบอัลฟ่า หรืออาจใช้การกระจายแบบพิกเซลเพื่อเรนเดอร์บางส่วนของพื้นที่วัตถุ

แอปพลิเคชันโอเพนซอร์ส

ซอฟต์แวร์โอเพนซอร์สChromiumมีกลไกการเรนเดอร์แบบขนานสำหรับแอปพลิเคชันที่มีอยู่แล้ว โดยจะดักจับ การเรียกใช้ OpenGLและประมวลผล โดยทั่วไปแล้วจะส่งไปยังหน่วยประมวลผลการเรนเดอร์หลายหน่วยที่ควบคุมจอ แสดงผล ขนาดใหญ่

Equalizer เป็นเฟรมเวิร์ กการเรนเดอร์แบบโอเพนซอร์ส และระบบจัดการทรัพยากรสำหรับแอปพลิเคชันมัลติไปป์ Equalizer มีAPIสำหรับเขียนแอปพลิเคชันการแสดงภาพแบบขนานและปรับขนาดได้ ซึ่งกำหนดค่าโดยเซิร์ฟเวอร์ทรัพยากรในระหว่างการทำงาน[ 4 ]

OpenSGเป็น ระบบ scenegraph แบบโอเพนซอร์ส ที่ให้ความสามารถในการเรนเดอร์แบบขนาน โดยเฉพาะบนคลัสเตอร์ ช่วยซ่อนความซับซ้อนของ แอปพลิเคชันแบบ มัลติเธรดและคลัสเตอร์แบบขนาน และรองรับการเรนเดอร์แบบเรียงลำดับก่อนและเรียงลำดับหลัง[ 5 ]

Golem เป็นแอปพลิเคชันแบบกระจายศูนย์โอ เพนซอร์ส ที่ใช้สำหรับการประมวลผลแบบขนานซึ่งปัจจุบันทำงานร่วมกับการเรนเดอร์ในBlenderและมีแผนที่จะรวมการใช้งานเพิ่มเติม[ 6 ]

ดูเพิ่มเติม

แนวคิด
การนำไปใช้
  • การเรนเดอร์แบบคลัสเตอร์ที่มหาวิทยาลัยพรินซ์ตัน

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Parallel_rendering&oldid=1183761587 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเรนเดอร์แบบขนาน

การเรนเดอร์แบบขนาน (หรือ การเรนเดอร์แบบกระจาย ) คือการประยุกต์ใช้ การเขียนโปรแกรมแบบขนาน กับโดเมนการคำนวณของ กราฟิกคอมพิวเตอร์ การ เรนเดอร์...

การกระจายภาระงาน

มีเหตุผลสองประการที่มักขัดแย้งกันในการใช้การเรนเดอร์แบบขนาน การปรับขนาดประสิทธิภาพช่วยให้เรนเดอร์เฟรมได้เร็วขึ้น ในขณะที่การปรับขนาดข้อมูลช่วยให้แสดงชุดข้อมูลขนาดใหญ่ได้...

การกระจายเฟรม

หน่วยประมวลผลแต่ละหน่วยสามารถเรนเดอร์เฟรมภาพทั้งหมดจากมุมมองหรือช่วงเวลาที่แตกต่างกันได้ เฟรมภาพที่เรนเดอร์จากมุมมองต่างๆ สามารถปรับปรุงคุณภาพของภาพด้วยการลดรอยหยัก (anti-aliasing) หรือเพิ่มเอฟเฟกต์ต่างๆ เช่น ความชัดลึก (depth-of-field) และ การ...

การกระจายพิกเซล

ชุดพิกเซลในพื้นที่หน้าจอสามารถกระจายไปยังหน่วยประมวลผลได้ ซึ่งมักเรียกว่าการเรนเดอร์แบบเรียงลำดับก่อน [ 2 ]