Difference between revisions of "Project6Fall14"
Line 9: | Line 9: | ||
==1. Make a Bezier Patch== | ==1. Make a Bezier Patch== | ||
− | Generate the 16 control points for a cubic Bezier patch. | + | Generate the 16 control points for a cubic Bezier patch. Put them all in the x-z plane (horizontal), since the patch is going to simulate water. |
− | + | Tessellate the patch out of GL_QUADS: use uniform sampling to calculate 3D points on your patch on a regular grid. We suggest using around 100x100 quads to produce a smooth surface. | |
− | + | Connect the points with GL_QUADS in counter-clockwise order to form a surface, and calculate normals. Give the quads a color and material of your choice. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
'''Tip:''' You can compute normals as follows: Given the Bezier curve (x(t),y(t),0) in the x/y plane, you first compute the tangent vector (x'(t),y'(t),0). The corresponding 3D normal vector is then (-y'(t),x'(t),0), which you rotate around the y axis similar to the vertices. Don't forget to normalize the normal vectors. | '''Tip:''' You can compute normals as follows: Given the Bezier curve (x(t),y(t),0) in the x/y plane, you first compute the tangent vector (x'(t),y'(t),0). The corresponding 3D normal vector is then (-y'(t),x'(t),0), which you rotate around the y axis similar to the vertices. Don't forget to normalize the normal vectors. | ||
− | + | Enable at least one light source and position it so that it nicely illuminates the patch. | |
− | + | ||
− | + | ||
==2. Animate the Patch== | ==2. Animate the Patch== | ||
Line 78: | Line 72: | ||
* Piecewise Bezier patch | * Piecewise Bezier patch | ||
* more realistic water | * more realistic water | ||
+ | * use triangle strip and show speedup | ||
--> | --> |
Revision as of 17:07, 22 November 2014
Contents |
Project 6: Silver Water
[THIS PROJECT IS UNDER CONSTRUCTION. PLEASE COME BACK LATER.]
This project is on Bezier patches, texturing, and environment mapping with a GLSL shader program. The goal is to create a Bezier patch, make it resemble a water surface with small waves, then put it in a textured environment cube and render its surface with environment mapping.
It is due on Friday, December 5th at 3:30pm and will be discussed in CSB 001 on Monday, December 1st at 5pm.
1. Make a Bezier Patch
Generate the 16 control points for a cubic Bezier patch. Put them all in the x-z plane (horizontal), since the patch is going to simulate water.
Tessellate the patch out of GL_QUADS: use uniform sampling to calculate 3D points on your patch on a regular grid. We suggest using around 100x100 quads to produce a smooth surface.
Connect the points with GL_QUADS in counter-clockwise order to form a surface, and calculate normals. Give the quads a color and material of your choice.
Tip: You can compute normals as follows: Given the Bezier curve (x(t),y(t),0) in the x/y plane, you first compute the tangent vector (x'(t),y'(t),0). The corresponding 3D normal vector is then (-y'(t),x'(t),0), which you rotate around the y axis similar to the vertices. Don't forget to normalize the normal vectors.
Enable at least one light source and position it so that it nicely illuminates the patch.