Generate a virtual landscapes

Assignment Help Computer Graphics
Reference no: EM132410693

Procedural Landscape Generation -

You will use procedural methods to generate a virtual landscapes. The project can be divided into the following three parts.

- geometry (mesh generation, procedural height generation)

- rendering (terrain shading, texturing)

- animation (camera animation)

Each of these parts are subdivided into basic and advanced tasks.

Geometry

- create a flat (z=0) triangular mesh. Do so using GL_TRIANGLE STRIP, making use of GL_PRIMITIVE RESTART

- implement Perlin noise on the CPU (see noise.h)

- generate a height map texture using fBm (read this tutorial on fractional Brownian motion)

- use the height map texture to displace grid vertices in the vertex shader

Advanced

- implement noise texture generation in the fragment shader

- implement other noise functions to generate terrain (e.g. hybrid multifractal and ridged multifractal)

- instead of generating a plane world, create a spherical world

- create an infinite world (new tiles on demand, requires GPU noise)

- use L-system to add trees to your terrain

- use noise functions to generate clouds (and integrate participating media in fshader)

Rendering

- calculate surface normals, add diffuse and specular shading.

- use the tile-able textures (shown above) to texture your terrain. In the fshader you can use the normal of a fragment (slope of terrain) and its height to decide which textures to blend. For example, snow does not deposit on very steep slopes, and happens only at a certain height. (Download *.png: grass, rock, sand, snow, water)

- implement the skybox texture using OpenGLs cubemap textures. Surround your scene with a cube, and texture this cube to color the sky of your scene. Under Textures folder, you can find miramar_*.png which may be used to create the skybox. You will have to write UV texture coordinates in your C++ code so as to map faces of the cube to the correct portion of the image/texture (reference).

Advanced -

use an OpenGL CubeMap to texture the sky and get rid of artifacts caused by discontinuities in the UV parameterization.

use the normal map texture (water.png) to represent waves. You can overlap multiple scaled copies of this texture and translate them over time to emulate a water effect.

add a mirroring eect to the water; this is achieved by mirroring the camera position with respect to the water plane, render your scene in a framebuffer, and placing the texture back in a second step. You can also simulate refraction by blending the mirrored and non-mirrored images according to the incidence angle of your camera w.r.t. water

simulate the fact that reflections are affected by water movement by distorting the reflected image with a noise function

Animation -

- implement WASD (forward/backward, left/right) camera controls

Advanced

- use a bezier curve to animate the camera path (5%)

- implement a FPS camera, camera height is determined by terrain height (5%)

- use a displacement map to animate waves; the map can be computed numerically as a sum of periodic functions varying over time (10%)

- use particles and billboards to animate 3D snow

Getting Started -

The starter code is filled with TODO comments. The following order of completion is recommended:

- genTerrainMesh() in main.cpp

- drawTerrain() in main.cpp

- lerp(), perlin2D(), and fBm2DTexture in noise.h

- terrain vshader.glsl

- drawSkybox() in main.cpp

- KeyEvent listener callback in main.cpp

- terrain fshader.glsl

Attachment:- Assignment File.rar

Reference no: EM132410693

Questions Cloud

Calculate total revenue from sales in market : Calculate total revenue from sales in this market at QD =2500. Show your work please.
Derive the market demand curve for public good : Derive the market demand curve for this public good. Illustrate it graphically (Hint: the market demand curve is kinked).
How transferable are the research findings : Read a qualitative nursing study. If a different investigator had gone into the field to study the same problem, how likley is it that the conclusions would.
Calculate the optimal number of workers : Assumer that now producers in both sectors behave optimally. Draw a diagram for this economy.
Generate a virtual landscapes : You will use procedural methods to generate a virtual landscapes. The project can be divided into the three parts- geometry, rendering and animation
N4325 nursing research assignment problem : N4325 Nursing Research assignment help and solutions, The University of Texas at Arlington, assessment help - Post your Evidence Based Practice Project.
Correct conventions of standard american english : Use well-structured sentences, audience-appropriate language, and correct conventions of standard American English.
Explain how racial and ethnic diversity in brazilian culture : Explain how racial and ethnic diversity in Brazilian culture differs from that in the United States and how this may affect inequalities in society.
Political leadership and government : Explain how Indians feel about their political leadership and government. Are they trusting and approving of its performance, or not?

Reviews

Write a Review

Computer Graphics Questions & Answers

  Create an image using visual studio opengl

You need to create an image using Visual Studio Opengl C++

  What is the purpose of vendor account groups?

What is the purpose of Vendor Account Groups?

  Create a simple 3D space game

5CCGD003W 3D Graphics Programming - 3D Real-Time Application - University of Westminster - create a simple 3D space game using the perspective view

  Describe the advantages and disadvantages of using methods

The second method is to use slide templates, slide layouts, and color and animation schemes already built into PowerPoint.

  Explain cohen sutherland line clipping algorithm

Explain cohen sutherland line clipping algorithm

  Pick a unique network address and number of subnet

Pick a network address from the list below. Everybody must pick a unique network address and number of subnet.

  Consider two raster systems with resolution of 640 by 480

Consider two raster systems with resolution of 640 by 480 and 1280 by 1024 how many pixels would be accessed per second in each of these systems by a display controller that refreshes the screen at a rate of 60 frames per second? what is the access t..

  Why menu-driven interfaces continue to be popular

Suggest at least three (3) strategies for making menu-driven interfaces visually appealing in the modern computing environment.

  Show the matrix and the starting points

you do not need to show matrix math calculations, but you should show the matrix and the starting points and the results for each geometric transformation.

  Bullhow might swot and pest value chain analysis

bullhow might swot and pest value chain analysis statistical data methodologies and other research processes used to

  Illuminate the differences among ethics, morality, and law

Discuss the morality of posting the 32-character encryption key for HD-DVDs on Digg.com; the morality of terminating the poster's account; and the morality of re- posting the encryption key.

  What are some bene?ts brought about by automation

What evidence has been given to show that automation eliminates jobs? What evidence has been given to show that automation creates more jobs than it destroys?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd