随笔分类 - OpenGL ES
计算机图形学
OpenGL ES 3.0
摘要:对PnP问题结合图形学渲染透视投影的一些思考,提出在透视投影情况下的物体平移变换优化求解法
阅读全文
摘要:# Shader 特效越跑越慢问题的排查 ## 问题 某屏幕特效 shader 逻辑是呈现自上而下或自左而右的扫描线效果,其核心 逻辑大致如下 ``` float t = fract(time/3.6); t = (t-0.5)*4.0-1.0; t = abs(x-t); t = 1.0-smoo
阅读全文
摘要:# Float value issue in GLSL 在编写 Shader 特效的过程中,遇到一个奇怪的问题,表现怪异,逻辑大致如下: `out_color += add_color * factor;` 其怪异表现为,即使在确认 factor 为 0(或无限 接近于0.0)时,预期效果应该是无叠
阅读全文
摘要:# 渲染引擎的资源加载优化 针对一个渲染引擎的性能,最主要的当然是实时渲染的帧率。另一方面,对于轻型的引擎来说,用户不会对场景加载 保有一个较长的加载时间的心理预期,最好是,点击按键,瞬间整个场景出现,毕竟轻量应用场景不是重型游戏。针对 这种需求,我们需要对资源加载做一个全面的性能排查与优化。 ##
阅读全文
摘要:## 问题 场景:一个由多个平面叠加的场景 ,每个平面使用半透明的 shader 进行渲染,每个平面的渲染结果互相叠加在最终的目标上,其中每个平面的大小都几乎占满显示区域。 这样的场景原以为不会有很大的渲染部分的耗时,但是性能测试数据却显示,在高通 845 的手机上,仅 3D 渲染部分需要耗时 37
阅读全文
摘要:PAK 文件 Pak 文件是 Unreal 打包素材的文件。一个 Unreal 程序可以使用或者不使用 Pak 来管理素材。 Unreal 的 Pak 文件内包括了物体,材质,blueprint,map等等。Level 以 map 的形式保存。 Dynamic load map from pak 目
阅读全文
摘要:对 OpenGL 中 depth 概念的一些理解 首先,OpenGL Pipeline 有这些 transform: Model View Projection -> Clipping -> [ Perspective Divide( a part of Projection) ] -> Viewp
阅读全文
摘要:Skeleton with Assimp 骨骼动画解析 骨骼动画是图形学中十分常见应用很广泛的一个技术,也是比较基础的内容,作为图形学的工程师需要将这一部分内容梳理清晰,主要关键在于几点:第一,分清楚 骨骼 、 节点 两个概念;第二,熟悉使用 Assimp(或者其他的)的解析方式,并编程实现骨骼的解
阅读全文
摘要:Android GL deadlock timeout error CRASH 在 PBR&IBL 的开发过程中,在 Linux 验证程序运行正常后,移植到 Android 平台,发现程序 crash. 程序的逻辑是,响应页面某按钮点击事件,在gl线程加载渲染模型以及做PBR和IBL的预计算工作,之
阅读全文
摘要:I found something in the Specification of OpenGL Version 4.6 (Core Profile): The output of Vertex Shader: If the output variables are passed directly
阅读全文
摘要:使用 GLFW GLAD 创建 Linux(Ubuntu) 下的 OpenGL 开发环境
阅读全文
摘要:真实皮肤渲染简述 1、PBR PBR(Physically Based Rendering) 基于物理的渲染,目的就是为了渲染效果更像真实世界中物体呈现的样子。一个例子就是金属质地物体的渲染。 PBR 的关键,在于两点:微表面模型和能量守恒。微表面模型假设模型表面是粗糙的,粗糙程度影响了光照在该表面
阅读全文
摘要:GPU 实现 RGB YUV 转换 前言 RGB YUV 转换的公式是现成的,直接在 CPU 端转换的话,只需要遍历每个像素,得到新的 YUV 值,根据其内存分布规律,合理安排分布即可。然而在 CPU 端进行转换,存在的问题运行效率太低,无法满足高效转换的需求。我们将目光投向拥有流水线体系的支持高速
阅读全文
摘要:glReadPixel 读取数据错误问题 问题:在Android上使用 glReadPixel 读取当前渲染数据,在若干机型(华为P9以及魅族某魅蓝手机)上读取数据失败, 没有抓到错误,但是获取到的数据有误,如果将获取到的数据保存成为图片,得到的图片为黑色。 面对这个问题束手无策,检查不出任何glE
阅读全文
摘要:# 纹理混合遇到的问题 pre-multiplying OpenGL Android iOS
# Alpha-blending pre-multiplying of texture OpenGL Android iOS
阅读全文
摘要:为了实现一个全景图片展示的功能,需要借助手机的姿态传感器,实现一个这样的功能:当手机旋转时,视角也跟着旋转(读者若理解不能,可以参考下现在流行的 VR 应用,使用陀螺仪模式时的效果,亦可称作“单目 VR 效果”)。这个功能的实现原理为:利用手机传感器得到手机的当前的姿态的信息(可以是用各种方式来描述
阅读全文
摘要:该项目地址: "地址" 克隆地址为 目前如果想在iOS设备上实现双目VR的功能,Google 已经提供了官方的sdk,上手简单,但是由于在实际使用中有其他需求,GVR的源码无法修改,所以还是使用这个野生的SDK来开发。这篇文章主要就是简单分析一下这个sdk的ViewController 的代码,至于
阅读全文
摘要:iOS下使用OpenGL 如果使用GLKit View 那么不用担心屏幕旋转的问题,说明如下: If you change the size, scale factor, or drawable properties of a GLKit view, it automatically deletes
阅读全文
摘要:今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示。 思路很简单,在vertex shader内知道顶点坐标,进行计算,算好以后判断是否需要显示,例如设置alpha值,那么再将alpha值传给fragment sha
阅读全文
摘要:鱼眼 计算机图形学 投影 OpenGL 透视投影 shader
阅读全文