在知识星球里面,有一个同学咨询纹理池是如何实现的。
关于纹理池的实现方案以及背后的原因、细节、技巧,只有长篇大论才足以论道,本文暂表不提。
针对问题本身,笔者发现这位同学对OpenGL中的共享资源存在误解,他认为OpenGL中可以共享FBO。
为了纠正错误,也为了让大家在使用OpenGL之前理清一些基本概念,笔者专门附上一篇旧文系统讲述上下文的创建及共享。
[阅读全文]在知识星球里面,有一个同学咨询纹理池是如何实现的。
关于纹理池的实现方案以及背后的原因、细节、技巧,只有长篇大论才足以论道,本文暂表不提。
针对问题本身,笔者发现这位同学对OpenGL中的共享资源存在误解,他认为OpenGL中可以共享FBO。
为了纠正错误,也为了让大家在使用OpenGL之前理清一些基本概念,笔者专门附上一篇旧文系统讲述上下文的创建及共享。
[阅读全文]在掘金上看到最近的新活动 “代码吸猫”,技术类文章只要和猫有关就行。
[阅读全文]避免图片丢失,建议阅读微信原文:
前几天发布了这样一篇文章:
除了介绍 KodeLife 的使用之外,还附带了一个 Shader 绘制网格效果的代码。
把这篇文章发到技术群里,随机就有大佬指出不足之处,提示说代码还可以进一步优化,并且提供了源码学习。
可见加入一个高质量的技术群是多么重要,哪怕平时不说话,围观大佬们聊天都能学到很多。
现在加入还来得及,尚有余位,详情点击如下链接:
[阅读全文]
避免图片丢失,建议阅读微信原文:
经常有朋友在群里面问想学习 Shader 有什么工具可以推荐?
今天它来了~~~
推荐一款强大的 Shader 实时编辑预览的工具 —— KodeLife
。
对,它的名字就叫做 KodeLife
,可别看成 KobeLife
了,一个字母之差完全就是两个概念。
KodeLife
的官网地址如下:
贴一张主页封面图:
有需要的同学可以去官网下载安装,它是需要购买 License 的,不过可以免费使用两个月。
避免图片丢失,建议阅读微信原文:
学习 OpenGL ,相信肯定有不少人看过这个网站:
这是它的英文原版网站,后来又有了不同语言的翻译版本,对应中文就是:
这两个网站对于学习 OpenGL 帮助非常大,既可以用作入门的教材,也可以作为工具书,后续进行查漏补缺。
并且它的内容很全面,除了 OpenGL 基础知识、坐标系统、纹理、Shader、模型加载等,还有高级光照、PBR 等渲染技巧,这些在渲染引擎的开发中都是会用到的,后面会继续和大家分享。
[阅读全文]避免图片丢失,建议阅读微信原文:
转场效果是什么?
转场效果,简单来说就是两段视频之间的衔接过渡效果。
现在拍摄 vlog 的玩家越来越多,要是视频没有一两个炫酷的转场效果,都不好意思拿出来炫酷了。
那么如何在视频编辑软件中实现转场效果呢?
这里提供使用 OpenGL 实现视频转场的一个小示例,我们可以通过自定义 GLSL 来实现不同的转场效果。
以在 Android 平台上作为演示,但其实不管是 Android 还是 iOS,实现的原理都是一样的。
首先要有两段视频,视频 A 和视频 B,先播放视频 A 后播放视频 B,中间有一段过程称为 C ,C 就是视频 A、B 做转场动画的时间段。
如下所示:
播放器按照时间顺序,从 A -> C -> B 的播放,这样就有了转场的效果。
[阅读全文]避免图片丢失,建议阅读微信原文:
帧缓冲(Framebuffer Object),简称 FBO
,在渲染绘制中, 图像最终都是绘制到 FBO 上的,一般都是默认的 FBO 上,也就是我们的屏幕。
除此之外,还可以创建自己的 FBO,用来作为绘制的载体,当在自己的 FBO 上绘制好了之后,可以再把绘制内容显示到屏幕上,实现一个双缓冲的绘制。
FBO 实际上是由颜色附件、深度附件、模板附件组成的,作为着色器各方面(一般包括颜色、深度、深度值)绘制结果存储的逻辑对象。
[阅读全文]避免图片丢失,建议阅读微信原文:
OpenGL 是跨平台的、专业的图形编程接口,而接口的实现是由厂商来完成的。
而当我们使用这组接口完成绘制之后,要把结果显示在屏幕上,就要用到 EGL
来完成这个转换工作。