GLES工作中纠错记录
Golden_Shadow
做一名优秀的游戏程序员
展开
-
各项异性过滤
glTexParameterf(texture2d, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)maxAnisotropy);maxAnisotropy的最小值是1."When the texture's value of TEXTURE_MAX_ANISOTROPY_EXT is equal to 1.0, the GL uses an原创 2016-10-28 18:05:16 · 2340 阅读 · 0 评论 -
GL_INVALID_OPERATION
调用绘制的时候,glGetError()返回了GL_INVALID_OPERATION. 有幸读到某篇中文文章点击打开链接,说到可能是因为使用了没有设置的纹理,查看一下果然在shader里针对shadow map调用了tex2Dproj.去掉这个调用,就不报错了. 文章中所说内容给了我启示,同时我也对文章所说有所怀疑,希望大家也能对一切未知事物抱有怀疑态度,不盲从.原创 2016-10-28 21:15:38 · 12728 阅读 · 0 评论 -
opengl与d3d产生或填入mipmap参数不同之处
d3d中,9和11都是,CreateTexture第三个参数mipmaps,0的话d3d会创建出mipmap,1的话不创建,只填入原图.d3d的产生mipmap尽情用,在电脑上,winPhone没开发过不知道. opengl中,glGenerateMipmap会产生mipmap,过程不可控,据说在各个平台有问题,没亲自试过.项目中使用了手动填入图.glTexImage2D第二个参数mipma原创 2016-11-24 17:58:27 · 804 阅读 · 0 评论 -
MALI上shadow map有误问题.
这个问题爆发于一个多月前,几经总结发现只要mali的gpu都有一样的问题.断断续续,前后找这个问题找了能有10天.直接说结果. 结论就是,在mali上,深度所用的采样器,如sampler2D需要指定为highp,即如:highp sampler2D Samp_RT_Depth; 如果不这样的话精度不够,后续运算的结果就错了,其他手机没有这个问题.规范上,fragment shader里,默原创 2016-12-08 11:08:54 · 527 阅读 · 0 评论 -
OpenGL上的纹理状态跟着纹理ID走
引擎每次设置纹理状态时,都会检查一下状态是否已经是当前值,这样就会减少不必要的api调用.之前是同unit里存的值来比较,结果不对.后来几经查与调试,发现是跟纹理ID走.纹理IDdelete后,同一个ID再切回来以前的状态都成默认的了. 发现出了一个叫Vulkan的图形API,替代opengl es的.概念向d3d12看齐,与时俱进的东西.花一些时间学习下.原创 2016-12-17 15:01:45 · 1245 阅读 · 0 评论