0%

本节主要是了解OpenGL是如何把我们的数据(顶点数据和纹理)传递到GPU的,GPU又是如何处理这些数据的

阅读全文 »

投影方式

OpenGL有两种投影方式

投影方式 说明 函数
正投影 相同的物体远近看起来都一样大 GLFrustum::SetPerspective(float fFov, float fAspect, float fNear, float fFar)
透视投影 近大远小 GLFrustum::SetOrthographic(GLfloat xMin, GLfloat xMax, GLfloat yMin, GLfloat yMax, GLfloat zMin, GLfloat zMax)
阅读全文 »

背景

当我们在绘制3D图形的时候,由于观察者的角度问题,3D图形拥有多个面,假设所有的面是不透明的,在前面的面是可见的,而背后的面是不可见的,对于不可见的部分,不应该渲染出来,并且出于性能的考虑,应该丢弃(如下面正方体有6个面,而我们能看到的只有三个面),对于下面正方体,面比较少,影响不大,但对于一些复杂的3D图形,影响就比较大了,这种问题称为隐藏面消除/找出可见面(Hidden surface elimination/Visible surface detemination)

阅读全文 »

几乎做iOS开发的人都知道,设置圆角会触发离屏渲染,那么什么情况下设置圆角不会触发离屏渲染呢,为什么会触发离屏渲染。

阅读全文 »

通过使用OpenGL绘制一个三角形,了解OpenGL的一些常用API和绘制流程,这里使用了GLUT(OpenGL Utility Toolkit)的API,GLUT是OpenGL官方提供的OpenGL工具箱,封装了一些有用的工具,用于辅助操作OpenGL

阅读全文 »

CPU和GPU

从图中结构可以看出

  • CPU的处理单元少,由控制器和缓存单元,擅长处理复杂的逻辑以及数据结构,CPU中的并行其实是通过时间切片完成的。任务之间依赖性高,擅长逻辑控制
  • GPU是由许多计算单元组成,每个计算单元可以独立工作,任务之间依赖性低,擅长浮点运算,擅长并发计算
阅读全文 »

我们知道,flutter有三颗树,widget树在每次setState的时候都会重建,而element树不会,而是会通过diff算法,计算出哪些element需要重建,哪些element可以重用,我们通过一个例子来开始

阅读全文 »

为了更好的学习 OpenGL,我们需要对部分专业属于有一些基本认识,本文介绍在计算机图形学常用的一些专业名词

阅读全文 »