Implement noise texture generation in the fragment shader

Assignment Help Computer Graphics
Reference no: EM132411476

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 OpenGLscubemap 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 (5%).
• 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 (5%).
• 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 (15%)
• simulate the fact that reflections are affected by water movement by distorting the reflected image with a noise function (5%)

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 (10%)

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:- Procedural Landscape Generation.rar

Reference no: EM132411476

Questions Cloud

Physical barriers-how they coincide with physical security : What is physical security? What are the levels of physical security? What are physical barriers and how they coincide with physical security?
Describe how exposure to the toxicant is possible : Describe how exposure to the toxicant is possible. Describe recent concerns about the toxicant (within the last two years) and any actions taken to reduce.
How your strategies will help to close the achievement gap : Defend how your strategies will help to close the achievement gap that "has profound consequences for our nation's future and its ability to compete.
Create professional goals and describe them in each section : Using the "Professional Development Plan," create a professional learning plan that can be implemented over your next 2-3 years of teaching. Begin by analyzing.
Implement noise texture generation in the fragment shader : Implement noise texture generation in the fragment shader - implement other noise functions to generate terrain (e.g. hybrid multifractal and ridged)
Explain differences of the given types of speaking : Public Speaking is different from conversation. Explain Differences and similarities of these two types of speaking by addressing an issue from your personal.
Established telecom equipment : A US established telecom equipment manufacturing company is opening branches in India, China, and South America.
Discuss ways in which you will use reflective activities : Reflection empowers us to develop and make sense of all the great (and not so great) learning and working experiences we have been through.
To what extent is human nature contradictory : Select 7 of the following and answer as fully as possible. Each answer should be at least one well-developed, supported paragraph. If you use any outside.

Reviews

Write a Review

Computer Graphics Questions & Answers

  Implement a simple flight simulator

CS 418 Interactive Computer Graphics - University of Illinois - Implement a simple flight simulator. Your "plane" will fly over the terrain you generate

  Media effects theories

Mass Media EffectsThe study of mass media effects has a long and storied history that predates the existence of the communication discipline itself. Yet, its breadth and scope have made it challenging for the area to gain coherence.

  Design effective graphics for visual presentations

Design effective graphics for visual presentations

  Use illustrator to draw an elephant

Use illustrator to draw an elephant like the picture that i uploaded, with colors and background. Also use different layers to draw

  Add any filter effects that you determine are necessary

Add a type layer that says Flying Star Cafe. You can use any color and any font available on your computer. In the sample, a Poor Richard font is shown

  What design features stand out on each site

Are these features unique to the Web sites you selected or are they used by their competitors or similar sites? Are these design features used to be visual appealing or promote usability

  Incorporates text as an integral part of the image

use illustrator to draw, focus on typography to create an illustration that incorporates text as an integral part of the image or image shape

  Development 1 modelingyour program should be able to load

development 1. modelingyour program should be able to load standard 3ds file format geometric models.since the sample

  What can be stated about line drawn by the following code

What can be stated about the line drawn by the following code? g.drawLine( 100, 200, 300, 200 ).

  Tasknbsp write a one page paper summarizing your

tasknbsp write a one page paper summarizing your thoughts.bob pierce a gentle man of about 50 is the president of abc

  Framework of user interface design

design of user interfaces, natural mapping, GUI applications, web page design different to designing for printed media, risks exposed in this "phone as individual proxy" approach, interaction designers of ubicomp applications, Storyboards are usual..

  Application of computer graphics in education and training

Explain in detail the application of computer graphics in education and training?

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