Rasterization — คืออะไร ขั้นตอนและหลักการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-06-11 เวลาอ่าน: 10 นาที

Rasterization (การแรสเตอร์) คือกระบวนการแปลงคำอธิบายเวกเตอร์ของพริมิทีฟสามมิติ (สามเหลี่ยม เส้น จุด) ให้เป็นชุดของพิกเซล (แฟรกเมนต์) เพื่อแสดงบนหน้าจอ ตามข้อมูลจาก Khronos Group, 2025 การแรสเตอร์เป็นขั้นตอนอัตโนมัติ (ไม่สามารถเขียนโปรแกรมได้) ของไปป์ไลน์กราฟิก ซึ่งอยู่ระหว่าง Vertex Shader และ Fragment Shader Rasterization กำหนดว่าพิกเซลหน้าจอใดเป็นของสามเหลี่ยมใด และคำนวณแอททริบิวต์แบบอินเทอร์โพเลตสำหรับแต่ละแฟรกเมนต์

ประเด็นสำคัญ

  • Rasterization — การแปลงพริมิทีฟเวกเตอร์เป็นภาพแรสเตอร์ (พิกเซล)
  • Scanline conversion — อัลกอริทึมพื้นฐานที่กำหนดการครอบคลุมพิกเซลโดยสามเหลี่ยม
  • การอินเทอร์โพเลตแอททริบิวต์ — การคำนวณสี พิกัดพื้นผิว และโนร์มัลสำหรับแต่ละแฟรกเมนต์
  • MSAA — มัลติแซมปลิง ทำให้ขอบหยัก (aliasing) เรียบเนียนระหว่างการแรสเตอร์
  • ประสิทธิภาพ ของการแรสเตอร์ขึ้นอยู่กับจำนวนสามเหลี่ยมและความละเอียดหน้าจอ

การแรสเตอร์คืออะไร?

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

ต่างจากเชเดอร์ที่เขียนโปรแกรมได้ (Vertex Shader และ Fragment Shader) การแรสเตอร์เป็นขั้นตอน คงที่ (ไม่สามารถเขียนโปรแกรมได้) นักพัฒนาไม่สามารถเปลี่ยนอัลกอริทึมการแรสเตอร์ได้ แต่สามารถควบคุมพารามิเตอร์ของมันได้: โหมดคัลลิง (culling) ความกว้างของเส้น การออฟเซ็ตความลึก (polygon offset) และมัลติแซมปลิง

บทบาทของการแรสเตอร์ในกราฟิกเรียลไทม์

เกือบทั้งหมดของกราฟิกเรียลไทม์สมัยใหม่ — เกม UI AR/VR — ใช้การแรสเตอร์ มันเป็นวิธีการเรนเดอร์ที่มีประสิทธิภาพสูงสุด สามารถประมวลผลสามเหลี่ยมนับล้านต่อเฟรมที่ 60 FPS แรสเตอร์ไรเซอร์ GPU ได้รับการปรับให้เหมาะสมสำหรับการประมวลผลแบบขนานของสามเหลี่ยมนับพันพร้อมกันผ่านบล็อก ROP (Render Output Units) เฉพาะทาง

การแรสเตอร์ทำงานอย่างไร?

การแรสเตอร์สามเหลี่ยม เริ่มต้นหลังจาก Vertex Shader แปลงจุดยอดเป็นพิกัดหน้าจอแล้ว GPU นำจุดยอดสามจุดของสามเหลี่ยมและกำหนดว่าพิกเซลหน้าจอใดอยู่ภายในสามเหลี่ยมนั้น

ขั้นตอนของการแรสเตอร์สามเหลี่ยม

กระบวนการประกอบด้วยสามขั้นตอนตามลำดับ: การกำหนดกรอบขอบเขต (bounding box) ของสามเหลี่ยมในหน่วยพิกเซล — การตรวจสอบแต่ละพิกเซลภายในกรอบขอบเขตว่าอยู่ในสามเหลี่ยมหรือไม่ (ฟังก์ชันขอบ) — การคำนวณแอททริบิวต์แบบอินเทอร์โพเลต (พิกัด barycentric) สำหรับแต่ละพิกเซลที่ถูกครอบคลุม ฟังก์ชันขอบ (Edge function) คือสมการเชิงเส้นที่กำหนดว่าจุดหนึ่งอยู่ด้านใดของขอบสามเหลี่ยม

ขั้นตอนคำอธิบายผลลัพธ์
การตัด (Clipping)การตัดสามเหลี่ยมที่อยู่นอกขอบเขตวิวพอร์ตพริมิทีฟที่มองเห็น
การแปลงวิวพอร์ตการแปลงเป็นพิกัดหน้าจอพิกัดพิกเซล
การตั้งค่าสามเหลี่ยมการคำนวณฟังก์ชันขอบและกรอบขอบเขตพารามิเตอร์การแรสเตอร์
การสร้างแฟรกเมนต์การทดสอบการครอบคลุมและการอินเทอร์โพเลตแฟรกเมนต์ + แอททริบิวต์

อัลกอริทึมการแรสเตอร์

Rasterization สามารถใช้งานได้ด้วยอัลกอริทึมต่างๆ ซึ่งแต่ละแบบมีการแลกเปลี่ยนระหว่างประสิทธิภาพและคุณภาพ GPU สมัยใหม่ใช้การผสมผสานของหลายวิธี

อัลกอริทึมสแกนไลน์

อัลกอริทึมการแรสเตอร์แบบคลาสสิกที่พัฒนาสำหรับ GPU รุ่นแรก สามเหลี่ยมถูกประมวลผลทีละบรรทัด (scanline): สำหรับแต่ละบรรทัดของหน้าจอ จะกำหนดจุดเข้าและออกของสามเหลี่ยม และพิกเซลทั้งหมดระหว่างจุดเหล่านั้นจะถูกเติม Scanline conversion มีประสิทธิภาพสำหรับสามเหลี่ยมขนาดใหญ่ แต่ต้องใช้ตรรกะที่ซับซ้อนสำหรับสามเหลี่ยมที่มีรูปร่างตามอำเภอใจ

วิธี Half-Space (ฟังก์ชันขอบ)

GPU สมัยใหม่ใช้วิธีแรสเตอร์แบบ half-space: สำหรับแต่ละด้านของสามเหลี่ยม จะคำนวณฟังก์ชันขอบ — สมการเชิงเส้นที่เป็นบวกด้านหนึ่งและลบอีกด้านหนึ่ง พิกเซลเป็นของสามเหลี่ยมถ้าฟังก์ชันขอบทั้งสามเป็นบวก Half-space rasterization สามารถทำขนานได้ง่ายและเหมาะกับสถาปัตยกรรม GPU แบบ SIMD

การแรสเตอร์แบบไทล์ (TBR)

GPU มือถือ (Qualcomm Adreno, ARM Mali) ใช้ Tile-Based Rendering (TBR) หน้าจอถูกแบ่งออกเป็นไทล์ขนาดเล็ก (16x16 หรือ 32x32 พิกเซล) และการแรสเตอร์จะดำเนินการสำหรับแต่ละไทล์แยกกัน ซึ่งช่วยลดการเข้าถึงหน่วยความจำโดยการเก็บเฟรมบัฟเฟอร์ในหน่วยความจำท้องถิ่นที่รวดเร็ว (หน่วยความจำไทล์) TBR ช่วยลดการใช้พลังงาน ซึ่งสำคัญสำหรับอุปกรณ์มือถือ

การแรสเตอร์ vs Ray Tracing

Rasterization และ ray tracing เป็นสองวิธีที่แตกต่างกันโดยพื้นฐานสำหรับการเรนเดอร์กราฟิก 3D การแรสเตอร์ครองตลาดในแอปพลิเคชันเรียลไทม์ ในขณะที่ ray tracing ใช้ในการเรนเดอร์แบบออฟไลน์และค่อยๆ เข้าสู่ระบบเรียลไทม์ (บน GPU ที่รองรับ RTX)

พารามิเตอร์RasterizationRay Tracing
หลักการสามเหลี่ยม → แฟรกเมนต์รังสี → การตัดกับฉาก
ความเร็วเร็วมาก (สามเหลี่ยมหลายล้าน/เฟรม)ช้า (รังสีหลายพัน/เฟรม)
คุณภาพต้องใช้เทคนิคเพิ่มเติม (เงา การสะท้อน)เงาและการสะท้อนที่ถูกต้องทางฟิสิกส์
GPU มือถือวิธีมาตรฐานรองรับจำกัด (A17 Pro, Snapdragon Gen 3)
การใช้พลังงานต่ำสูง

MSAA และการลดรอยหยักในการแรสเตอร์

การแรสเตอร์ทำให้เกิดปัญหา aliasing — ขอบหยัก (jaggies) ที่ขอบของสามเหลี่ยม สิ่งนี้เกิดขึ้นเพราะพิกเซลเป็นแบบไม่ต่อเนื่องและไม่สามารถถูกสามเหลี่ยมครอบคลุมบางส่วนได้ เพื่อต่อสู้กับ aliasing จึงใช้มัลติแซมปลิง (MSAA)

MSAA ทำงานอย่างไร

MSAA (Multisample Anti-Aliasing) ทำการแรสเตอร์ด้วยอัตราการสุ่มตัวอย่างที่เพิ่มขึ้น (2x, 4x, 8x) แทนที่จะใช้หนึ่งตัวอย่างต่อพิกเซล จะใช้หลายตัวอย่างย่อย ซึ่งแต่ละตัวอย่างจะถูกทดสอบการครอบคลุมของสามเหลี่ยม MSAA 4x ประมวลผล 4 ตัวอย่างย่อยต่อพิกเซล ให้การทำให้ขอบเรียบเนียนอย่างเห็นได้ชัดโดยไม่ต้องเพิ่มความละเอียดการเรนเดอร์ทั้งหมด

FXAA และวิธีการหลังการประมวลผลอื่นๆ

ต่างจาก MSAA วิธีการลดรอยหยักแบบหลังการประมวลผล (FXAA, SMAA, TAA) ทำงานหลังจากการแรสเตอร์โดยการวิเคราะห์ภาพสุดท้าย FXAA (Fast Approximate Anti-Aliasing) ตรวจจับขอบของภาพและใช้การเบลอเพื่อทำให้เรียบ ซึ่งทำงานเร็วกว่า MSAA อย่างมีนัยสำคัญ แต่มีคุณภาพน้อยกว่า

การแรสเตอร์บน GPU และการปรับให้เหมาะสม

Rasterization บน GPU สมัยใหม่ดำเนินการโดยบล็อกฮาร์ดแวร์เฉพาะทาง — ROP (Render Output Units) จำนวน ROP ส่งผลโดยตรงต่ออัตราการเติม (fill rate) — จำนวนพิกเซลที่ GPU สามารถประมวลผลต่อวินาที

ปัจจัยประสิทธิภาพการแรสเตอร์

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

การปรับการแรสเตอร์ให้เหมาะสมสำหรับ GPU มือถือ

สำหรับ GPU มือถือ (Tile-Based Rendering) ปัจจัยสำคัญรวมถึง: การลด overdraw ผ่าน early-Z rejection การใช้ back-face culling เพื่อลบสามเหลี่ยมที่มองไม่เห็น และ occlusion culling เพื่อปฏิเสธสามเหลี่ยมที่ถูกวัตถุอื่นครอบคลุมทั้งหมด

คำถามที่พบบ่อย

การแรสเตอร์ในแง่ง่ายๆ คืออะไร?

การแรสเตอร์คือกระบวนการเปลี่ยนสามเหลี่ยมให้เป็นพิกเซลบนหน้าจอ GPU นำสามเหลี่ยมสามมิติ กำหนดว่า พิกเซลหน้าจอใดที่มันครอบคลุม และส่งต่อไปยัง Fragment Shader เพื่อทำการระบายสี

การแรสเตอร์แตกต่างจาก ray tracing อย่างไร?

การแรสเตอร์ฉายสามเหลี่ยมลงบนหน้าจอและกำหนดการครอบคลุมพิกเซล (เร็วมาก) Ray tracing ยิงรังสีจากกล้องและตรวจสอบการตัดกับเรขาคณิต (แม่นยำทางฟิสิกส์มากกว่า แต่ช้ากว่าอย่างเห็นได้ชัด)

ทำไมต้องลดรอยหยัก (anti-aliasing) ในการแรสเตอร์?

ระหว่างการแรสเตอร์ พิกเซลจะอยู่ในสามเหลี่ยมอย่างสมบูรณ์หรือไม่ก็ได้ — จึงเกิด ขอบหยัก (aliasing) MSAA ทำให้ขอบเรียบโดยใช้หลายตัวอย่างย่อยต่อพิกเซล ในขณะที่ FXAA ใช้ฟิลเตอร์กับภาพสุดท้าย

สามารถเขียนโปรแกรมขั้นตอนการแรสเตอร์ได้หรือไม่?

ไม่ การแรสเตอร์เป็น ขั้นตอนคงที่ ของไปป์ไลน์กราฟิก นักพัฒนาไม่สามารถเปลี่ยนอัลกอริทึมได้ แต่สามารถควบคุมการตั้งค่า: คัลลิง polygon offset โหมดการแรสเตอร์ (จุด เส้น สามเหลี่ยม) และพารามิเตอร์ MSAA

ทำไม GPU มือถือถึงใช้ Tile-Based Rendering?

Tile-Based Rendering (TBR) แบ่งหน้าจอออกเป็นไทล์และประมวลผลในหน่วยความจำท้องถิ่นที่รวดเร็วแทน VRAM ทั่วโลก ซึ่งช่วยลดการใช้พลังงานและแบนด์วิดท์ลงอย่างมาก ซึ่งสำคัญสำหรับอุปกรณ์มือถือที่ใช้พลังงานจากแบตเตอรี่

สรุป

  • Rasterization — การแปลงสามเหลี่ยมเวกเตอร์เป็นแฟรกเมนต์แรสเตอร์เพื่อแสดงบนหน้าจอ
  • วิธี Half-space — อัลกอริทึมการแรสเตอร์หลักใน GPU สมัยใหม่
  • Tile-Based Rendering — สถาปัตยกรรมการแรสเตอร์ที่ใช้ใน GPU มือถือ (Adreno, Mali)
  • Aliasing — ปัญหาขอบหยัก แก้ไขผ่าน MSAA, FXAA หรือ TAA
  • อัตราการเติม — พารามิเตอร์ประสิทธิภาพการแรสเตอร์หลักที่ขึ้นอยู่กับจำนวนบล็อก ROP
  • Overdraw — การแรสเตอร์ซ้ำของพิกเซล ปรับให้เหมาะสมผ่าน early-Z และ occlusion culling
  • Ray Tracing — วิธีทางเลือกที่ให้การเรนเดอร์ที่ถูกต้องทางฟิสิกส์โดยแลกกับประสิทธิภาพ

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม