Real-Time Rendering 4h读书笔记-第三章

GPU

作用:专门处理高度并行化显示任务的处理器。有专门定制硅用来实现z buffer,快速访问纹理图像、各种buffer,还有找出那些像素被三角形覆盖。

注意点:延迟是GPU需要面对的,因为读取数据需要花费很长时间。思考延迟的一个标准是,距离处理器越远,花费时间越长。读取内存所需时间就长于读取寄存器(cpu)时间。

3.1 数据并行架构

cpu架构形式及如此设计原因:

cpu含有多个处理器,要处理大量数据结构,和代码库,为了尽可能减小延迟影响,cpu含有很多高速缓存,还用了很多技术:分支预测、指令重新排序、寄存器重命名和缓存预取等。

gpu架构形式及设计原因:

gpu含有大量处理器(着色器程序)

a)GPU可以大规模并行处理数据的原因:1)流处理器,可以处理有序的相似数据集。2)这些调用尽可能独立,无需来自相邻调用的信息,不共享可写的内存位置。

b)GPU可以大规模并行处理数据的工作原理:每一个像素产生的fragment称为一个thread,具有相同指令(shader)的thread聚合在一起组成一个wrap,同一个wrap内是并行执行的。当wrap 1在执行一个读取纹理的指令时,会切换到下一wrap 2,执行wrap 2的指令,如果遇到延迟读取之类的指令,再次切换到下一wrap 3,以此类推,用这种模式来消除延迟。

c)影响GPU性能的因素:

1)shader program(着色程序)的结构。每个thread需要的寄存器越多,那么能够进驻到GPU的thread就越少,wrap也就越少,能够切换的次数就越少,能够消除的延迟就越少。------我的解读:顶点着色器和片元着色器输入值结构体里面的值越多,那么效率就越低。

2)动态分支。同一个wrap内有if语句或者循环语句,有的thread满足if条件需要执行,而其他thread不执行,那么整个wrap就需要等待if语句执行完。

3.2 GPU渲染管线综述

3.3 可编程着色器阶段

a)可编程着色器设计思想:所有顶点、像素、几何、细分曲面等着色器共享同一编程模型,这样GPU可以根据需要分配处理器,保证所有的单元都处理忙碌中。

b)每一个可编程着色器阶段都有两种输入:1)均衡输入(只在不同draw calls之间更改) 2)可变输入(从三角形顶点或者片元中来的数据)

什么事静态流控制、动态流控制?(没看懂)

3.4 GPU的API发展进程。

3.5 顶点着色器

a)在顶点着色器前有一些数据操作需要注意,input assembler(在DirectX中)会根据位置和颜色数组创建三角形的顶点来呈现一个物体。

b)顶点着色器的应用:

1)对象生成,只创建一个网格,并由顶点着色器使其变形

2)使用剥皮和变形技术使角色的身体和面部具有动画效果

3)程序上的变形,如浮子、布或水的运动

4)粒子的产生,通过发送简并(无区域)网格沿管道向下,并根据需要给它们一个区域

5)镜头畸变、热雾、水波纹、页面卷曲等效果,通过使用整个framebuffer的内容作为一个纹理在屏幕对齐的网格上进行过程变形

6)应用地形高度字段使用顶点纹理获取

3.6 曲面细分阶段

a)作用:1)节约内存  2)防止CPU和GPU之间的总线成为动画角色或对象的瓶颈  3)这种控制细节级别的能力还允许应用程序控制其性能

b)组成:DirectX : the hull shader, tessellator, and domain shader

OpenGL : tessellation control shader ,domain shader , tessellation evaluation shader

c)hull shader 作用:1)告诉细分器生成多少个三角形,以及用什么配置。 2)对每个控制点对每个控制点进行处理。也可以修改碎片描述、增减控制点。

d)细分器  作用:增加新顶点以便domain shader处理。

3.7 几何着色器

a)作用:1)修改传进来的数据(单个物体和相关顶点)或者制作有限数量的拷贝。 2)生成高质量的阴影贴图。  3)其他利用几何着色器的算法包括从点数据创建可变大小的粒子,沿着轮廓挤压鳍以进行毛皮渲染,以及为阴影算法寻找对象边缘

3.8  像素着色器阶段

fragment(片元)定义:部分或者完全覆盖到像素的三角形的一部分叫做片元。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值