2

iPad3でOpenGLES2.0を使用してアプリを開発しています。 「」と「 」のパラメーターを使用して、「」をGL_UNSIGNED_BYTE呼び出すときglTexImage2D()から切り替えようとしています。(以前)GL_FLOATtypeGL_LUMINANCEinternalFormatformatGL_RGBA

問題:線形補間がなくなりました。スケールアップすると、線形補間の場合のように、スムーズではなく非常にピクセル化されます。GL_RGBA代わりに切り替える必要がありGL_LUMINANCEますか?を使用すると、GL_LUMINANCE補間が自動的に無効になりますか?

私のシェーダーでは、次のように開始します。

highp vec4 tex = texture2D(Texture, TexCoordOut);

以前使用したときと同じようにGL_UNSIGNED_BYTETexCoordOutは、頂点シェーダーからの補間された出力です。輝度とフロートに切り替えた後、なぜ補間しないのですか?

ps私は呼んでいます:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

直前glTexImage2D()ですが、OpenGLES2.0ではこれらの呼び出しはとにかく何もしないという印象を受けています。

4

1 に答える 1

2

私が思い出したのは、GL_OES_texture_float_linear拡張機能がサポートされていない限り、GL_OES_texture_float_linear拡張がサポートされていない限り、GL_FLOATが使用されている場合、GL_LINEARはOpenGL ES 2.0では使用できません。

GL_OES_texture_half_float_linear 拡張機能がサポートされているので、それを使用することを検討する必要があります。

于 2012-11-21T03:20:55.170 に答える