Skip to main content

OpenGL reg;ภาษาแรเงา?

OpenGl reg;การแรเงาภาษา (GLSL) เป็นภาษาการเขียนโปรแกรมคอมพิวเตอร์ที่ออกแบบมาโดยเฉพาะเพื่อจัดการและควบคุมกราฟิกสามมิติ (3D) ระหว่างกระบวนการเรนเดอร์โดยตรงภายในหน่วยประมวลผลกราฟิก (GPU) ของการ์ดกราฟิกโดยใช้ OpenGL ห้องสมุดในสาระสำคัญ OpenGL reg;ภาษาแรเงาช่วยให้โปรแกรมเมอร์เข้าถึงเรขาคณิต 3 มิติและเรนเดอร์ในระดับต่ำสุดที่เป็นไปได้โดยไม่ต้องเขียนรูทีนภาษาแอสเซมบลีเพื่อเชื่อมต่อกับฮาร์ดแวร์ GPUผ่านการใช้ OpenGL reg;ภาษาแรเงาเอฟเฟกต์เช่นพื้นผิวที่สร้างขึ้นตามขั้นตอนและเรขาคณิตสามารถนำไปใช้และปรับให้เหมาะสมโดยตรงภายใน GPU เร่งกระบวนการเรนเดอร์นอกจากนี้ยังช่วยให้ฟังก์ชั่นที่ซับซ้อนมากขึ้นเช่นภาพเคลื่อนไหวหรือเอฟเฟกต์พิเศษสามารถนำไปใช้งานได้อย่างมีประสิทธิภาพโดยไม่ต้องใช้รหัสระดับสูงกว่าภาษาแรเงาถูกรวบรวมโดย GPU ลงในรหัสปฏิบัติการซึ่งหมายถึงการใช้งานเฉพาะและคอมไพเลอร์สามารถออกแบบสำหรับการ์ดกราฟิกแต่ละอันเพิ่มประสิทธิภาพที่เพิ่มขึ้นจากการใช้เฉดสีที่แตกต่างกัน

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

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

มีสามประเภทของ shaders ที่ OpenGL reg;ภาษาแรเงาสามารถใช้ในการเขียนครั้งแรกเป็นที่รู้จักกันในชื่อ vertex shader และได้รับการออกแบบมาเพื่อดำเนินการที่ซับซ้อนในจุดยอดแต่ละจุดเช่นการแปลการปรับขนาดหรือพื้นผิวจุดในอวกาศประการที่สองคือรูปทรงเรขาคณิตและสามารถใช้เพิ่มลบหรือจัดการรูปหลายเหลี่ยมก่อนที่พวกเขาจะถูกแรสเตอร์ในที่สุดFragment Shaders หรือที่เรียกว่า Pixel Shaders สามารถเขียนเพื่อดำเนินการกับจุดในฉาก 3 มิติเนื่องจากพวกเขาถูกแปลเป็นภาพสองมิติ (2D) สำหรับการแสดงบนหน้าจอเช่นเอฟเฟกต์แสงหรือการบิดเบือน