0
レンダリング機能でiOS用のopengl es 2.xで一時的にテクスチャを無効にするにはどうすればよいですか? 私は色の選択を実装しています。opengl esテクスチャを無効にする
私はglkitを使用していません。私はシェーダーを使用しているので、glDisable(GL_TEXTURE_2D)
は機能しません。glBindTexture(GL_TEXTURE_2D,0)
レンダリング機能でiOS用のopengl es 2.xで一時的にテクスチャを無効にするにはどうすればよいですか? 私は色の選択を実装しています。opengl esテクスチャを無効にする
私はglkitを使用していません。私はシェーダーを使用しているので、glDisable(GL_TEXTURE_2D)
は機能しません。glBindTexture(GL_TEXTURE_2D,0)
達成したいものによって異なります。テクスチャを無効にすると、レンダリングには何が期待されますか?
テクスチャサンプルに基づいてフラグメントの色を計算する場合、テクスチャをバインドしないと、テクスチャの代わりに何を使用する必要がありますか?色?
私は2つのオプションを参照してください。
A - (あなたが属性を読み込む場合は頂点色)固定色を使用して
Bを2つのシェーダ、1つの支えるテクスチャ、いずれかを使用 - 単一のシェーダとパイロットを使用しますユニフォームを使ってレンダリング(テクスチャまたはカラー)。
オプションBは、はるかに優れたパフォーマンスを提供します。それを行う方法についての最初の質問に
編集:
if (Texture == 0) {
gl_FragColor = vec4(1.0,0.0,0.0,0.0); //red color
} else{
gl_FragColor = texture2D(Texture, TexCoordOut);
}
私はBをどのように行うのですか? '; ' glUniform1i(glGetUniformLocation(programHandle、 "テクスチャ")、0): ' と、私は次のことをやっている私のレンダリング機能では、 ' gl_FragColor =にTexture2D(テクスチャ、TexCoordOut):ここ は私のシェーダです – amir
単純な解は次のようになります。 if(Texture == 0){ gl_FragColor = vec4(1.0,0.0,0.0,0.0); //赤い色 } else { gl_FragColor = texture2D(テクスチャ、TexCoordOut); } –
ありがとう、うまくいく – amir