การ์ดแสดงผล
3 มิติ
การ์ดแสดงผล 3 มิติ ทำงานอย่างไร?
การทำงานของการ์ดวีจีเอ ขึ้นอยู่กับ Chipset บนการ์ด Chipset ทำหน้าที่ประมวลผลข้อมูลที่ถูกส่งมาจากซีพียู
เพื่อนำข้อมูลดังกล่าวแสดงบนจอภาพ การ์ดวีจีเอที่ออกแบบในยุคแรกๆ นั้นมุ่งเน้นทางด้านการแสดงผลโหมดตัวอักษร
(text mode) เป็นหลัก ต่อมาเมื่อวินโดวส์ถูกพัฒนา การ์ดวีจีเอจึงถูกพัฒนาเป็น
2 มิติ และในที่สุดได้ถูกพัฒนาเป็นการ์ด 3 มิติและการ์ดเร่งความเร็วกราฟิก
(accelerator) เพื่อแสดงภาพ 3 มิติบนจอภาพ การพัฒนาดังกล่าวมีการเปลี่ยนแปลงทางด้านฮาร์ดแวร์หลายประการ
เช่น เปลี่ยน Interface จาก VESA Local BUS เป็น PCI Bus เพิ่มหน่วยความจำ
(VRAM หรือ DRAM) และออกแบบ Chipset ให้มีกลไกในการประมวลผลและแสดงภาพ
3 มิติ
คุณลักษณะของการ์ด 3 มิติ
การ์ด 3 มิติ ยี่ห้อต่างๆ แตกต่างกัน ทั้งเรื่องของคุณลักษณะและประสิทธิภาพของการ์ด
เนื่องจาก Chipset แต่ละยี่ห้อต่างก็ถูกออกแบบเพื่อควบคุมการสร้างภาพไม่เหมือนกัน
เมื่อซีพียูส่งข้อมูลของการแสดงภาพ 3 มิติให้กับการ์ด ขั้นตอนการประมวลผลที่เหลือ
เป็นหน้าที่ของ Chipset ที่จะแยกแยะและวาดภาพบนจอภาพอย่างเป็นขั้นตอน เริ่มจากควบคุมการแสดงภาพให้เป็นไปตามฟังก์ชันของการ์ด
3 มิติ ซึ่งได้แก่ Texture mapping, Filtering, Fog , Alpha Bending, Anti
Aliasing และแก้ไขความชัดลึกของภาพ
ฮาร์ดแวร์ของการ์ดแสดงผล
3 มิติ
RAMDAC
RAMDAC คือ หน่วยความจำแบบ Volatile (Random Access Memory) และ DAC (Digital
to Analog Converter) ใช้สำหรับเปลี่ยนแปลงจากข้อมูลที่ส่งจากซีพียูซึ่งเป็นดิจิทัลให้เป็นอนาล๊อก
ก่อนจะส่งไปวงจรควบคุมการแสดงสี (RGB Circuit = Red Green Blue) ในจอภาพ
ความเร็วสัญญาณนาฬิกาของ RAM เป็นตัวกำหนดว่าการ์ดนั้นผลิตสีได้มากเท่าไร
และมีความถี่ของ Refresh Rate ของการ์ดเท่าไร เช่น RAMDAC ความเร็ว 100
MHz แสดงสีได้น้อยกว่า 200 MHz เป็นต้น นั้นก็คือ หากการ์ดมี RAMDAC ความเร็วสูงเท่าไร
ก็จะแสดงสีได้มาก ความเร็วของ Refresh Rate สูงขึ้น เหมาะกับใช้งานกราฟิกและเกมส์เท่านั้น
คำจำกัดความการแสดงผล 3 มิติ
Texture
Texture เปรียบเสมือนการวางพรมหรือวัตถุอื่นๆ บนพื้น ซึ่งทำให้ภาพที่แสดงเหมือนภาพจริงมากขึ้น
ปกติภาพที่แสดงบนจอภาพจะเป็นภาพ 2 มิติ การเพิ่ม texture ทำให้มองเห็นภาพเป็นเสมือนภาพ
3 มิติ แต่มิติที่สามที่เพิ่มขึ้นมานั้นไม่ใช่แนวระนาบ แต่มีความชัดลึก
ซึ่งให้ความรู้สึกถึงการมีรูปทรงของภาพแตกต่างกันไป เช่น ภาพของเนินเขาที่แสดงบนจอภาพจะมีลักษณะความสูงต่ำของแต่ละตำแหน่งแตกต่างกันอย่างเห็นได้ชัดและไม่สามารถคำนวณได้
ซึ่งลักษณะการสร้างภาพดังกล่าวเรียกว่าการสร้างภาพแบบไม่เป็นความสัมพันธ์เชิงเส้น
(non-linear) ซึ่งหลังจากได้ภาพมาจาก texture mapping แล้วใช้ฟิลเตอร์
(filtering) หรือตัวกรองภาพ ก็จะทำให้ภาพที่ได้มีลักษณะเหมือนกับวัตถุที่เห็นในชีวิตจริงมากขึ้น
ถ้าหากไม่มีการใช้ฟิลเตอร์ จะมีผลให้เห็นส่วนที่เป็น Texture Map นั้นมีลักษณะเป็นสี่เหลี่ยมหรือสามเหลี่ยม
เทคนิคการใช้ตัวกรองของ Texture แตกต่างกันไปตามแต่ละเทคนิค Bilinear Filter,
Tri-linear Filter. , Texture เป็นเทคนิคแรกของการสร้างภาพ 3 มิติ
เฉดสี (shading)
การกำหนดเฉดของสีเป็นเทคนิคของ 3D ในการเพิ่มสีลงไปใน texture เพื่อช่วยให้ภาพที่ออกมา
มีความชัดลึก (perspective) ที่เหมือนว่าภาพนั้นเป็นภาพของวัตถุจริงมากขึ้น
ATMOSPHERIC EFFECTS
เมื่อพิจารณาที่บรรยากาศของของหมอกยามเช้าที่ผมบรรยายข้างต้น จะเห็นว่าสิ่งที่ทำให้บรรยากาศมีสีสันก็คือบรรยากาศของหมอก
เมื่อยืนอยู่ท่ามกลางบรรยากาศของหมอก บางครั้งหมอกจะบดบังเอาวัตถุต่างๆ
ที่มีอยู่ให้หายไปเบื้องหลังสายหมอก ในทาง 3 มิติเรียกว่าหมอก และเมื่อตะวันมาเยือน
หมอกจะเริ่มจางหาย วัตถุที่อยู่หลังหมอกจะปรากฏให้เราเห็นลางๆ ในทาง 3
มิติเรียกปรากฎการณ์เช่นนี้ว่า transparency effect หรือ alpha bending)
ซึ่งในกรณีนี้อาจจะเรียกได้ว่าหมอกเป็นสิ่งที่มีความโปร่งใส (transparency)
ค่าความโปร่งใสนี้หากมีมากก็จะทำให้มองวัตถุที่ถูกวางไว้หลังวัตถุที่มีความโปร่งใสนี้ได้
เช่น มองเห็นวัตถุที่วางไว้ด้านหลังของกระจกใสมากกว่าวัตถุที่ซ่อนตัวอยู่หลังหมอก
ทั้งนี้เพราะกระจกมีคุณสมบัติของ transparency มากกว่าหมอกเป็นต้น
Z-BUFFERING เป็นตัวกำหนดว่า วัตถุใดวางอยู่หน้า และวัตถุใดวางอยู่ด้านหลัง
และหากเกิดการวางซ้อนกันของวัตถุ Z Buffering ก็จะทำหน้าที่แยกแยะว่าจะแสดงการเหลื่อมซ้อนกันของวัตถุออกมาได้อย่างไร
Z Buffering เป็นเทคนิค 3 มิติ ที่ต้องการหน่วยความจำมาก เพราะส่วนหนึ่งกันไว้สำหรับพื้นหลังฉาก
หรือภาพพื้นหลัง (Back End Object) และอีกส่วนหนึ่งสำหรับภาพฉากหน้า (Front
End Object) ปกติหากไม่จำเป็นผู้พัฒนาจะละเว้นการเขียนโปรแกรมเพื่อแสดงผลโดยเทคนิค
Z Buffering
Alpha Bending คือคุณสมบัติการแสดงภาพของวัตถุเมื่อมองผ่านจากอีกวัตถุหนึ่ง เช่นการมองภาพผ่านกระจก
หรือมองภาพฉากหลังท้องฟ้า ซึ่งเรียกคุณสมบัติการแสดงนี้ว่า ความโปร่งใสของวัตถุ
(transparency) เทคนิคอื่นที่ใช้ควบคุมการแสดงสีของฉากหลังคือ Color Key
Anti - aliasing
เป็นวิธีการตกแต่งภาพ บริเวณของ texture mapping เพื่อให้สีของภาพที่แสดงนั้นเรียบและกลมกลืนเป็นโทนสีเดียวกัน
Bilinear filtering เป็น
กระบวนการลดทอน (filter) ของภาพ เพื่อให้ผลที่แสดงเป็นภาพที่ราบเรียบมากยิ่งขึ้น
การลดทอนที่จริงไม่ต้องการ workload ของการ์ดมากนัก แต่ในขณะเดียวกันก็อาจเกิดผลที่ไม่คาดคิดเช่นกัน
เช่น เกิดการกระพริบของภาพ หรือเกิดการกระตุกของ pixel นั้นๆ
Double buffering เป็นการเพิ่มจำนวนหน่วยความจำแบบพัก (buffering) เพื่อให้มีหน่วยความจำสำหรับการแสดงภาพชนิดนี้มีมากกว่า
2 ภาพ เมื่อภาพหนึ่งถูกส่งไปแสดงเป็นภาพฉากหลังก็ยังคงต้องการหน่วยความจำสำหรับการประมวลผลเพื่อแสดงภาพที่ฉากหลังด้วย
ขณะที่ภาพฉากหน้าก็ต้องการหน่วยความจำเมื่อประมวลผล ดังนั้นจึงต้องมี 2
บัฟเฟอร์ เพื่อแสดงภาพ
MIP (multim in parvum) mapping เป็นเทคนิคการแสดงภาพที่รายละเอียด (resolution) แตกต่างกันออกไป เมื่อวัตถุเคลื่อนที่เข้ามาใกล้
หรือว่าเคลื่อนที่ห่างออกไป เช่น กรณีภาพแสดงเฮลิคอปเตอร์ที่บินมาจากขอบฟ้าฝั่งหนึ่ง
และบินตรงมาใกล้เรา ก่อนที่จะตีวงหลบออกไปทางอีกมุมหนึ่งของฟากฟ้า
Specular highlighting เป็นคุณสมบัติการแยกสีระหว่าง สีของบรรยากาศจริงๆ กับสีที่ตกกระทบวัตถุ
หรือเรียกอีกชื่อหนึ่งว่า สีสะท้อนของวัตถุ