iPod touch gen7のWebGL1スペックのメモ
今年の秋のSafari15で、ついにSafariもWebGL実装がANGLEとなり、これで ANGLE以外のWebGL実装は絶滅 することとなった。 ...いやまぁemscripten2nativeの実装はあるわけだけど。更にWebGL2も同時にサポートされることが決まっている。
で、emscripten2nativeとしてはWebGL2はやらないつもりだったけど、その後の調査でWebGL2(と、マルチスレッド)はやらないと不味いということがわかり、あわてて対応準備を始めている。
対応する拡張
今回は、iOS機器で最も能力が低いiPod touch gen7のSafari14で対応するWebGL拡張を調べてみた。
WebGL2に吸収された奴
- WEBGL_depth_texture
- OES_texture_float
- OES_texture_half_float
- OES_texture_half_float_linear
- OES_vertex_array_object
- OES_standard_derivatives
- ANGLE_instanced_arrays
- OES_element_index_uint
- EXT_blend_minmax
- EXT_shader_texture_lod
- EXT_sRGB
- OES_fbo_render_mipmap
WEBGL_draw_buffers
EXT_frag_depth
はWebGL2にpromoteしたけど、要ESSL3。これらの拡張はESSL1でも自然に取り込めるけど、Safari的にはESSL1を拡張しない選択をしたんだろう。
WebGL2 from WebGL1 では EXT_sRGB
が触れられてないな。 → PRした https://github.com/gfxfundamentals/webgl2-fundamentals/pull/137
OES_texture_float_linear
が無いな。。これはFirefoxのWebGL2では拡張に出るしWebGL2 from WebGL1側の誤記な気がするけど、元々のGLES3では half_floatと floatの両方が拡張なのでちょっと真面目に調べないとわからなさそう。
描画に関係ない奴
いずれもデバッグ用。
圧縮テクスチャ
- WEBGL_compressed_texture_astc
- WEBGL_compressed_texture_etc
- WEBGL_compressed_texture_etc1
- WEBGL_compressed_texture_pvrtc
- WEBKIT_WEBGL_compressed_texture_pvrtc
圧縮テクスチャはWebGL1/WebGL2ともにオプショナルで、Unityの場合は自動でデコードしてくれるので考慮不要。有った方が良いのは間違いないけど。