CSCI 444/544 - Advanced Computer GraphicsSpring 2017 - Assignment 3 - Procedural Noise Textures |
|||||||||
| Home | Syllabus | Assignments | Schedule | Resources | | |||||||||
This assignment is due
by April 18, 2017 by 11:59pm.
Please Note: For this all future assignments, you are
free to choose which OpenGL implementation you would prefer to use.
Most of what we will be working on can be accomplished in OpenGL,
OpenGL ES, or WebGL. Additionally, you may use GLUT or GLFW for your
framework.
HOWEVER - if you choose to use a version or framework that we are not covering in class, then you must ensure your submission builds out of the box on the machines in the Computer Commons. Be sure to note any special instructions in your README. If the grader (i.e. instructor) cannot compile your code, you will be contacted once to solve the problem. Part I - Create A Procedural Texture
You may use the provided A2 solution (GLFW Solution) to get
started. There are two steps to this assignment and they all are
actually performed in the Fragment Shader for the most part (you may need to pass some uniforms and other values).
Step I: Generate Perlin Noise. This page has a good write up and technical explanation of how to implement Perlin Noise. While glm
has a built in noise function (
glm::noise()
), we want to implement it ourselves. Another good resource is Ken Perlin's
own website. We are going to use the vertex's position as our
texture coordinate for the 3D Noise Map. Once you are able to generate
3D noise, your teapot should be white, gray, and cloudy looking.Step II: Apply a Procedural Pattern. At this point you now have a choice of what to do. You can choose to apply a wood grain texture (not the one in our book, that doesn't look as good) or apply a marble texture. For any of these three techniques, you will need to apply some number of octaves to your noise. Examples of the wood grain and marble are shown below: You should choose appropriate colors
for the texture that you are applying. Additionally, you do not need
to make your textures dynamic (i.e. user can change the number of
octaves and persistence level). You may hard code these values into
your shaders. However, choose appropriate values so your result
"looks good".
Part II - Create Your WebsiteIn addition to creating this awesome
looking teapot, modify your webpage from A2 to include several
screenshots.
Documentation
With this and all future assignments, you are expeced to appropriately
document your code. This includes writing comments in your source code
- remember that your comments should explain what a piece of code is
supposed to do and why; don't just re-write what the code says in
plain English. Comments serve the dual purpose of explaining your code
to someone unfamiliar with it and assisting in debugging. If you know
what a piece of code is supposed to be doing, you can figure out where
it's going awry more easily. (Interestingly enough, this code review of Doom 3's source code says the
exact opposite - well written code should require no comments. Well,
we don't work at id so we're going to comment.)
Proper documentation also means including a README.txt file with your submission. In your submission folder, always include a file called README.txt that lists:
Grading Rubric
Your submission will be graded according to the following rubric.
Submission
Please update your project so it produces an executable with the name
userName_A3. When you are completed with the assignment, zip together
your source code, README.txt, and www/ folder. Name the zip file,
userName_A3.zip. Upload this file to Canvas under A3.
This assignment is due
by April 18, 2017 by 11:59pm.
| |||||||||
Last Updated: 01/01/70 00:00
|