Відсутні функції у WebGL та OpenGL ES


10

Я почав користуватися WebGL і задоволений тим, як легко використовувати мій досвід OpenGL (і розширення OpenGL ES). Однак моє розуміння таке:

  • OpenGL ES - це підмножина OpenGL
  • WebGL - це підмножина OpenGL ES

Чи правильно це для обох випадків? Якщо так, чи є ресурси для деталізації того, які функції відсутні?

Наприклад, одна помітна відсутність функції - glPushMatrixі glPopMatrix. Я не бачу таких у WebGL, але в своїх пошуках я не можу знайти їх посилання у матеріалі OpenGL ES.

Відповіді:


9

WebGL вики міститься розділ в його Довідка ієрархії для « WebGL і OpenGL Differences » , який , здається , щоб зосередитися на відмінностях в WebGL від «настільних» реалізацій OpenGL і, на жаль, не дуже докладно ( в основному мова йде про поведінку, а НЕ API) .

Якщо це не надто детально для вас, можливо, вам доведеться порівняти останню чернетку WebGL із специфікаціями OpenGL ES або OpenGL вручну.


9

Ви перевірили останню версію проекту WebGL?

Згідно з проектом у випадку суперечності, остаточним органом є специфікація OpenGL ES 2.0.

У главі 6 викладено відмінності від OpenGL ES 2.0 до WebGL.

http://www.khronos.org/registry/webgl/specs/latest/


У вас була хороша відповідь, яку я підтримав, але я прийняв іншу відповідь, тому що вказував на інші ресурси для перевірки. Спасибі за вашу допомогу.
Кріс Сміт


0

Один із способів поглянути на це WebGL - це OpenGL ES 2.0, а OpenGL ES 2.0 - OpenGL, при цьому всі видалені застарілі версії.

Оскільки шейдери були додані всі фіксованою функції трубопроводу в спадок glPushMatrix,glLight , і glVertexт.д. все не має сенсу тримати навколо.

Тож ці "відсутні" функції чи правильно і правильно "застарілі" функції?

Які конкретні особливості ви шукаєте?

WebGL / OpenGL ES 2.0 - це основні шейдери вершин та фрагментів. Існує обмежена підтримка текстур без потужності-2 та лише декілька текстурних форматів (не дуже велика межа - це 99% усіх текстур RGB8 або RGBA8). Підтримка текстур з плаваючою комою необов’язкова, але більшість пристроїв підтримує їх. Підтримка візуалізації текстур з плаваючою комою рідше. Мало хто з мобільних пристроїв підтримує візуалізацію текстури з плаваючою точкою.

WebGL2 (щойно поставляється) та OpenGL ES 3.0 додали багато нових форматів текстур, включаючи текстуру на основі цілої кількості та 3D-текстури. Це прибрало межі текстури без потужності-2. Це додало зворотній зв'язок трансформації (можливість вершинного шейдера записувати в буфер). Він також додав запити оклюзії. Об'єкти масиву Vertex є стандартними (вони були необов'язковими в WebGL / ES 3.0). Існує маса інших більш незначних функцій.

ES 3.1 (і, можливо, наступна версія WebGL) додає обчислювальні шейдери (можливість шейдера фрагментів робити записи випадкового доступу). Фрагментні шейдери могли записувати лише до того фрагменту / пікселя, який проситься про них на даний момент, тоді як обчислюють шейдери та записують куди завгодно.

Які ще функції ви хотіли використати?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.