Расширение EXT_shader_texture_lod не работает на OpenGL ES 3.0 iOS

Даже если glGetString (GL_EXTENSIONS) звонок говорит, что расширение присутствует

GL version:   OpenGL ES 3.0 Apple A8 GPU - 95.58
GL vendor:    Apple Inc.
GL renderer:  Apple A8 GPU
GLSL version: OpenGL ES GLSL ES 3.00
GLSL extensions:
  1 > GL_OES_standard_derivatives
  2 > GL_KHR_texture_compression_astc_ldr
  3 > GL_EXT_color_buffer_half_float
  4 > GL_EXT_debug_label
  5 > GL_EXT_debug_marker
  6 > GL_EXT_pvrtc_sRGB
  7 > GL_EXT_read_format_bgra
  8 > GL_EXT_separate_shader_objects
  9 > GL_EXT_shader_framebuffer_fetch
 10 > GL_EXT_shader_texture_lod <--------------------
 11 > GL_EXT_shadow_samplers
 12 > GL_EXT_texture_filter_anisotropic
 13 > GL_APPLE_clip_distance
 14 > GL_APPLE_color_buffer_packed_float
 15 > GL_APPLE_copy_texture_levels
 16 > GL_APPLE_rgb_422
 17 > GL_APPLE_texture_format_BGRA8888
 18 > GL_IMG_read_format
 19 > GL_IMG_texture_compression_pvrtc

кажется шейдер игнорирует level параметр в textureLod вызов. Визуальный результат такой же, как с texture, Я проверил это с помощью renderdoc, и текстура создала мипмапы. Мод Mag Filtering также использует LINEAR_MIPMAP_LINEAR, Кроме того, я уверен, что level параметр правильный.

Кроме того, шейдерная компиляция завершается неудачно, когда я вставляю этот оператор в начале #extension GL_EXT_shader_texture_lod : require#version 300 es). С #version 100 и с расширением компиляции удалось.

Я не пробовал переходить на #version 100 полностью, я не уверен, что это работает.

У меня вопрос, почему я не могу скомпилировать шейдер 300 es с расширением texture_lod, даже если он присутствует на устройстве?

2 ответа

У меня вопрос, почему я не могу скомпилировать шейдер 300 es с расширением texture_lod, даже если он присутствует на устройстве?

... потому что это расширение, специально предназначенное для шейдеров OpenGL ES ES 2.x (#version 100).

Поддержка для textureLod() основной профиль в OpenGL ES 3.x ESSL #version 300 так что вам не нужно расширение...

Вы можете попробовать поставить #extension GL_EXT_shader_texture_lod : enable в шейдере это работает.

Другие вопросы по тегам