我正在使用完全透明的png-24图像.我也在改变一些纹理的颜色,这些纹理是白色的,有些区域是透明的或半透明的.一切正常.
但是,当我尝试设置其中一个纹理的Alpha值时,它的效果并不正常.颜色太饱和了,如果Alpha值= 0,我会在浅灰色背景上留下白色而不是透明的图像.当这样的透明图像在暗图像上时,暗图像变为与透明图像的颜色类似的颜色.
我已经尝试了glTexEnvi和glBlendFunc的许多参数组合但没有成功.
我对OpenGL不是很了解,所以如果有人有任何建议,那就太棒了.如果有任何细节可以帮助我,请告诉我.
谢谢.
这是OpenGL的初始化
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODulATE); glClearcolor(1.0f,1.0f,1.0f); gldisable(GL_DEPTH_TEST); glEnableClIEntState(GL_VERTEX_ARRAY); glEnableClIEntState(GL_color_ARRAY); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_Alpha,GL_ONE_MINUS_SRC_Alpha); glEnableClIEntState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_BLEND);解决方法 听起来你告诉OpenGL你的纹理有预乘Alpha,但实际上并没有.
你使用什么参数glBlendFunc?
More explanation of pre-multiplied alpha
总结以上是内存溢出为你收集整理的iphone – OpenGL纹理混合问题全部内容,希望文章能够帮你解决iphone – OpenGL纹理混合问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)