--- title: 'WebGL: 2D and 3D graphics for the web' slug: Web/API/WebGL_API translation_of: Web/API/WebGL_API ---
{{WebGLSidebar}}

WebGL (ห้องสมุดกราฟิกเว็บ) เป็น JavaScript API สำหรับการแสดงผลกราฟิก 3 มิติและ 2D แบบโต้ตอบที่มีประสิทธิภาพสูงภายในเว็บเบราว์เซอร์ที่รองรับโดยไม่ต้องใช้ปลั๊กอิน WebGL ทำได้โดยการแนะนำ API ที่สอดคล้องกับ OpenGL ES 2.0 อย่างใกล้ชิดซึ่งสามารถใช้ในองค์ประกอบ HTML5 {{HTMLElement ("canvas")}} ความสอดคล้องนี้ทำให้ API สามารถได้รับประโยชน์จากการเร่งความเร็วของกราฟิกฮาร์ดแวร์ที่อุปกรณ์ของผู้ใช้ใช้

รองรับ WebGL ในFirefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+, Internet Explorer 11+ และMicrosoft Edge build 10240+; อย่างไรก็ตามอุปกรณ์ของผู้ใช้จะต้องมีฮาร์ดแวร์ที่รองรับคุณสมบัติเหล่านี้

{{anch ("WebGL 2")}} API แนะนำการสนับสนุนชุดคุณลักษณะ OpenGL ES 3.0 เป็นส่วนใหญ่ มีให้ผ่านทาง {{domxref ("WebGL2RenderingContext")}} ส่วนต่อประสาน

องค์ประกอบ {{HTMLElement ("canvas")}} ยังถูกใช้โดยCanvas APIเพื่อทำกราฟิก 2D บนหน้าเว็บ

การอ้างอิง

อินเตอร์เฟสมาตรฐาน

ส่วนขยาย

Events

Constants and types

WebGL 2

WebGL 2 is a major update to WebGL which is provided through the {{domxref("WebGL2RenderingContext")}} interface. It is based on OpenGL ES 3.0 and new features include:

See also the blog post "WebGL 2 lands in Firefox" and webglsamples.org/WebGL2Samples for a few demos.

Guides and tutorials

Below, you'll find an assortment of guides to help you learn WebGL concepts and tutorials that offer step-by-step lessons and examples.

Guides

Data in WebGL
A guide to variables, buffers, and other types of data used when writing WebGL code.
WebGL best practices
Tips and suggestions to help you improve the quality, performance, and reliability of your WebGL content.
Using extensions
A guide to using WebGL extensions.

Tutorials

WebGL tutorial
A beginner's guide to WebGL core concepts. A good place to start if you don't have previous WebGL experience.

Examples

A basic 2D WebGL animation example
This example demonstrates the simple animation of a one-color shape. Topics examined are adapting to aspect ratio differences, a function to build shader programs from sets of multiple shaders, and the basics of drawing in WebGL.
WebGL by example
ชุดตัวอย่างสดพร้อมคำอธิบายสั้น ๆ ที่แสดงแนวคิดและความสามารถของ WebGL ตัวอย่างจะถูกจัดเรียงตามหัวข้อและระดับความยากซึ่งครอบคลุมบริบทการเรนเดอร์ WebGL, การโปรแกรม shader, พื้นผิว, เรขาคณิต, การโต้ตอบกับผู้ใช้และอื่น ๆ

บทเรียนขั้นสูง

การฉายมุมมองโมเดล WebGL
คำอธิบายโดยละเอียดของเมทริกซ์หลักสามตัวที่โดยทั่วไปใช้เพื่อแสดงมุมมองวัตถุสามมิติ: แบบจำลองมุมมองและเมทริกซ์การฉายภาพ
คณิตศาสตร์เมทริกซ์สำหรับเว็บ
คู่มือที่มีประโยชน์เกี่ยวกับการทำงานของเมทริกซ์การแปลง 3D และสามารถใช้บนเว็บได้ - ทั้งสำหรับการคำนวณ WebGL และในการแปลง CSS3

ทรัพยากร

ห้องสมุด

ข้อมูลจำเพาะ

สเปค สถานะ คิดเห็น
{{SpecName ( 'WebGL')}} {{Spec2 ( 'WebGL')}} คำจำกัดความเบื้องต้น อ้างอิงจาก OpenGL ES 2.0
{{SpecName ( 'WebGL2')}} {{Spec2 ( 'WebGL2')}} สร้างบน WebGL 1. ขึ้นอยู่กับ OpenGL ES 3.0
{{SpecName ('OpenGL ES 2.0')}} {{Spec2 ('OpenGL ES 2.0')}}
{{SpecName('OpenGL ES 3.0')}} {{Spec2('OpenGL ES 3.0')}}

Browser compatibility

WebGL 1

{{Compat("api.WebGLRenderingContext", 0)}}

WebGL 2

{{Compat("api.WebGL2RenderingContext", 0)}}

Compatibility notes

นอกเหนือจากเบราว์เซอร์แล้ว GPU เองยังต้องการการสนับสนุนคุณสมบัติ ตัวอย่างเช่น S3 การบีบอัดพื้นผิว (S3TC) มีเฉพาะในแท็บเล็ตที่ใช้ Tegra เท่านั้น เบราว์เซอร์ส่วนใหญ่ทำให้บริบท WebGL พร้อมใช้งานผ่านwebglชื่อบริบท แต่เบราว์เซอร์ที่เก่ากว่านั้นต้องการexperimental-webglเช่นกัน นอกจากนี้การที่จะเกิดขึ้นWebGL 2webgl2เป็นอย่างถอยหลังได้และจะมีชื่อบริบท

บันทึกตุ๊กแก

การแก้ไขข้อบกพร่องและการทดสอบ WebGL

เริ่มต้นด้วย Gecko 10.0 {{geckoRelease ("10.0")}} มีการตั้งค่าสองแบบที่ให้คุณควบคุมความสามารถของ WebGL สำหรับการทดสอบ:

webgl.min_capability_mode
คุณสมบัติบูลีนที่เมื่อtrueเปิดใช้งานโหมดความสามารถขั้นต่ำ เมื่ออยู่ในโหมดนี้ WebGL จะได้รับการกำหนดค่าให้สนับสนุนชุดคุณลักษณะขั้นต่ำเปลือยและความสามารถที่จำเป็นตามข้อกำหนด WebGL เท่านั้น วิธีนี้ช่วยให้คุณมั่นใจได้ว่ารหัส WebGL ของคุณจะทำงานบนอุปกรณ์หรือเบราว์เซอร์ใด ๆ โดยไม่คำนึงถึงความสามารถของพวกเขา นี่คือfalseค่าเริ่มต้น
webgl.disable_extensions
คุณสมบัติบูลีนที่เมื่อtrueปิดใช้งานส่วนขยาย WebGL ทั้งหมด นี่คือfalseค่าเริ่มต้น

ดูสิ่งนี้ด้วย