Saya sudah mulai menggunakan WebGL dan senang dengan betapa mudahnya memanfaatkan pengalaman OpenGL saya (dan dengan ekstensi OpenGL ES). Namun, pemahaman saya adalah sebagai berikut:
- OpenGL ES adalah bagian dari OpenGL
- WebGL adalah bagian dari OpenGL ES
Apakah ini benar untuk kedua kasus? Jika demikian, apakah ada sumber daya untuk merinci fitur yang hilang?
Misalnya, satu fitur yang hilang adalah glPushMatrix
dan glPopMatrix
. Saya tidak melihat mereka di WebGL, tetapi dalam pencarian saya, saya tidak dapat menemukan mereka dirujuk dalam materi OpenGL ES baik.
Saya menemukan sumber yang bagus untuk membandingkan API spesifik apa yang tersedia di berbagai versi OpenGL / WebGL / OpenGL ES.
Saya pikir Anda akan menemukan apa yang Anda cari, di sini: http://web.eecs.umich.edu/~sugih/courses/eecs487/common/notes/APITables.xml
sumber
Salah satu cara untuk melihatnya adalah WebGL adalah OpenGL ES 2.0 dan OpenGL ES 2.0 adalah OpenGL dengan semua legacy cruft dihapus.
Sejak shader ditambahkan semua warisan pipa fungsi tetap
glPushMatrix
,glLight
,glVertex
dll semua tidak masuk akal untuk menjaga sekitar.Jadi, apakah fitur "hilang" atau fitur "usang" yang benar dan benar?
Fitur spesifik apa yang Anda cari?
WebGL / OpenGL ES 2.0 adalah vertex dasar dan fragmen shader. Ada dukungan terbatas untuk tekstur non-power-of-2 dan hanya beberapa format tekstur (tidak terlalu banyak batas adalah 99% dari semua tekstur adalah RGB8 atau RGBA8). Dukungan untuk tekstur titik apung adalah opsional tetapi sebagian besar perangkat mendukungnya. Dukungan untuk rendering ke tekstur floating point lebih jarang. Sedikit jika ada perangkat seluler yang mendukung render ke tekstur titik mengambang.
WebGL2 (baru dikirim) dan OpenGL ES 3.0 menambahkan satu ton format tekstur baru termasuk tekstur berbasis integer dan tekstur 3D. Ini menghapus batas tekstur non-power-of-2. Itu menambahkan mengubah umpan balik (kemampuan untuk shader vertex untuk menulis ke buffer). Itu juga menambahkan permintaan oklusi. Objek Array Vertex adalah standar (mereka opsional di WebGL / ES 3.0). Ada banyak fitur kecil lainnya.
ES 3.1 (dan mungkin versi WebGL berikutnya) menambahkan compute shaders (kemampuan untuk shader fragmen untuk melakukan akses tulis acak). Shader fragmen hanya bisa menulis ke fragmen / piksel yang diminta darinya saat ini sedangkan menghitung shader dan menulis di mana saja mereka inginkan.
Fitur apa lagi yang ingin Anda gunakan?
sumber