This commit is contained in:
parent
fc471e5244
commit
8497bd9ccb
4 changed files with 55 additions and 10 deletions
0
src/routes/articles/cpu-architecture/+page.svx
Normal file
0
src/routes/articles/cpu-architecture/+page.svx
Normal file
0
src/routes/articles/gpu-architecture/+page.svx
Normal file
0
src/routes/articles/gpu-architecture/+page.svx
Normal file
0
src/routes/articles/memory-architecture/+page.svx
Normal file
0
src/routes/articles/memory-architecture/+page.svx
Normal file
|
@ -542,8 +542,6 @@ That's two down, one left to slay!
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
## Geometry Shader (optional stage)
|
## Geometry Shader (optional stage)
|
||||||
** You may skip this stage, and I recommend you fucking do so! **
|
|
||||||
|
|
||||||
**Different levels of parallelism (why do we still need the vertex shader)**
|
**Different levels of parallelism (why do we still need the vertex shader)**
|
||||||
|
|
||||||
**Takes as input "a" primitive, outputs any type of (but only one of) primitive(s)**
|
**Takes as input "a" primitive, outputs any type of (but only one of) primitive(s)**
|
||||||
|
@ -577,7 +575,9 @@ That's two down, one left to slay!
|
||||||
**Tessellation Control Shader** (or Hull Shader in DirectX terminology)
|
**Tessellation Control Shader** (or Hull Shader in DirectX terminology)
|
||||||
|
|
||||||
**Tessllator**
|
**Tessllator**
|
||||||
|
|
||||||
**Quad Primitives**
|
**Quad Primitives**
|
||||||
|
|
||||||
**Isolines**
|
**Isolines**
|
||||||
|
|
||||||
**Outer tessellation / Inner tessellation**
|
**Outer tessellation / Inner tessellation**
|
||||||
|
@ -586,7 +586,6 @@ That's two down, one left to slay!
|
||||||
|
|
||||||
**Tessellation examples**
|
**Tessellation examples**
|
||||||
|
|
||||||
|
|
||||||
## Geometry Processing -- Recap
|
## Geometry Processing -- Recap
|
||||||
You've just learned how the first major section of the graphics pipeline works! But before rewarding
|
You've just learned how the first major section of the graphics pipeline works! But before rewarding
|
||||||
your pretty eyes with a much deserved rest, let's have a quick recap!
|
your pretty eyes with a much deserved rest, let's have a quick recap!
|
||||||
|
@ -620,33 +619,79 @@ than only positions.
|
||||||
|
|
||||||
**Barycentric Interpolation** NOTE NOT linear interpolation
|
**Barycentric Interpolation** NOTE NOT linear interpolation
|
||||||
|
|
||||||
**Optimizations**
|
**Some Optimizations**
|
||||||
|
|
||||||
<Note title="Software Rasterization">
|
<Note title="Software Rasterization">
|
||||||
|
|
||||||
What we've implemented is a simple toy rasterizer written to be run on the CPU for educational
|
What we've implemented is a simple toy rasterizer written to be run on the CPU for educational
|
||||||
purposes only. It is inefficient, has shit precision (integer precision) thus choppy when moving things, and has many, many problems.
|
purposes only. It is inefficient, has shit precision (integer precision) thus it is choppy when moving things around, and has many problems.
|
||||||
However, GPUs have dedicated hardwares and incredibly optimized algorithms on those to do this
|
However, GPUs have dedicated hardwares that run incredibly optimized algorithms to do this
|
||||||
sort of thing; hence what we made is called a **software** rasterizer ---as opposed to the usual
|
sort of thing; hence what we made is called a **software** rasterizer ---as opposed to the usual
|
||||||
**hardware** rasterizer.
|
**hardware** rasterizer.
|
||||||
|
|
||||||
I'd like to remind you that the simplicity of the **rasterization** algorithm is one of the most
|
I'd like to remind you that the simplicity of the **rasterization** algorithm is one of the most
|
||||||
important reasons we use **triangles** during **polygonal rendering**.
|
important reasons we use **triangles** to do **polygonal rendering**. If polygons had variable
|
||||||
|
number of edges then it would be really difficult to come up with efficient algorithms for doing this.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
## Pixel Processing
|
## Pixel Processing
|
||||||
|
**Overview**
|
||||||
|
|
||||||
|
## Texturing
|
||||||
|
**Vertex Data Extension**
|
||||||
|
|
||||||
|
**Texture Coordinates**
|
||||||
|
|
||||||
|
**Texture Sampling**
|
||||||
|
|
||||||
|
**Mipmaps**
|
||||||
|
|
||||||
|
**Non-color Data**
|
||||||
|
|
||||||
|
## Lighting
|
||||||
|
**Phong Shading**
|
||||||
|
|
||||||
|
// The model was named after its developer B`ui Tóng Phong
|
||||||
|
|
||||||
|
**Ambient**
|
||||||
|
|
||||||
|
**Diffuse**
|
||||||
|
|
||||||
|
**Specular**
|
||||||
|
|
||||||
|
**Combined (Phong)**
|
||||||
|
|
||||||
|
## Anti-Aliasing
|
||||||
|
**SSAA**
|
||||||
|
|
||||||
|
**MSAA**
|
||||||
|
|
||||||
## Output Merger
|
## Output Merger
|
||||||
**Blending**
|
**Blending**
|
||||||
|
|
||||||
## The Future
|
## Some Optimizations
|
||||||
|
|
||||||
|
## Deferred Shading
|
||||||
|
**G Buffer**
|
||||||
|
|
||||||
|
**Forward pass**
|
||||||
|
|
||||||
|
**Deferred pass** or the **Lighting pass**
|
||||||
|
|
||||||
|
**Pros and Cons**
|
||||||
|
|
||||||
|
**Anti Aliasing**
|
||||||
|
|
||||||
|
**High memory consumption**
|
||||||
|
|
||||||
|
**May be slower for simple scenes**
|
||||||
|
|
||||||
|
## The Future of the Graphics Pipeline
|
||||||
**Mesh shaders**
|
**Mesh shaders**
|
||||||
|
|
||||||
**Real-time raytracing**
|
**Real-time raytracing**
|
||||||
|
|
||||||
**Deferred Shading**
|
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
Let's---for the final time, have a quick recap and go everything at the speed of **light** :)
|
Let's---for the final time, have a quick recap and go everything at the speed of **light** :)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue