OpenGL
逍遥游侠
这个作者很懒,什么都没留下…
展开
-
关于Gamma矫正的理解
参考文章:https://learnopengl-cn.github.io/05%20Advanced%20Lighting/02%20Gamma%20Correction/https://www.zhihu.com/question/27467127/answer/37602200https://zhuanlan.zhihu.com/p/66558476自己的部分理解,如有错误请指正:假如用8位(256)来表示灰度范围,线性表示下 0 ~ 255均匀分布,灰度值0.5对应 0.5*25原创 2021-07-16 15:21:06 · 168 阅读 · 0 评论 -
glReadPixels读取保存图片全黑
问题:在Android上使用 glReadPixel 读取当前渲染数据,在若干机型(华为P9以及魅族某魅蓝手机)上读取数据失败,glGetError()没有抓到错误,但是获取到的数据有误,如果将获取到的数据保存成为图片,得到的图片为黑色。解决方法:glReadPixels实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓...原创 2019-12-24 11:11:42 · 2453 阅读 · 0 评论 -
OpenGL调试小技巧
gl是缓存式的,会堆积到swap的时候一次生效,可以在每次draw的时候调用一次glFlush,报错更准确,不过会更卡原创 2019-12-20 18:25:13 · 164 阅读 · 0 评论 -
shader中texture2D(Texture,v_texCoord)找不到贴图返回不同值
texture2D(Texture,v_texCoord)找不到需要采样的贴图时,不同硬件上返回的值不同,有的返回0,则会看不到模型,有的返回1。尤其是在安卓设备上,需要分离出带有Alpha贴图的Alpha分量,如果没有分离却单独采样Alpha,可能会因为返回0不显示.Windows上 Debug和Release也有同样的问题,可能是Debug和Release配置中使用到的不是同一份ope...原创 2018-04-18 11:48:00 · 5356 阅读 · 0 评论 -
多线程渲染实现细节
原创 2018-04-18 13:50:36 · 1588 阅读 · 0 评论 -
向shader中传递 unsigned_byte 顶点颜色值警惕小于0大于255的情况
在实现FadeIn的过程中出现了图片显示后突然消失的情况,原来是 Color.a大于了 1.f,在乘完255后转换成了u32类型,传递给了shader中的color,超出后自动变成了0...原创 2018-07-10 11:10:55 · 601 阅读 · 0 评论 -
Shader安卓编译错误
Win编译运行正常,但是安卓编译出错,报错信息为:Compile FragmentShader Failed : L0001: Expected token ' ; ',found ' = '.查明是语法问题,解决后总结如下:变量类型问题:对于变量运算,GLSL 中有非常严格的规则,即 只有类型一致时,变量才能完成赋值或其它对应的操作。 可以通过对应的构造器来实现类型转换。flo...原创 2018-08-07 11:01:30 · 1142 阅读 · 0 评论 -
glDrawElements 绘制立方体共用顶点的法线和UV处理
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);第一个参数指定了我们绘制的模式,这个和glDrawArrays的一样。第二个参数是我们打算绘制顶点的个数,这里填6,也就是说我们一共需要绘制6个顶点。第三个参数是索引的类型,这里是GL_UNSIGNED_INT。最后一个参数里我们可以指定EBO中的偏移量(或者传递一个索引数组,但是这是当你不...原创 2019-09-10 19:02:19 · 2112 阅读 · 0 评论