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

อ่าน 5 นาที

การฉาบปูนกระเบื้อง

การเรนเดอร์แบบไทล์ คือกระบวนการแบ่งภาพ กราฟิกคอมพิวเตอร์ ออกเป็น ตาราง ปกติใน พื้นที่ออปติคอล และเรนเดอร์แต่ละส่วนของตารางหรือ ไทล์ แยกกัน...

การฉาบปูนกระเบื้อง

การเรนเดอร์แบบไทล์คือกระบวนการแบ่งภาพกราฟิกคอมพิวเตอร์ ออกเป็น ตารางปกติในพื้นที่ออปติคอลและเรนเดอร์แต่ละส่วนของตารางหรือไทล์แยกกัน ข้อดีของการออกแบบนี้คือปริมาณหน่วยความจำและแบนด์วิดท์ลดลงเมื่อเทียบกับ ระบบเรนเดอร์ แบบทันทีที่วาดเฟรมทั้งหมดในครั้งเดียว ทำให้ระบบเรนเดอร์แบบไทล์เป็นที่นิยมอย่างมากใน การใช้งานกับ อุปกรณ์พกพาที่ มีพลังงานต่ำ บางครั้งการเรนเดอร์แบบไทล์เรียกว่าสถาปัตยกรรม "sort middle" เนื่องจากทำการเรียงลำดับเรขาคณิตตรงกลางของไปป์ไลน์กราฟิกแทนที่จะทำใกล้ๆ ตอนท้าย[ 1 ]

แนวคิดพื้นฐาน

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

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

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

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

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

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

งานในช่วงแรก

งานในช่วงแรกส่วนใหญ่เกี่ยวกับการเรนเดอร์แบบเรียงต่อกันนั้นทำเป็นส่วนหนึ่งของสถาปัตยกรรม Pixel Planes 5 (1989) [ 4 ] [ 5 ]

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

วิธีการแบ่งภาพออกเป็นส่วนย่อยๆ นั้นเป็นที่รู้จักกันมาตั้งแต่ยุคแรกๆ ของประวัติศาสตร์การเรนเดอร์ภาพด้วยซอฟต์แวร์ การใช้งานการ เรน เดอร์แบบ Reyesมักจะแบ่งภาพออกเป็น "กลุ่มส่วนย่อย" (tile buckets)

ผลิตภัณฑ์เชิงพาณิชย์ – คอมพิวเตอร์ตั้งโต๊ะและคอนโซล

ในช่วงแรกของการพัฒนา GPU สำหรับเดสก์ท็อป บริษัทหลายแห่งได้พัฒนาสถาปัตยกรรมแบบเรียงต่อกัน (tiled architecture) แต่เมื่อเวลาผ่านไป สถาปัตยกรรมเหล่านี้ถูกแทนที่ด้วย GPU แบบ immediate-mode ที่ใช้ระบบหน่วยความจำภายนอกแบบกำหนดเองที่มีความเร็วสูงเป็นส่วนใหญ่

ตัวอย่างที่สำคัญของเรื่องนี้ได้แก่:

ตัวอย่างของสถาปัตยกรรมที่ไม่ใช้การเรียงต่อกันเป็นแถวซึ่งใช้บัฟเฟอร์ขนาดใหญ่บนชิป ได้แก่:

  • Xbox 360 (2005): GPUมี  eDRAM ขนาด 10 MB ฝังอยู่ภายใน ซึ่งไม่เพียงพอที่จะเก็บภาพแรสเตอร์สำหรับภาพขนาด 1280×720 ทั้งหมดโดยใช้การลดรอยหยักแบบมัลติแซมเปิล 4 เท่า ดังนั้นจึงมีการใช้โซลูชันการแบ่งภาพเป็นไทล์ซ้อนทับเมื่อทำงานในความละเอียดระดับ HD และเปิดใช้งาน MSAA 4 เท่า[ 15 ]
  • Xbox One (2013): GPUมี  eSRAM ขนาด 32 MB ฝังอยู่ภายใน ซึ่งสามารถใช้เก็บภาพทั้งหมดหรือบางส่วนได้ ไม่ใช่สถาปัตยกรรมแบบไทล์ แต่มีความยืดหยุ่นเพียงพอที่นักพัฒนาซอฟต์แวร์จะสามารถจำลองการเรนเดอร์แบบไทล์ได้[ 16 ]

ผลิตภัณฑ์เชิงพาณิชย์ – แบบฝังตัว

เนื่องจากแบนด์วิดท์หน่วยความจำภายนอกค่อนข้างต่ำ และปริมาณหน่วยความจำบนชิปที่ต้องการไม่มาก การเรนเดอร์แบบเรียงต่อกันจึงเป็นเทคโนโลยีที่ได้รับความนิยมสำหรับ GPU แบบฝังตัว ตัวอย่างในปัจจุบันได้แก่:

การเรนเดอร์แบบทันทีโดยใช้ไทล์ (TBIM):

  • ARM Maliซีรีส์[ 17 ]
  • Qualcomm Adreno (ซีรี่ส์ 300 และรุ่นใหม่กว่ายังสามารถสลับไปใช้การเรนเดอร์โหมดทันที/โดยตรงผ่าน FlexRender ได้อีกด้วย) [ 18 ] [ 19 ] [ 20 ]

การเรนเดอร์แบบหน่วงเวลาตามไทล์ (TBDR):

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

ดูเพิ่มเติม

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

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การฉาบปูนกระเบื้อง

การเรนเดอร์แบบไทล์ คือกระบวนการแบ่งภาพ กราฟิกคอมพิวเตอร์ ออกเป็น ตาราง ปกติใน พื้นที่ออปติคอล และเรนเดอร์แต่ละส่วนของตารางหรือ ไทล์ แยกกัน...

แนวคิดพื้นฐาน

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

งานในช่วงแรก

งานในช่วงแรกส่วนใหญ่เกี่ยวกับการเรนเดอร์แบบเรียงต่อกันนั้นทำเป็นส่วนหนึ่งของสถาปัตยกรรม Pixel Planes 5 (1989) [ 4 ] [ 5 ]

ผลิตภัณฑ์เชิงพาณิชย์ – คอมพิวเตอร์ตั้งโต๊ะและคอนโซล

ในช่วงแรกของการพัฒนา GPU สำหรับเดสก์ท็อป บริษัทหลายแห่งได้พัฒนาสถาปัตยกรรมแบบเรียงต่อกัน (tiled architecture) แต่เมื่อเวลาผ่านไป สถาปัตยกรรมเหล่านี้ถูกแทนที่ด้วย GPU แบบ immediate-mode ที่ใช้ระบบหน่วยความจำภายนอกแบบกำหนดเองที่มีความเร็วสูงเป็นส่วนใหญ่