0
如何暫時禁用渲染函數中的ios opengl es 2.x紋理? 我正在實施顏色選擇。禁用opengl es紋理ios
我沒有使用glkit。我使用着色器,所以glDisable(GL_TEXTURE_2D)
不起作用,glBindTexture(GL_TEXTURE_2D,0)
如何暫時禁用渲染函數中的ios opengl es 2.x紋理? 我正在實施顏色選擇。禁用opengl es紋理ios
我沒有使用glkit。我使用着色器,所以glDisable(GL_TEXTURE_2D)
不起作用,glBindTexture(GL_TEXTURE_2D,0)
取決於你想實現什麼。如果你禁用紋理,你期望在你的渲染中有什麼?
如果着色器基於Texture樣本計算片段的顏色,如果不綁定任何紋理,它應該用什麼來代替紋理?一種顏色?
我看到2種選擇:
A - 使用2個着色器,一個支撐紋理,一個使用固定顏色(或頂點顏色如果加載屬性)
乙 - 使用單一着色器和導頻的渲染(紋理或顏色)使用制服。
選項B提供更多的性能。
編輯就如何做到這一點的第一個問題:
if (Texture == 0) {
gl_FragColor = vec4(1.0,0.0,0.0,0.0); //red color
} else{
gl_FragColor = texture2D(Texture, TexCoordOut);
}
我如何做B超? 這裏是我的着色器: 'gl_FragColor =的Texture2D(紋理,TexCoordOut);' 和我的渲染功能,我做了以下內容: 'glUniform1i(glGetUniformLocation(programHandle, 「紋理」),0);' – amir 2012-01-11 14:54:02
簡單的解決方案可以是: if(Texture == 0)gl_FragColor = vec4(1.0,0.0,0.0,0.0); //紅色 }其他{gl_FragColor = texture2D(Texture,TexCoordOut); } – 2012-01-11 14:57:20
感謝,偉大的作品 – amir 2012-01-11 15:09:21