は、私がGL_APPLE_texture_2D_limited_npot拡張子を使用したい(ゲームはNPOTテクスチャを持っている、と私の現在の実装では私は2つのそれらの電力を作るためにいくつかのパディングを追加します)。iPadの不足しているOpenGLの拡張文字列GL_APPLE_texture_2D_limited_npot
私のiPad(第1世代)でテストしています。私がこれまでに読んだことのすべては、OpenGLES2(iPadを含む)をサポートするすべてのiOSデバイスがGL_APPLE_texture_2D_limited_npot(私のゲームOpenGLES2を使用しているので非常に良い)をサポートしていると言います。私は私のiPadでテストしています(GL_CLAMP_TO_EDGEにラップを設定するとパディングと画像が削除されました)がサポートされますが、glGetString(GL_EXTENSIONS)を呼び出すと表示されません。コード:中
const char *extensions = (const char *)glGetString(GL_EXTENSIONS);
std::cout << extensions << "\n";
結果:
GL_OES_depth_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_half_float GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_texture_lod GL_EXT_texture_filter_anisotropic GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level GL_IMG_read_format GL_IMG_texture_compression_pvrtc
なぜこの拡張はglGetString(GL_EXTENSIONS)と表示されていないのですか?それを確認する適切な方法は何ですか?すべてのOpenGLES2 iOSデバイスが本当にサポートしていますか?
スペックリンクありがとうございます。私はそれを見て、それは2つのテクスチャの非力を言及することを追加する必要があります。 OpenGLES2はNPOTテクスチャを完全にはサポートしていませんが、OpenGLES1 GL_APPLE_texture_2D_limited_npot拡張はOpenGLES2の一部であるようです(拡張ではなく、glGetString(GL_EXTENSIONS)によって返されません)。 CLAMP_TO_EDGEの制限はOpenGLES2にも適用されます。 – fbafelipe
いいえ、GLES2はNPOTテクスチャを完全にサポートしています。デスクトップGL2とまったく同じです。 –
OpenGLES2仕様(あなたのリンク):3.8.2テクスチャ上のシェーダ実行「フラグメントシェーダからサンプラを呼び出すと(R、G、B、A)=(0,0,0,1) "..."•2次元サンプラが呼び出され、対応するテクスチャ画像が2の非累乗画像である(3.7.7項のミップマッピングの説明を参照)テクスチャ・ラップ・モードがCLAMP_TO_EDGEでないか、または縮小フィルタがNEARESTでもLINEARでもない。 iPadでこの動作を確認できます(つまり、折り返しをREPEATに設定すると、NPOTが黒くなります)。 – fbafelipe