1.离屏渲染的定义 正常情况下,在GPU渲染的过程中,会遵循‘画家算法’按次序由远及近的一层一层将结果放置到帧缓存区中,当需要时屏幕就会读取显示,然后将其从帧缓冲区中丢弃,周...
![240](https://cdn2.jianshu.io/assets/default_avatar/9-cceda3cf5072bcdd77e8ca4f21c40998.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
1.离屏渲染的定义 正常情况下,在GPU渲染的过程中,会遵循‘画家算法’按次序由远及近的一层一层将结果放置到帧缓存区中,当需要时屏幕就会读取显示,然后将其从帧缓冲区中丢弃,周...
在介绍正背面剔除与深度测试之前,首先我们需要准备一个案例说明为什么我们需要使用他们。这边我们先绘制一个甜甜圈,因为OpenGL中提供了相关的模型,所以我们直接使用即可。部分代...
上一个博客中,我们通过开启深度测试,解决了甜甜圈缺口的问题,深度测试的原理就是通过判断深度值(Z值),来解决有可能出现像素点被覆盖的问题。但是由于深度缓冲区的精度是有限的,在...
这次的案例我们在OpenGL综合练习的基础上配上纹理和镜面效果,提升整理的视觉效果。具体代码如下: 主要模块讲解 1.地板,大球,小球 地板而言,相比之前的demo有所改变,...
今天我们通过OpenGL ES来绘制一个正方体,并实现正方体的旋转。具体效果如下 具体实现可以分为四个部分: setUpConfig:OpenGL ES 相关初始化 setU...
想要使用OpenGL ES完成图片的加载,大概的流程可以分为以下几点:1.创建图层2.创建上下文3.清空缓存区4.设置RenderBuffer5.设置FrameBuffer6...
本案例的目的是理解如何用GLSL实现灰度,颠倒,正方形马赛克,六边形马赛克,三角形马赛克共五种滤镜。具体效果如下 要实现我们的滤镜效果,首先得能通过GLSL方式正常显示一张纹...
Metal简介 在 WWDC 2014 上,Apple为游戏开发者推出了新的平台技术 Metal。通过Metal相关API我们可以直接操作GPU,能最大限度的利用GPU能力。...
要了解内存对齐的规则,首先我们要先知道什么是内存对齐。 内存字节对齐的概念: 计算机中内存空间是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但...
本文的主要目的是理解isa指针相关的一些知识。 我们都知道oc对象的本质是一个结构体,想要更好的了解这个结构体,我们就需要用到apple主导编写的编译器clang,它是一个基...
文章开始,我们继续使用上一篇文章的demo,打开使用clang编译后的main.cpp 通过这张图,我们可以发现以下几点: 自定义类的类名是struct objc_objec...
本文的主要目的是理解cache_t以及sel-imp的缓存原理 cache中存储的是什么? 首先,我们需要知道cache中存储的到底是什么? 查看cache_t的源码,发现分...
在探索objc_msgSend时,我们需要先了解OC的runtime机制。 Runtime 介绍 runtime 是 OC底层的一套C/C++的API(引入 <objc/ru...
上一篇中,分析了快速查找流程,如果快速查不到,则需要进入慢速查找流程,核心方法_lookUpImpOrForward。 慢速查找底层源码 _lookUpImpOrForwar...
该案例的实现效果是在一个场景中绘制地板、大球、小球、公转自转和相机的移动,其中结合了OpenGL中大部分知识点,我们先看看最终的效果 可以看到,这最终效果主要有以下3部分构成...
setup如何使用? 对比vue2.0的使用方式,你需要把data, method, computed, watch以及生命周期都放到setup函数中来使用 1、setup中...
这次的笔记,我们通过一个OpenGL的一个简单使用案例,并结合上个笔记中的名词解释,来看看它是如何绘制渲染到屏幕的。实现效果为绘制一个正方形,并可以通过键盘控制正方形移动。 ...
首先我们来看一个图,它是iOS App 的图形渲染技术栈,由图可知App 使用 Core Graphics、Core Animation、Core Image 等框架来绘制可...