Difference between revisions of "Project6SP15"
Line 1: | Line 1: | ||
− | =Project 6: | + | =Project 6: Global Warming= |
− | In this project you will need to render a terrain with | + | In this project you will need to render a terrain with GLSL shader programs. |
This project is due on '''Friday, May 15th, 2015 at 1:00pm'''. You need to present your results in the CSE basement labs as usual, grading starts at 12:15pm. | This project is due on '''Friday, May 15th, 2015 at 1:00pm'''. You need to present your results in the CSE basement labs as usual, grading starts at 12:15pm. | ||
Please upload your source code including your shaders to the Ted system by 1pm. You do not need to upload any binaries, including textures, 3D models, etc. | Please upload your source code including your shaders to the Ted system by 1pm. You do not need to upload any binaries, including textures, 3D models, etc. | ||
− | The discussion for this project will be on '''Monday, May 11th'''. | + | The discussion for this project will be on '''Monday, May 11th''' in CSB 002 (note the room change due to construction). |
The total score for this project is 100 points, plus 10 for extra credit. | The total score for this project is 100 points, plus 10 for extra credit. | ||
+ | |||
+ | It is widely believed that as a consequence of [http://en.wikipedia.org/wiki/Global_warming Global Warming] the sea level is going to rise. San Diego has many low lying areas, which would get severely affected even with a moderate increase of the sea level. There are web apps such as [http://www.floodmap.net this one], which can give you an idea of which areas will be affected, but they are not as interactive as they could be. | ||
+ | |||
+ | The goal of this project is to create a highly interactive 3D visualization tool to show the effects of different water levels on San Diego. You will have to load and render a height map and allow the user to change the water level in real-time. | ||
+ | |||
+ | ==1. Terrain== | ||
+ | |||
+ | In the first step you need to generate and display a 3D mesh out of [[Media:sd-terrain.ppm | this 2D height map image of San Diego]]. The image has a resolution of 1024x1024 pixels and covers an area of about 35x35 miles. The image is in PPM format so that you can read it with your PPM reader from Project 5. The information in the red, green and blue channels is identical for each pixel - you can interpret any one of them as elevation. A value of zero translates to an elevation of zero (sea level), a value of 255 translates to an elevation of about 3,500 feet. | ||
+ | |||
+ | Wikipedia has a great [http://en.wikipedia.org/wiki/Heightmap description of this topic]. | ||
<!-- | <!-- | ||
- create tessellated rectangle, with triangle strips | - create tessellated rectangle, with triangle strips | ||
− | - read in terrain height map | + | - read in terrain height map: 60km x 60km square |
- load height map into GPU as texture | - load height map into GPU as texture | ||
- set up GLSL shaders | - set up GLSL shaders | ||
Line 19: | Line 29: | ||
- vertex shader: offset vertices based on elevation scale | - vertex shader: offset vertices based on elevation scale | ||
- fragment shader: pick draw color based on elevation | - fragment shader: pick draw color based on elevation | ||
− | + | - render sun with parabolic path: east to west over south end of terrain | |
− | + | - scalable elevation multiplier | |
==1. Add Per-Pixel Lighting (20 Points)== | ==1. Add Per-Pixel Lighting (20 Points)== | ||
Line 37: | Line 47: | ||
==3. Optional Project: Height Map (10 points)== | ==3. Optional Project: Height Map (10 points)== | ||
− | |||
− | |||
http://www.chadvernon.com/blog/resources/directx9/terrain-generation-with-a-heightmap/ | http://www.chadvernon.com/blog/resources/directx9/terrain-generation-with-a-heightmap/ |
Revision as of 21:12, 8 May 2015
Project 6: Global Warming
In this project you will need to render a terrain with GLSL shader programs.
This project is due on Friday, May 15th, 2015 at 1:00pm. You need to present your results in the CSE basement labs as usual, grading starts at 12:15pm. Please upload your source code including your shaders to the Ted system by 1pm. You do not need to upload any binaries, including textures, 3D models, etc.
The discussion for this project will be on Monday, May 11th in CSB 002 (note the room change due to construction).
The total score for this project is 100 points, plus 10 for extra credit.
It is widely believed that as a consequence of Global Warming the sea level is going to rise. San Diego has many low lying areas, which would get severely affected even with a moderate increase of the sea level. There are web apps such as this one, which can give you an idea of which areas will be affected, but they are not as interactive as they could be.
The goal of this project is to create a highly interactive 3D visualization tool to show the effects of different water levels on San Diego. You will have to load and render a height map and allow the user to change the water level in real-time.
1. Terrain
In the first step you need to generate and display a 3D mesh out of this 2D height map image of San Diego. The image has a resolution of 1024x1024 pixels and covers an area of about 35x35 miles. The image is in PPM format so that you can read it with your PPM reader from Project 5. The information in the red, green and blue channels is identical for each pixel - you can interpret any one of them as elevation. A value of zero translates to an elevation of zero (sea level), a value of 255 translates to an elevation of about 3,500 feet.
Wikipedia has a great description of this topic.