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


