一、Chapter1——Introduction

(一)Introduction of real-time rendering

1、what is "real-time rendering" ? 

——not individual image, rather dynamic process.

2、FPS & Hz

3、display rate & refresh rate

A shutter that illuminates the frame three times has a 72 Hz refresh rate, which shows frames at 24 FPS.

4、real-time rendering & interactivity.

real-time rendering always means showing the 3D image on the screen , not just interactivity.

5、three point of real-time rendering 

interactivity, 3D and graphics acceleration hardware.

6、About the content of the book

We will focus on providing methods to increase speed and improve image quality, while also describing the features and limitations of acceleration algorithms and graphics APIs.

(二)Notation and Definition

略过

二、Chapter2——The Graphics Rendering Pipeline.

(一)Concept

the main function of the graphics rendering pipeline is to generate a 2D image given a virtual camera , 3D objects ,light sources and more.

The locations and shapes of the objects in the image are determined by their geometry, the characteristics of the environment, and the placement of the camera in that environment.

The appearance of the objects is affected by material properties, light sources, textures (images applied to surfaces), and shading equations.

(二)、Architecture

1、Pipeline

A pipeline consists of several stages , each of which performs part of a larger task.

The pipeline stages execute in parallel, with each stage dependent upon the result of the previous stage. ——so they are stalled until the slowest stage has finished its task.

2、4 main stages of graphics rendering pipeline

3、functional stages & the structure of their implementation. 

A functional stage has a certain task to perform but does not specify the way that task is executed in the pipeline. A given implementation may combine two functional stages into one unit or execute using programmable cores, while it divides another, more time-consuming, functional stage into several hardware units.

4、FPS & Hz

Frames per second is used to express either the rate for a particular frame, or the average performance over some duration of use. Hertz is used for hardware, such as a display, which is set to a fixed rate.

5、The responsibility of every stage

Application :  collision detection, global acceleration algorithms, animation, physics simulation, and many others, depending on the type of application. runing on CPUs.

Geometry Processing : transforms, projections, and all other types of geometry handling. This stage computes what is to be drawn, how it should be drawn, and where it should be drawn. Runing on the GPU.

Rasterization :  takes as input three vertices, forming a triangle, and finds all pixels that are considered inside that triangle, then forwards these to the next stage.Runing on the GPU.

Pixel Processing : executes a program per pixel to determine its color and may perform depth testing to see whether it is visible or not.Runing on the GPU.

(三)、The Application Stage.

1、some application work can be performed by the GPU, using a seperate mode called a compute shader, which treat GPU as a highly parallel general processor, ignoring its special functionality meant specifically for rendering graphics.

2、not divided into substages. so to increase performance, this stage is often executed in parallel on several processor cores.

3、receive the input of keyboard ,mouse and so on. 

(四)、Geometry Processing

1、The geometry processing stage divided into a pipeline of functional stages.

2、Vertex Shading

two main tasks : compute the position of vertices and whatever programmer need to output about vertices.

2.1、the position of the models have some space or coordinate system.

①model transformation : to generate locations,orientations, and sizes of models.

model space --> world space

②view transform : To facilitate projection and clipping, the camera will be put at the origin and aim special direction.

world space --> view space

2.2 、Materials and lights could render the appearance of the models.

This operation of determining the effect of a light on a material is known as shading. It involves computing a shading equation at various points on the object.

2.3、As part of vertex shading, rendering systems perform projection and then clipping.

Projection  transforms the view volume into a unit cube with its extreme points at (−1,−1,−1) and (1,1,1).

there are two main ways of projection : orthographic and perspective projection.

view space --> clip space

orthographic projection : The main characteristic of orthographic projection is that parallel lines remain parallel after the transform.  the model will be transformed into a unit cube directly.

perspective projection :  the farther away an object lies from the camera, the smaller it appears after projection. the models will be transformed into a frustum and then a unit cube.

and then devide by w for the next stage clipping.

3、Optional Vertex Processing

optional stages that can take place on the GPU, in this order: tessellation, geometry shading, and stream output.

3.1、tessellation stage 

①the processed vertices could make some patches,  and a set of patches could form curved surfaces. the tessellation stage will convert sets of patch vertices into larger sets of vertices that are then used to make new sets of triangles.   The camera for the scene can be used to determine how many triangles are generated: many when the patch is close, few when it is far away.

②The tessellation stage consists of a series of stages itself—hull shader, tessellator, and domain shader.

3.2、 geometry shader

It takes in primitives of various sorts and can produce new vertices.

An example of particle generation.

3.3、stream output

Instead of sending our processed vertices down the rest of the pipeline to be rendered to the screen, at this point we can optionally output these to an array for further processing.

4、Clipping

It is the primitives that are partially inside the view volume that require clipping.

In addition to the six clipping planes of the unit cube, the user can define additional clipping planes to visibly chop objects.

The clipping step uses the 4-value homogeneous coordinates produced by projection to perform clipping. Values do not normally interpolate linearly across a triangle in perspective space. The fourth coordinate is needed so that data are properly interpolated and clipped when a perspective projection is used. Finally, perspective division is performed, which places the resulting triangles’ positions into three-dimensional normalized device coordinates.

Question : why interpolate there ?

the order : clipping --> perspective division --> culling.

5、Screen Mapping

Then the screen mapping is a translation followed by a scaling operation. The new x- and y- coordinates are said to be screen coordinates. The z-coordinate is also mapped to [z1 ,z2 ], with z1 = 0 and z2 = 1 as the default values.

The Pixel Representation : integer and floating point. the transform of them :

(五)、Rasterization

contain two substage : triangle setup and triangle traversal.

1、triangle setup

the differentials, edge equations, and other data for the triangle are computed.

2、triangle traversal

check if the center of vertices cover the triangle  -->  if covered, generate a fragment by interpolating.

(六)、Pixel Processing

two substage : pixel shading and merging.

1、pixel shading

the end product is a color value for each fragment.  A large variety of techniques can be employed here, one of the most important of which is texturing.

2、merging

combine the fragment color produced by the pixel shading stage with the color currently stored in the buffer.

This stage is also responsible for resolving visibility.—— z-buffer, which allow any order to be rendered. but the transparency is one of the major weaknesses of the basic z-buffer.

more :  alpha channel, stencil buffer. front buffer & back buffer.

(七)、Through the Pipeline

reference : 《real-time rendering》(fourth edition)

Real-Time Rendering读书笔记——01相关推荐

  1. 独立式环境与宿主式环境————《标准C语言指南》读书笔记01

    独立式环境与宿主式环境----<标准C语言指南>读书笔记01 在编写和转换一个C程序之前,需要考虑它的执行环境,因为这关系到源文件的内容(程序应当如何编写),也关系到转换后的程序能否正常执 ...

  2. 大数据之路读书笔记-01总述

    大数据之路读书笔记-01总述 此系列文章为大数据之路的读书笔记,如侵可删 2014 年,马云提出,"人类正从 IT 时代走向 DT 时代 "如果说IT时代是以自我控制.自我管理为主 ...

  3. 推荐系统实践读书笔记-01好的推荐系统

    推荐系统实践读书笔记-01好的推荐系统 在研究如何设计推荐系统前,了解什么是好的推荐系统至关重要.只有了解了优秀推荐系统的特征,我们才能在设计推荐系统时根据实际情况进行取舍.本章分3个步骤来回答这个问 ...

  4. 《深入理解计算机系统》读书笔记-01

    <深入理解计算机系统>读书笔记-01 <深入理解计算机系统(原书第 3 版)> 英文版简称CS: APP 2017 年 12 月第 1 版第 6 次印刷 ISBN 978-7- ...

  5. 正面管教读书笔记 01 正面的方法

    正面管教读书笔记 01 正面的方法 正面管教 作者:简·尼尔森(Jane Nelsen) 第1章 正面的方法 社会的变化造成了孩子的变化 社会进步导致服从和顺从不在重要了 今天的孩子很少有机会培养责任 ...

  6. 《The Art of Readable Code》 读书笔记 01

    放假前在学校图书馆借了一本新书<The Art of Readable Code>,寒假回来看看,写写其中的Key Idea .summary和一些读书笔记. Preface 前言部分主要 ...

  7. 一图讲解一条sql语句的一生——《收获,不止Oracle》的读书笔记01

    其实也是<收获,不止Oracle>的读书笔记之一啦 微信读书可以看,数据库我觉得相通性还是比较大的,不管你用的哪种,都可以学学 难度的话,我才看到2.2 ,觉得本菜鸟还是可以看懂的. 说是 ...

  8. 超详细的张飞硬件90天读书笔记01

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.写读书笔记的目的 二.学习内容 1.电阻 2.电阻型号 3.电阻选择 4.电流设计中用来检测电流方法 5.常用电阻 ...

  9. EffectiveJava读书笔记01

    本文为Effective Java中文版的读书笔记,可能部分术语听起来比较枯燥,但术语其实就是最精炼的总结,可以反复琢磨.由于时间仓促,看的囫囵吞枣,之后有空再刷. 文章目录 1.创建和销毁对象 0. ...

最新文章

  1. 深度学习编译器Data Flow和Control Flow
  2. 字节跳动_掌握Java字节码
  3. 关于如何生成随机记录
  4. pytorch张量的简介与创建(代码)
  5. shell脚本遍历分库分表数据
  6. list ajax封装,util-pagelist_基于layui封装的ajax分页列表
  7. switch()语句块的出口:break;
  8. 4.11_facade_结构型模式:外观模式
  9. 向量范数证明例题_第八课:向量的范数
  10. Html5的vedio视频播放
  11. -函数-MATLAB提供的函数/主子函数/匿名-嵌套函数
  12. python制作软件安装包_Python安装包及开发工具
  13. 装双系统出现winload.efi,也就是安装win10,提示0xc0000359
  14. 【大数据】一图了解大数据发展历程
  15. 《自然语言处理-基于预训练模型的方法》笔记
  16. Apache服务器配置参数的全面说明(所有参数)
  17. maptalk地图以及自定义标点的引入
  18. 用Python写了个贪吃蛇
  19. 龙门阵179期实录:技术专场之Android安全现状
  20. 分享77个NET源码,总有一款适合您

热门文章

  1. 我的世界php motd,我的世界MOTD攻击服务器 频繁发送请求
  2. 客户成功故事 | 深圳赛意法:数据分析,为企业可持续发展注入源动力
  3. 一行代码调节屏幕亮度
  4. 大直径硅晶圆在单晶炉高温高速热处理过程中的热行为
  5. MapReduce各个执行阶段
  6. 爬虫第二弹:千图网电商淘宝模板图片下载
  7. 用Unity实现Flat Shading
  8. Xmind 8 pro 软件破解版(重点推荐)
  9. Java Day24
  10. Openlayer图层载入时进行坐标系的转换