@@ -19,26 +19,17 @@ This is due **INSTRUCTOR TODO** evening at midnight.
19
19
20
20
** Summary:** ** INSTRUCTOR TODO**
21
21
22
- In this project, you will use CUDA to implement a simplified standard
22
+ In this project, you will use CUDA to implement a simplified
23
23
rasterized graphics pipeline, similar to the OpenGL pipeline. You will
24
24
implement vertex shading, primitive assembly, rasterization, fragment shading,
25
25
and a framebuffer. More information about the rasterized graphics pipeline can
26
26
be found in the class slides and in the CIS 560 lecture notes.
27
27
28
- The base code provided includes an OBJ loader and much of the mundane I/O and
28
+ The base code provided includes an OBJ loader and much of the I/O and
29
29
bookkeeping code. It also includes some functions that you may find useful,
30
30
described below. The core rasterization pipeline is left for you to implement.
31
31
32
- A rasterizer is ** NOT** :
33
-
34
- * A ray tracer. You shouldn't be doing any ray casting anywhere in the project
35
- (... unless you do some fancy raytraced effects in your fragment shader).
36
- This project will let you generate graphics WITHOUT the need for ray casting!
37
- * An OpenGL rendering engine. You shouldn't write any new OpenGL code - think
38
- of your project as a reimplementation of OpenGL's core pipeline.
39
-
40
- Finally, note that, while this base code is meant to serve as a strong starting
41
- point for a CUDA path tracer, you are not required to use it if you don't want
32
+ You are not required to use this base code if you don't want
42
33
to. You may also change any part of the base code as you please.
43
34
** This is YOUR project.**
44
35
@@ -77,15 +68,15 @@ the console for errors.
77
68
In this project, you are given code for:
78
69
79
70
* A library for loading/reading standard Alias/Wavefront ` .obj ` format mesh
80
- files and converting them to OpenGL style VBOs/IBOs
71
+ files and converting them to OpenGL- style vertex and index buffers
81
72
* A suggested order of kernels with which to implement the graphics pipeline
82
- * Working code for CUDA-GL interop
73
+ * CUDA-GL interop
83
74
84
75
You will need to implement the following features/pipeline stages:
85
76
86
77
* Vertex shading.
87
78
* (Vertex shader) perspective transformation.
88
- * Primitive assembly with support for triangle VBOs/IBOs .
79
+ * Primitive assembly with support for triangle vertex and index buffers .
89
80
* Rasterization: ** either** a scanline or a tiled approach.
90
81
* Fragment shading.
91
82
* A depth buffer for storing and depth testing fragments.
@@ -98,21 +89,20 @@ You are also required to implement at least "3.0" of the following features.
98
89
(the parenthesized numbers must add to 3.0 or more):
99
90
100
91
* Additional pipeline stages.
92
+ * (1.0) Tessellation shader.
101
93
* (1.0) Geometry shader.
102
94
* (1.0) Transform feedback.
103
- * (1.0) Stencil test.
104
95
* (0.5) Back-face culling with stream compaction.
105
96
* (0.5) Scissor test.
106
97
* (0.5) Blending.
98
+ * (1.0) Instancing
107
99
* (0.5) Correct color interpolation between points on a primitive.
108
100
* (1.0) UV texture mapping with bilinear texture filtering and perspective correct texture coordinates.
109
101
* Support for rasterizing additional primitives:
110
- * (0.5) Lines.
111
- * (0.5) Line strips.
112
- * (0.5) Triangle fans.
113
- * (0.5) Triangle strips.
102
+ * (0.5) Lines or line strips.
114
103
* (0.5) Points.
115
104
* (1.0) Anti-aliasing
105
+ * (1.0) Occlusion queries
116
106
* (1.0) Order-independent translucency using a k-buffer
117
107
* (0.5) ** Mouse** -based interactive camera support.
118
108
@@ -157,7 +147,7 @@ necessary time spent debugging.
157
147
* Fragment shading.
158
148
* ` fragmentIn[m] fs_input -> fragmentOut[m] fs_output `
159
149
* A super-simple test fragment shader: output same color for every fragment.
160
- * Also try Tdisplaying various debug views (normals, etc.)
150
+ * Also try displaying various debug views (normals, etc.)
161
151
* Fragments to depth buffer.
162
152
* ` fragmentOut[m] -> fragmentOut[resolution] `
163
153
* Can really be done inside the fragment shader.
@@ -282,17 +272,16 @@ The following resources may be useful for this project:
282
272
283
273
## README
284
274
285
- All students must replace or augment the contents of this Readme.md in a clear
286
- manner with the following:
275
+ Replace the contents of this README.md in a clear manner with the following:
287
276
288
277
* A brief description of the project and the specific features you implemented.
289
278
* At least one screenshot of your project running.
290
279
* A 30 second or longer video of your project running.
291
- * A performance evaluation (described in detail below).
280
+ * A performance analysis (described below).
292
281
293
282
### Performance Analysis
294
283
295
- The performance evaluation is where you will investigate how to make your CUDA
284
+ The performance analysis is where you will investigate how to make your CUDA
296
285
programs more efficient using the skills you've learned in class. You must have
297
286
performed at least one experiment on your code to investigate the positive or
298
287
negative effects on performance.
0 commit comments