J'ai commencé à utiliser WebGL et je suis ravi de la facilité avec laquelle je peux tirer parti de mon expérience OpenGL (et par extension OpenGL ES). Cependant, ma compréhension est la suivante:
- OpenGL ES est un sous-ensemble d'OpenGL
- WebGL est un sous-ensemble d'OpenGL ES
Est-ce correct pour les deux cas? Si oui, existe-t-il des ressources pour détailler les fonctionnalités manquantes?
Par exemple, une caractéristique manquante notable est glPushMatrix
et glPopMatrix
. Je ne les vois pas dans WebGL, mais dans mes recherches, je ne les trouve pas non plus référencées dans le matériel OpenGL ES.
J'ai trouvé une excellente ressource pour comparer les API spécifiques disponibles sur différentes versions d'OpenGL / WebGL / OpenGL ES.
Je pense que vous trouverez ce que vous cherchez ici: http://web.eecs.umich.edu/~sugih/courses/eecs487/common/notes/APITables.xml
la source
Une façon de voir les choses est WebGL est OpenGL ES 2.0 et OpenGL ES 2.0 est OpenGL avec toutes les anciennes versions supprimées.
Depuis Shaders ont été ajoutés tout l'héritage pipeline de fonction fixe
glPushMatrix
,glLight
,glVertex
etc tous aucun sens de garder autour.Ces fonctionnalités sont-elles «manquantes» ou correctement et correctement «obsolètes»?
Quelles fonctionnalités spécifiques recherchez-vous?
WebGL / OpenGL ES 2.0 sont des shaders de vertex et de fragments de base. Il y a un support limité pour les textures non puissantes de 2 et seulement quelques formats de texture (pas vraiment une limite est que 99% de toutes les textures sont RGB8 ou RGBA8). La prise en charge des textures à virgule flottante est facultative, mais la majorité des appareils les prennent en charge. La prise en charge du rendu en textures à virgule flottante est cependant plus rare. Peu ou pas d'appareils mobiles prennent en charge le rendu en texture à virgule flottante.
WebGL2 (qui vient d'être livré) et OpenGL ES 3.0 ont ajouté une tonne de nouveaux formats de texture, notamment des textures et des textures 3D basées sur des nombres entiers. Il a supprimé les limites de texture sans puissance de 2. Il a ajouté une rétroaction de transformation (la possibilité pour un vertex shader d'écrire dans un tampon). Il a également ajouté des requêtes d'occlusion. Les objets Vertex Array sont standard (ils étaient facultatifs dans WebGL / ES 3.0). Il y a un tas d'autres fonctionnalités plus mineures.
ES 3.1 (et probablement la prochaine version de WebGL) ajoute des shaders de calcul (la possibilité pour un shader de fragment d'effectuer des écritures à accès aléatoire). Les shaders de fragments ne peuvent écrire que sur le fragment / pixel qui leur est demandé pour le moment, alors que les shaders de calcul et écrivent où ils veulent.
Quelles autres fonctionnalités vouliez-vous utiliser?
la source