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