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

  Create a simple warm-up program using your g3d

Create a simple warm-up program using your G3D programming and graphics environment.

  Shadow effect while rolling a sphere

Shadow effect while rolling a sphere as well as the options of shading and lighting.

  Relative positioning and interactive positioning

Relative Positioning and Interactive Positioning by Dragging and Clicking and some Simple Animation

  Draw a teapot at the global origin

Draw a teapot at the global origin

  Concepts of computer graphics

Concepts of Computer Graphics and develop a program using OpenGL

  The security policy document outline

Using the GDI Case Study below, complete the Security Policy Document Outline

  Develop the image manipulations

Develop the image manipulations

  What does resolution mean

What does resolution mean How is resolution connected to ppi and dpi units

  Differentiate between a bitmap image and a vector image

Differentiate between a bitmap image and a vector image Explain the following terms

  Essential elements of a design pattern

configuration of an Iterator pattern, patterns could be used in a Library System, Singleton, Template, Decorator, Façade,What does Alexander means by the following declaration "But it is impossible to form anything which has the temperament of natu..

  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..

  What are the factors affecting picture composition

Define picture composition What are the factors affecting picture composition. Elaborate on each factor Describe the basic lines present in a composition

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