联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2020-11-07 11:27

COM3503 3D Computer Graphics: Assignment (50%)

Deadline: 3pm, Tuesday 8 December

1. Introduction

The assignment will involve using modern OpenGL to render a scene. Scene graphs are required in the modelling

process and animation controls are required for hierarchical models.

2. The task

Figure 1 shows a room scene containing a table and a window looking out onto a view. There is a noticeboard on one

wall. On the table is an unusual angle-poise lamp, a mini helicopter-like object, a piece of paper and a drawing pen.

The whole scene can be modelled using planes, cubes and spheres.

Figure 1. The scene

2

3. Requirements

You must satisfy all the following requirements:

? Only two walls and a floor for the room should be

modelled. The walls and floor should be texture

mapped to look like a room in a house. For example,

the floor could be made of wood. The walls may have

wallpaper on them or a paint pattern.

? The table can be modelled as one scaled flat cube on

top of four legs made out of cubes. The table should be

texture-mapped, for example, to look like wood or

some other material.

? The hierarchical model of the basic angle-poise lamp

(see Figure 2) should be made up of five parts: a base,

a lower arm, an upper arm, and a head, which contains

a protruding lightbulb (a nose) in the shape of a cube

(the details of the lighting technology used are not

important). There are also some additional pieces.

o The base is fixed at one position on the table.

Three other parts can articulate as illustrated in

Figures 1 and 2. The lower arm can rotate about

the connection point with the base in two

directions (around the vertical y axis and around

the x axis), the upper arm can rotate about the

lower arm (like an elbow joint, the x axis) and the

head can rotate about the upper arm (in one axis,

the x axis). (The x axis could be substituted by the

z axis if you prefer.) The lightbulb shines in the

same direction that the head is pointing in, as

indicated by the dotted lines in Figures 1 and 2.

o A company is using this lamp in an advertising

campaign in which they hope to sell more

interesting angle-poise lamps. Thus, you need to

add some decorative pieces that make the lamp

look unusual or like an animal (see Figure 2). Do

not just copy the decorative pieces used in Figure

2; invent your own pieces. For example, you might

add a hat or make the ears more interesting, or

add some hair, or horns, or a larger nose, or a

different tail or a different base.

o Use simple objects for the individual parts, i.e.

scaled spheres or cubes. For example, in Figure 2,

the head is made from a combination of a cube for

the lamp head and a cube for the bulb, with some

other cubes and spheres for the decorations.

Cubes and spheres are the only pieces needed to

model the lamp. The hierarchy and associated

transformations are more important than the

quality of the pieces in the hierarchy. I want you to

demonstrate that you understand transformations

and a scene graph hierarchy.

o The pieces of the lamp must be texture-mapped.

For example, you might decide to make the pieces

spotty to look like a particular animal.

o The head of the lamp must include an object (e.g.

a nose bulb), modelled as a cube or sphere, which

mimics the effects of a spotlight. The object gives

the position of the spotlight and the orientation of

the head gives the direction the spotlight is

pointing in. The spotlight will thus illuminate the

scene in the direction the lamp head is pointing in.

There must be an option in the interface to turn

the spotlight (and associated object) on and off.

(You are responsible for working out how to

implement a spotlight effect – read the relevant

section in Joey’s online tutorial.)

? The mini helicopter-like object can be made of a

combination of spheres and/or cubes. The propellors

must spin as the cube lifts off the desk, rises up and

then descends back down to the tabletop. It should do

this under menu control, e.g. a button to start and a

button to stop. The body of the mini helicopter-like

object should have separate matt and shiny parts.

(Hint: diffuse and specular maps.)

? There should be a piece of paper and a pen (a scaled

sphere will suffice) on the tabletop and a notice board

on the wall above the desk. Exact sizes are not

important.

? An outside scene can be seen through the window –

this might be a garden scene or a city scene. You could

use a picture out of a window in your own

accommodation or you could invent a picture.

Consider how you might do the scene outside. Should

it be a texture map pasted onto the wall to look like a

window and a scene? Or should it be a texture map

pasted onto another surface that is a certain distance

outside the window? Figure 1 illustrates both (with the

outside scene a bit too close to the wall due to the

limitations of space for the illustration). How does each

look when the camera moves position? Also, should

the scene outside the window be the same at different

Figure 2. A model of an angle-poise lamp

that looks like a strange alien animal

3

times in the day? Should the scene change for night

and day? Another option might be a skybox outside the

window. Note: If there is a hole in the wall, this will

mean making the wall from a set of pieces with a hole

where the window is. The quality of what you produce

for this part of the scene will be part of the marking.

? The scene should be illuminated with at least two

general world lights which can be positioned anywhere

in the world (perhaps with one in the general direction

of the sun). It should be possible to turn each of the

lights on and off (or dim, i.e. reduce the intensity) from

the interface. These general world lights will illuminate

all parts of the scene and help visualise the scene

during development and testing. When you switch off

the general light(s), the effects of the lamp spotlight

will be much clearer on the table and the rest of the

room.

? A user-controlled camera should be positioned in the

scene. Use the camera that was given in one of the

exercise sheets – the mouse can be used to change the

direction the camera is pointing in and the keys can be

used to move about. Do not change the key mappings

from the one on the exercise sheet. If you change the

key mappings it will make it difficult for me to mark. It

doesn’t matter that the camera can see outside the

room.

? The interface should have a button (labelled ‘Random

Pose’) to make the lamp parts adopt random angles to

each other to make a pose. The angles between the

parts of the lamp should be within certain ranges so

that the result is plausible, i.e. just as you elbow cannot

bend ‘backwards’, the lower and upper arm of the

lamp should not be able to bend backwards with

respect to each other. Also, the main lamp parts

shouldn’t intersect each other or the table – don’t

worry about the decorative parts of the lamp. Some of

the decorative pieces might move in response to the

pose adopted by the lamp. The lamp should animate

between the poses rather than immediately assume

the new pose. A reset button can be used to reposition

the lamp to some neutral pose. Also, you should

consider the speed of the animation. It is perfectly

acceptable to animate the Euler angles to achieve

movement of the hierarchy. Do not consider using

quaternions, as this is beyond the requirements for

this assignment.

? You do NOT have to do shadows. Do not worry about

shadow effects.

4. Deliverables

? You should submit a zip file containing a copy of your

program code (and any other necessary resources, e.g.

image files for the textures and a readme.txt file that

describes everything) via Blackboard – this can be done

via the link to the assignment handout. You should

submit whatever you have done, even if you have not

completed all the requirements – for example, you

might have produced a model but not done the

animation. If you submit nothing, you cannot receive

any marks. The program MUST compile and run from

the command window on a Windows PC or the

terminal window on a Mac. You should assume that

the jogl environment (and paths) has already been set

up, so you do not have to include this as part of what

you hand in. I won’t install ‘YetAnotherIDE’ to make

your program work; I want to run the program (and, if

necessary, check the compilation) from a command or

terminal window.

? You must include appropriate comments in your

program to identify that you wrote the code, e.g.

/* I declare that this code is my own work */

/* Author <insert your name here> <insert your email

address here> */

? You can make use of all the code that I have given you

on exercise sheets. However, state that you have used

it as part of your comments and briefly summarise

which bits you used.

? The body of the Blackboard submission message

should state that the work you have handed in is your

own.

? The name of the main class in your program should be

Anilamp. That way it is easy for me to run the

program. (Last year, I wasted time for some handins

trying to work out which was the main class to run.) It

would be useful to include a batch/script file to

automatically compile and/or run the program.

? Optional: You might like to make a short video of your

animation. If you do so, DO NOT include this in the

handin as it will be too big for Blackboard to handle –

we tried using Blackboard for this in the past and it

crashed the system!! Instead, put the animation on

youtube or your personal website and give the URL of

the animation in a readme.txt file. Indeed, if you are

thinking of a career in the graphics industry, then you

should be adding such animation pieces to your

personal website (your digital portfolio) to show off

what you are capable of.

5. Marking

I will check that the program meets the requirements

listed above. To make sure you get some marks, the

program must compile and do some part of the work

requested even if it is not complete. Your program code

will be run and exercised thoroughly.

Marks will be available for:

? The quality of the programming (20%)

? Satisfying the requirements (80%)

4

In assessing the quality of your program code, four

aspects will be considered:

? (5 marks) General style: layout; neat, organised code;

comments; use of constants and variables; methods

not over long;

? (5 marks) Program and data structures for the models:

use of separate methods and classes, e.g. separate

classes for things like the lamp; (The online tutorial

does not make use of classes for the more complex

examples, partly on purpose. You must consider the

use of classes for the assignment – this demonstrates

your programming ability and ability to work with

scene graphs.)

? (5 marks) Neat and tidy coding for dealing with

transformations in the scene; How will you organise

the construction and use of the scene graphs?

? (5 marks) Animation/posing control: how tidy and

flexible is the coding?

In considering the requirements, four aspects will be

considered:

? (25 marks) Modelling the lamp and other parts of the

scene: the lamp must be a hierarchical model.

(Consider drawing scene graphs for the lamp model,

the helicopter and the full scene before starting to

program.)

? (20 marks) Texturing: lamp, room (walls and floor),

poster board, table, objects on table and window. The

quality of the texturing will be considered, e.g. use of

diffuse and specular textures, seams between textures

and any extra texturing effects such as the changing

window view texture.

? (15 marks) Lighting and interface controls: lights

should behave correctly such that their effect is seen

on the scene. Necessary interface controls, as

described in the above specification, should also be

included.

? (20 marks) Lamp pose control and animation and mini

helicopter animation. Is the animation smooth? Does

it look plausible? The quality of the animation will be

considered. Are the random poses for the lamp

plausible?

6. Unfair means

? The Department’s student handbooks (UG and PGT)

give detailed information on the topic of unfair means

and what happens if unfair means is used.

7. Late handin

? Standard Department rules will be applied if the work

is handed in late: UG and PGT.

Links to handbooks


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp