Real-Time Rendering(3) 2.1~

2章 The Graphics Rendering Pipeline

"A chain is no stronger than its weakest link."
鎖の強さは、もっとも弱い環によって決まる。

graphics rendering pipeline?
3d data -> pipeline -> 2d image
cueing?
Bresenham's line-drawing algorithm?
symmetric double-step algorithm?
pipeline is non-programmable
graphics rendering
virtual camera
view volume
frustum : 錐台
prism : 角柱
pipeline speed is determined by the slowest stage.
bottleneck of pipeline
pipeline 3 stage : application, geometry, rasterizer
conceptual stage (粗い分割)
functional stage (さらに分割)
時間がかかるstageを、さらにpipeline化する?
application stage : collision detection, global accceleration?, physics <- CPU
geometry    stage : transform, projection (what, how, where drawn) <- GPU
rasterizer  stage : per-pixel computation <- GPU

2.2 Application Stage
what happens?(example : collision) <- CPU
rendering primitive : point, line, triangle
幾何を決めるstage
superscalar?
multi-core CPUで高速化できる部分
hierarchical view transform culling

2.3 Geometry Stage
per-polygon, per-vertex

1. model & view transform,
2. vertex shading, 
3. projection,
4. clipping?,
5. screen mapping.
上の機能をsubstageで

2.3.1 Model & View Transform
model space (not transformed)
model transform (position, orientation)
model coordinates -> model transform -> world coordinates
world space
world space is unique
projection 
clipping
view transform
z-axis
delineated
camera space (eye space)
transform = 4*4 matrix (chapter 4)
ワールド座標にカメラと物体をセットして、view transformすると、自分の視点になる(camera space)
右がx軸、z軸は自分に向かって刺さってくる(前方がz軸の負の値)

2.3.2 Vertex Shading
for realistic
appearance model(material, light, ...)
shading (materialにlightが当たったときのeffectを決めること)
shading equation
rasterization stage(interpolation)
shading(chapter 3, 5)

2.3.3 Projection
projection( view volume -> unit cube )
unit cube( (-1,-1,-1), (1, 1, 1) ) = canonical view volume
orthographic (parallel) = 平行透視?
perspective projection  = **透視?(遠くの物が小さく見える遠近法)
oblique
rectangular box
view volume(rectangular box) -> orthographic projection -> unit cube
orthographic projectoin (parallel is parallel)
frustum
perspective projection : frustum -> unit cube
normalized device coordinates?

2.3.4 Clipping
部分的にview volumeに入っているprimitive -> clippingが必要
sectioning 
programmable processing unit
fixed-operation hardware
z-coordinate is stored in a Z-buffer
clipping : unit cubeによって切り取られた、不要部分を消す処理(p20 figure2.6)

2.3.5 Screen Mapping
描画に必要な部分(inside unit cube)だけ切り取られたdataが入ってきたところ
screen coordinates (x, y)
window coordinates = screen coordinates + z-coordinates
cartesian coordinates
leftmost
OpenGL  : (0,0) is lower left
DirectX : (0,0) is upper left
Cartesian system

2.4 The Rasterizer Stage
to set color for the pixels
rasterization (scan conversion)
z-value (depth-value)
pixel : picture element
differential : 微分?

2.4.1 Triangle Setup
?

2.4.2 Triangle Traversal
traversal
triangle traversal?
scan conversion?
triangle fragment?
?

2.4.3 Pixel Shading
input : interpolated shading data?
hardwired silicon
programmable GPU
texturing (chapter 6)
テクスチャ貼りはここで!
programmable!

2.4.4
color buffer
not fully programmable, but configurable
Z-buffer algorithm?
z-buffer stores closest primitive from camera
BSP tree
back-to-front order
O(n) convergence (n is the number of primitives)
opaque primitive
alpha channel
opacity
alpha test?
stencil buffer?
raster operation (ROP)
blend operation
frame buffer?
accumulation buffer
motion blur (averaged)
depth of field
antialiasing
soft shadow?
double buffering
back buffer
front buffer
vertical retrace?

2.5 Through the Pipeline
rendering primitive : point, line, triangle
CAD : computer aided design
see to it that
offline rendering?
micropolygon pipeline? (movie)
predictive rendering? (academic)
ray tracing
fixed-function pipeline
Z-buffer testing
Programmable GPU (Wii)
programmability
programmable GPUで、pipelineの不要な部分を消すなど、操作しよう!

Real-Time Rendering
Real-Time RenderingTomas Akenine-Moller

A K Peters Ltd 2008-07-31
売り上げランキング : 1190

おすすめ平均 star
star最近までの動向が把握できる
star調べたいことがあったら当たってみる本
star三次元リアルタイムCGの百科全書

Amazonで詳しく見る
by G-Tools