REAL-TIME RENDER 4th Chapter 23 Graphics Hardware

尽管图形硬件更新换代很快,但在其设计中仍有一些通用的概念和架构。本章的目标是理解图形系统中各个硬件以及它们之间的关系。我们首先讨论如何光栅化线段和三角形,然后是GPU为何拥有强大的计算能力以及GPU中的调度,包括延迟(latency)和占用率(occupancy)。之后讲述显存,缓存,压缩,颜色缓冲以及与GPU深度相关的内容。然后会深入描述关于纹理的一切,接下来会有一小节介绍GPU架构类型。在23.10节给出三种不同架构的案例,最后还会浅谈一下光纤追踪架构

Sction 23.1 Rasterization

任何GPU都有一个重要特性就是绘制三角形或线段的速度。正如 Section 2.4 描述,光栅化阶段包括三角形设置和三角形遍历。此外,我们还会描述与三角形遍历相关的:如何插值三角形属性。最后,我们讨论标准光栅化的延伸:保守光栅化( conservative rasterization)

  • 像素中心使用 ( x + 0.5 , y + 0.5 ) (x+0.5,y+0.5) (x+0.5,y+0.5)表示,其中 x ∈ [ 0 , W − 1 ] x\in[0,W-1] x[0,W1]并且 y ∈ [ 0 , H − 1 ] y\in[0,H-1] y[0,H1] W × H W×H W×H是屏幕分辨率
    未经变换的的顶点写作 v i , i ∈ { 0 , 1 , 2 } v_{i},i\in\{0,1,2\} vi,i{ 0,1,2},经过变换包括投影但未除 w w w写作 q i = M v i q_{i}=Mv_{i} qi=Mvi
    二维屏幕空间坐标可写作 p i = ( ( q i x / q i w + 1 ) W / 2 , ( q i y / q i w + 1 ) H / 2 ) p_{i}=((q_{ix}/q_{iw}+1)W/2,(q_{iy}/q_{iw}+1)H/2) pi=((qix/qiw+1)W/2,(qiy/qiw+1)H/2),如Figure23.1 所示Figure23.1

    • 屏幕空间中由二维顶点 p 0 , p 1 , p 2 p_{0},p_{1},p_{2} p0,p1,p2组成三角形,屏幕大小为16x8(像素)。注意像素点 ( x , y ) (x,y) (x,y)的中心是 ( x + 0.5 , y + 0.5 ) (x+0.5,y+0.5) (x+0.5,y+0.5),底边的法线用红色箭头表示(长度缩短了4倍),只有绿色像素在三角形内部。辅助像素组以黄色表示大小为2x2,其中至少有一个像素在三角形内部,并且辅助像素组的中心在三角形外部。辅助像素组需要使用有限差分法计算导数。
  • 像素网格分成 2 × 2 2×2 2×2个像素的组,称为四边形。为了能够计算纹理LOD(Level of detail)所需的导数 (Section 23.8),对三角形内部至少有一个像素的四边形的其他像素都执行像素着色器。这是大多数GPU的核心设计并且影响接下来的很多阶段。三角形越小,辅助像素组的像素数与三角形内部像素数的占比就越大,这意味着执行像素着色器时,小三角形的开销是昂贵的。最坏的情况是三角形只覆盖一个像素,这意味着它需要三个辅助像素。辅助像素的数量有时也被称为 q u a d   o v e r s h a d i n g quad\ overshading quad overshading

  • 图形硬件对三角形每条边使用边界函数( e d g e   f u n c t i o n edge\ function edge function)来决定像素中心或任何一个位置是否在其内。边界函数基于直线方程
    n ⃗ ⋅ ( ( x , y ) − p ⃗ ) = 0 \vec n\cdot((x,y)-\vec p)=0 n

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值