大佬教程收集整理的这篇文章主要介绍了Android Opengl 2.0 Alpha混合问题 – 半透明纹理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我启用Alpha Blending:
GLES20.glEnable(GLES20.GL_BLEND);
然后我设置了功能:
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA,GLES20.GL_ONE_MINUS_SRC_ALPHA);
要么
GLES20.glBlendFunc(GLES20.GL_ONE,GLES20.GL_ONE_MINUS_SRC_ALPHA);
我的片段着色器看起来像这样:
final String fragmentShader = "precision mediump float; \n" +"uniform vec3 u_LightPos; \n" +"uniform sampler2D u_Texture; \n" +"varying vec3 v_Position; \n" +"varying vec4 v_Color; \n" +"varying vec3 v_Normal; \n" +"varying vec2 v_TexCoordinate; \n" +"void main() \n" +"{ \n" +"float distance = length(u_LightPos - v_Position); \n" +"vec3 lightVector = normalize(u_LightPos - v_Position); \n" +"float diffuse = max(dot(v_Normal,lightVector),0.0); \n" +"diffuse = diffuse * (" + Float.toString((float)Brightness) +" / (1.0 + (0.08 * distancE))); \n" +"diffuse = diffuse; \n" //+3 +"gl_FragColor = (v_Color * diffuse * texture2D(u_Texture,v_TexCoordinatE)); \n" +"} \n";
和顶点着色器:
uniform mat4 u_MVPMatrix; uniform mat4 u_MVMatrix; attribute vec4 a_Position; attribute vec3 a_Normal; attribute vec2 a_TexCoordinate; varying vec3 v_Position; varying vec4 v_Color; varying vec3 v_Normal; varying vec2 v_TexCoordinate; void main() { v_Position = vec3(u_MVMatrix * a_Position); v_Color = a_Color; v_TexCoordinate = a_TexCoordinate; v_Normal = vec3(u_MVMatrix * vec4(a_Normal,0.0)); gl_Position = u_MVPMatrix * a_Position; } Thx for any suggestions:)
以上是大佬教程为你收集整理的Android Opengl 2.0 Alpha混合问题 – 半透明纹理全部内容,希望文章能够帮你解决Android Opengl 2.0 Alpha混合问题 – 半透明纹理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。