SIT354 Assignment #1 (2019) 1/8
Assessment 1 – Problem Solving and Communication
[Date Last Modified: 2019-03-29]
Overview
Complete the following six tasks. Remember this is a course on computer graphics, and supporting images (or videos) with clear explanations are often the most effective way of communicating your answers. You should use the lecture and practical sessions to discuss these problems with the teaching staff.
Required Unit Learning Outcomes
Assessment Details
Due Date & Submission Instructions
Due 11:59pm, Friday 10th May, 2019
The assignment should be submitted electronically to the CloudDeakin SIT354 Assignment #1 folder. The submission can be in the form of a report (PDF) with a description of what was done to complete the respective tasks, or a narrated video of you showing the final out for each tasks and the code completed to achieve the output.
Assessment Wiegthing
30% of overall result
Each tasks is worth 5% and contributes 30%of your final result. Tasks to be Completed
Task 1 – Bouncing Ball top
In this first task, drawing upon Workshops 1 & 2, you are asked to create a vertex shader that takes a sphere as an input model (the sphere.obj will work fine) and to apply appropriate transformations to provide the appearance the ball is bouncing on the ground (NOTE: just a representation of this is required – you do not need to include physics/kinematics equations for the motion/deformations).
An example of what this may look like is shown in the figure below (animated GIF visible in the HTML version of this assignment):
Learning Outcome 1: ADAPT techniques for graphics and shader programming to reproduce properties of real and virtual environments.
Learning Outcome 2: COMMUNICATE concepts and techniques in computer graphics to peers using standards to convey thoughts and ideas effectively and professionally.
Learning Outcome 3: INVESTIGATE issues in computer graphics to develop solutions to rendering problems.
Worth5% SubmitReportwithsampleoutput,relevantcommentedcodeblocks,andadescriptionoftheprocesstakento acheive the results.
SIT354 Assignment #1 (2019) 2/8
Figure: A Bouncing Ball
In completing this task, consider the following:
What transformation of the model is required to move the ball up and down?
What transformation (or transformations) of the model is required to show the ball being ¡®squashed¡¯?
To achieve full marks for this section, you will need to both show: the combined transformations to represent the animation shown
in the figure; and a clear description of how this was achieved including reference to the code you have developed/modified. Demonstration of the separate transformations, individually, will achieve partial marks.
Task 2 – Spotlights top
In the second task you are asked to implement a spotlight within the fragment shader that provides the ability to blur the edges of the spotlight area.
This spotlight should be assigned to the inbuilt application Light, that can move. An example of the default spotlight which has a sharp edge between the lit and unlit areas, is shown in the figure below:
Worth5% SubmitReportwithsampleoutput,relevantcommentedcodeblocks,andadescriptionoftheprocesstakento acheive the results.
SIT354 Assignment #1 (2019) 3/8
Figure: Spotlight with sharp edge
After implementing the spotlight, extend this shader to have a region around the edge that can be blurred to a radius, controlled by slider input. Examples of the spotlight with two different blurred regions is shown below:
Figure: Spotlight with blurred edge: Small region (Left); Larger region (Right)
SIT354 Assignment #1 (2019) 4/8
Finally, you are to add an extra fixed-light to your scene, that works with the spotlight above. The light from both spotlights, should contribute to the final colour of the object. Demonstrate the combination of your spotlights in the final output. An example of how this may look is shown below:
Figure: Multiple spotlights contributing to the scene
EXTENSION: Explore the use of each spotlight having different colours and how they may work together to form the final lit object. Task 3 – Banana top
In this task, you are to implement a procedural surface (fragment) shader that is capable of rendering the appearance of a Banana. For this task, you can use the provided banana.obj model, or your own if you wish. For inspiration, please refer to the picture of a banana below:
Worth5% SubmitReportwithsampleoutput,relevantcommentedcodeblocks,andadescriptionoftheprocesstakento acheive the results.
SIT354 Assignment #1 (2019) 5/8
Figure: Reference Image of a Banana
In completing this task refer to the approach taken in the Week 04 Workshop with the use of layers. Identify the set of layers you believe are needed to represent the various colouraitons in the banana and build procedural shaders for each layer. Combine these layers to form the final colours on the model.
EXTENSION: Provide a control through a slider that gives the impression of the banana being aged, i.e., from unripe (greenish), through ripe (as in the picture above) and finally over-ripe (brownish/black/bruised).
Task 4 – Material Effects & Normal Mapping top
In this task, you are to implement texture mapping to produce a rendering of model that appears like the pencil cup we examined in class. For this task, you can use the provided cup.obj model, or your own if you wish. For inspiration, please refer to the picture of the cup below:
Figure: Reference Image of a Cup
Note in this photo of the cup, the material appears to be polished in some places and rough in others. The image also shows ¡®depth¡¯ with some darker regions where the diffuse & specular light is not present.
Worth5% SubmitReportwithsampleoutput,relevantcommentedcodeblocks,andadescriptionoftheprocesstakento acheive the results.
SIT354 Assignment #1 (2019) 6/8
A simple model of the cup with a sample texture ( Egyptian.png ) being mapped to the surface, *without normal mapping, is shown in the figure below:
Figure: Sample render of the cup model with texture mapping only
To complete this taks, you are required to create a fragment shader that is capable of applying a texture map to the surface and to apply a normal map (which you will need to create) to provide the appearence of depth to the model.
EXTENSION: The reference image show a cup made out of metal but the texture image is a mural of stone. Explore the use of the lighting and techniques you have done in previous workshops to see if you can give the model the impression it is made of metal – rather than stone.
Task 5 – Terrain Generation top
In this task, you are to implement terrain generation within the vertex shader that produces natural like terrain (using noise or other methods) which is then passed to the fragment shader for colouration. For this task, you can use the provided plane.obj or plane-hires.obj models, or your own if you wish. This is following the workshop approach used in Week 08. NOTE: This is not simple height mapping where the height of the terrain is taken from a texture (height) map file; the terrain height is generated procedurally.
Once you have terrain generation working, extend this to allow for an additional texture map to be used to provide locations for given features (e.g., roads/rivers through the terrain, or flat areas which may be used to locate other models). This input should be used to modify the terrain generated to support that feature. The input texture map can be a simple image with colours representing the presence or absence of the feature (i.e., black = present; white = not present).
Worth5% SubmitReportwithsampleoutput,relevantcommentedcodeblocks,andadescriptionoftheprocesstakento acheive the results.
An example of how this may look (ignore the poor colouration in this image – you can do much better!) is shown in the figure below:
SIT354 Assignment #1 (2019) 7/8
Figure: Terrain Generation with Modification
In this case, the sample input texture map that defines the modification to the terrain is a simple circle, as shown in the figure below. You may note, using black/white input, the impact on the terrain is quite coarse… Using greyscale could be better in this approach, which grey values providing a factor of change to the terrain (for example, around the edges of the circle).
Figure: Input texture to control/modify the Terrain Generation
Task 6 – Five Questions Posted & Ten Questions Answered top Worth5% SubmitquestionsandanswerstoCloudDeakindiscussionforum.
The final task, you are required to develop a set of five questions, based on the topics covered in this unit up to and including Week 08. The questions should be similar to those we have asked in the workshop exercises, or questions you would expect in an exam.
The questions you develop should demonstrate that they have been carefully considered and require some thought to be
SIT354 Assignment #1 (2019) 8/8
answered. Please don¡¯t post questions requiring simple ¡®yes/no¡¯ answers.
After posting your five questions, you are then required to answer (at least) 10 questions posted by other students. Please avoid repeating answers already provided.
Post your questions and answers to the Sample Questions discussion board on the SIT354 CloudDeakin site.