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