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

อ่าน 2 นาที

ฟังก์ชันคงที่ (กราฟิกคอมพิวเตอร์)

ในด้านกราฟิก คอมพิวเตอร์ คำว่า " ฟังก์ชันคงที่" (fixed-function ) ส่วนใหญ่ใช้เพื่ออธิบาย API กราฟิก 3 มิติ และ GPU ที่ออกแบบก่อนการมาถึงของ เชเดอร์แบบโปรแกรมได้...

ฟังก์ชันคงที่ (กราฟิกคอมพิวเตอร์)

ในด้านกราฟิกคอมพิวเตอร์คำว่า " ฟังก์ชันคงที่" (fixed-function ) ส่วนใหญ่ใช้เพื่ออธิบาย API กราฟิก 3 มิติ และGPUที่ออกแบบก่อนการมาถึงของเชเดอร์แบบโปรแกรมได้คำนี้ยังใช้เพื่ออธิบาย API และไปป์ไลน์กราฟิกที่ไม่ให้ผู้ใช้เปลี่ยนแปลงเทคนิคการประมวลผลพื้นฐาน จึงเป็นที่มาของคำว่า "คงที่" ฟังก์ชันคงที่ยังสามารถหมายถึงเทคนิคการประมวลผลกราฟิกที่ใช้ฮาร์ดแวร์เฉพาะ ที่ไม่สามารถตั้งโปรแกรมได้ เช่น การใช้ROPsเพื่อแปลงภาพ เป็นแรสเตอร์

ประวัติศาสตร์

แม้ว่าต้นกำเนิดที่แท้จริงของคำว่า 'ฟังก์ชันคงที่' จะไม่ชัดเจน แต่ฮาร์ดแวร์กราฟิกตัวแรกที่เป็นที่รู้จักซึ่งถือว่าเป็นฟังก์ชันคงที่คือการ์ดกราฟิกเสริมIBM 8514/A จากปี 1987 เมื่อเปรียบเทียบกับฮาร์ดแวร์กราฟิกอื่นๆ ในยุคนั้น โดยเฉพาะฮาร์ดแวร์ที่ใช้ TMS34010 ที่ใช้ RISCแล้ว8514/A มีความเร็วในการประมวลผลที่ใกล้เคียงกัน ในขณะเดียวกันก็มีราคาเปิดตัวที่ถูกกว่าอย่างมาก อย่างไรก็ตาม ข้อดีเหล่านั้นมาพร้อมกับต้นทุนของความยืดหยุ่นในการเขียนโปรแกรม เนื่องจาก 8514/A ได้รับการออกแบบให้คล้ายกับASIC มากกว่าคู่แข่งที่คล้าย กับCPUอเนกประสงค์[ 1 ]

หลังจาก 8514/A ฮาร์ดแวร์กราฟิกเฉพาะที่ทรงพลังที่สุดในทศวรรษ 1990 มีไปป์ไลน์ที่ไม่สามารถตั้งโปรแกรมได้ แต่สามารถกำหนดค่าได้ในระดับจำกัดเท่านั้น ซึ่งหมายความว่า CPU โฮสต์ไม่มีอิทธิพลโดยตรงต่อวิธีที่ GPU จะประมวลผลการดำเนินการจุดยอดและการแรสเตอร์ไรเซชัน นอกเหนือจากการออกคำสั่งทางอ้อมและการถ่ายโอนข้อมูลแบบสองทิศทางจากRAM ฝั่ง CPU ไปยัง VRAMฝั่ง GPU เมื่อฮาร์ดแวร์ที่มีการออกแบบฟังก์ชันคงที่นี้ออกสู่ตลาดมากขึ้น นักพัฒนา API กราฟิก 3 มิติในยุค 90 ได้เลียนแบบลักษณะของฮาร์ดแวร์ที่มีอยู่ในการออกแบบซอฟต์แวร์ของตนเองโดยการสร้างไปป์ไลน์กราฟิกเชิงตรรกะที่สามารถกำหนดค่าได้เท่านั้นและไม่สามารถตั้งโปรแกรมได้ API กราฟิกในช่วงเวลานี้ โดยเฉพาะOpenGLและDirectX เวอร์ชันแรกๆ ( Direct3D ) ถูกเรียกในภายหลังว่าเป็นฟังก์ชันคงที่ เนื่องจากในที่สุดแล้วพวกมันก็มีลักษณะการออกแบบหลายอย่างร่วมกับฮาร์ดแวร์ฟังก์ชันคงที่ที่พวกมันกำหนดเป้าหมายไว้[ 2 ]

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

OpenGL, OpenGL ESและ DirectX ล้วนเป็น API กราฟิก 3 มิติที่ผ่านการเปลี่ยนผ่านจากรูปแบบการเขียนโปรแกรมฟังก์ชันคงที่ไปเป็นรูปแบบการเขียนโปรแกรมแบบใช้เชเดอร์[ 3 ] ด้านล่างนี้คือตารางแสดงช่วงเวลาที่การเปลี่ยนผ่านจากฟังก์ชันคงที่ไปเป็นเชเดอร์เกิดขึ้น:

API 3 มิติเวอร์ชันฟังก์ชันคงที่ล่าสุดเวอร์ชันเชเดอร์แรก
โอเพ่นจีแอลเวอร์ชัน 1.5เวอร์ชัน 2.0
โอเพนกลู อีเอสเวอร์ชัน 1.1เวอร์ชัน 2.0
ไดเร็กต์เอ็กซ์เวอร์ชัน 7.0เวอร์ชัน 8.0

แม้หลังจากการแพร่หลายของเชเดอร์แบบโปรแกรมได้และไปป์ไลน์กราฟิก คุณสมบัติบางอย่างของ GPU ก็ยังคงไม่สามารถตั้งโปรแกรมได้เพื่อเพิ่มประสิทธิภาพความเร็วมากกว่าความยืดหยุ่น ตัวอย่างเช่น GPU NVIDIA GeForce 6 ซีรีส์ได้มอบหมายการคัดกรองเบื้องต้น การแรสเตอร์ไรเซชันMSAAการสอบถามความลึก การแมปพื้นผิว และอื่นๆ ให้กับการใช้งานฟังก์ชันคงที่ CPU ไม่ได้สั่งการ GPU ว่าจะประมวลผลการดำเนินการเหล่านี้อย่างไรโดยเฉพาะ คุณสมบัติเหล่านี้สามารถกำหนดค่าได้ในระดับที่จำกัดเท่านั้น[ 4 ]

ฟังก์ชันคงที่เทียบกับเชเดอร์

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

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Fixed-function_(computer_graphics)&oldid=1358967062 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ฟังก์ชันคงที่ (กราฟิกคอมพิวเตอร์)

ในด้านกราฟิก คอมพิวเตอร์ คำว่า " ฟังก์ชันคงที่" (fixed-function ) ส่วนใหญ่ใช้เพื่ออธิบาย API กราฟิก 3 มิติ และ GPU ที่ออกแบบก่อนการมาถึงของ เชเดอร์แบบโปรแกรมได้...

ประวัติศาสตร์

แม้ว่าต้นกำเนิดที่แท้จริงของคำว่า 'ฟังก์ชันคงที่' จะไม่ชัดเจน แต่ฮาร์ดแวร์กราฟิกตัวแรกที่เป็นที่รู้จักซึ่งถือว่าเป็นฟังก์ชันคงที่คือการ์ดกราฟิกเสริม IBM 8514/A จากปี 1987 เมื่อเปรียบเทียบกับฮาร์ดแวร์กราฟิกอื่นๆ ในยุคนั้น โดยเฉพาะฮาร์ดแวร์ที่ใช้ TMS34010...

ฟังก์ชันคงที่เทียบกับเชเดอร์

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