Intelligent agents (TME285) Lecture 6,

Size: px
Start display at page:

Download "Intelligent agents (TME285) Lecture 6,"

Transcription

1 Intelligent agents (TME285) Lecture 6, D visualization and animation

2 Information Again, check the FAQ frequently! New items are tagged with the date at which they were added. For example, check carefully the items added (or modified) and In particular, see the item added yesterday (and also mentioned in yesterday s lecture), marked [ ].

3 Dialogues and dialogue items Just a note on nomenclature: Each agent contains a list of dialogues, i.e. instances of the Dialogue class, and each dialogue contains a list of dialogue items, i.e. instances of classes inherited from DialogueItem (e.g. InputItem, OutputItem etc.) Read carefully Chapter 3 in the compendium, and also go through the code (for the Hazel agent) in the agentmainform.

4 Dialogues and dialogue items In the case of Hazel seven different dialogues are defined. Examples: WakeUpDialogue: Contains a single dialogue item (an OutputItem) TimeDialogue: Contains two dialogue items (an InputItem and a TimeItem) WhoIsDialogue: Contains six different dialogue items (InputItem, MemorySearchItem, OutputItem, OutputItem, WaitItem, and OutputItem) etc. etc.

5 Checking how dialogues work.. Looking at the specification of the dialogues can help to understand a dialogue: The first dialogue item is added to this dialogue. InputItem (AD1): The user says the agent s name The second dialogue item is added to this dialogue. OutputItem (AD2): The agent responds. The dialogue is added to the agent s list of dialogues

6 Checking how dialogue items work.. However, in order to fully understand how individual dialogue items work, it is better to set a breakpoint at the respective Run() method, and then step through the code: After this point, step through (with F10), check variable values (e.g. targetid) etc.

7 Dialogues and dialogue items In some cases, I have received documents (for planning stage 2) in which the entire agent is generated as one very complex dialogue. It is much better (and also required) to implement a set of dialogues, one for each task, which can then be debugged and tested separately. When the agent has completed a given task, set both the context and ID to (the empty string). In that way, the agent will be ready to start any dialogue, depending on the input it receives.

8 Dialogues and dialogue items Example (Hazel s TimeDialogue): End of this dialogue set context and ID as => the agent is prepared to start any dialogue, depending on the input it receives.

9 Dialogues and dialogue items Again, do check carefully (and run through with breakpoints) the Hazel agent. It is a simple example, but it does illustrate the division of the agent s competences into separate dialogues. The 7 dialogues defined for the Hazel agent.

10 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

11 OpenGL and OpenTK 3D visualization requires a large number of matrix operations. There are software libraries specifically designed for this purpose, e.g. OpenGL and Direct3D. OpenTK is a C# wrapper for OpenGL (i.e. a class library that allows access to the more OpenGL).

12 3D rendering In 3D rendering one uses a sequence of matrix operations to generate a 3D view Model matrix: Deals with the transformations necessary to place an object at a given pose in the modeled world. View matrix: Deals with the transformations required to account for the camera position. (Often combined to one ModelView matrix) Projection matrix: Handles the perspective projection on the (2D) screen of the computer.

13 Orientation of axes In OpenGL, the x- and y-axes are in the plane of the screen, with the z-axis pointing towards the user. I have used a coordinate system (in the ThreeDimensionalVisualization library) where the x- and z-axis are in the plane of the screen, with the y-axis pointing into the screen, away from the viewer. y z y z OpenGL x ThreeDimensionalVisualization library x

14 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

15 Triangles and normal vectors In 3D rendering one normally builds objects from sets of triangles since triangles are always planar (=> simple!) so that their normal vector can easily be computed. The normal vector is important for lighting and shading, as will be shown below.

16 Triangles and normal vectors

17 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

18 Rendering objects Many aspects can be varied when rendering a 3D object: Position Orientation Color Lighting Shading Translucence Textures etc. etc.

19 Lighting If no light is present, an object will be rendered based on the Color property of the vertices. Interpolaton used if different vertices have different color.

20 Lighting Without light, however, 3D objects (with uniform color) appear flat. Consider, for example, a sphere:

21 Lighting If light is added, the 3D nature of the sphere becomes apparent:

22 Lighting Lighting requires: Three colors: Ambient, diffuse, and specular Normal vectors to trace the reflected light. Ambient color: background light Diffuse color: isotropic reflection of light Specular color: mirror-reflection of light (requires also a Shininess parameter). NOTE: See the Sphere3DApplication in the FaceVisualizationSolution!

23 Lighting Note: Whenever lighting is used, the vertex color is replaced by the ambient, diffuse, and specular colors: No light: use the vertex colors (here set uniformly to green). With light: Use the ambient, diffuse, and specular color

24 Shading The triangle normal determines the light reflection (and, therefore, the color). However, to get a more smooth variation of light over an object, one can interpolate the normal vectors. In that case, one uses the vertex normals instead of the triangle normals. The vertex normal is defined as the average triangle normal (vector) of all the triangles connected to a given vertex.

25 Shading

26 Shading Flat shading Smooth shading

27 More rendering options One can also choose not to show the surfaces of the triangles, but instead Vertices (i.e. the corners of the triangles) Wireframe (i.e. the sides of the triangles). See also the next slide and the Sphere3DApplication!

28 The Sphere3D application Shows how to render a sphere in various ways.

29 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

30 The ThreeDimensionalVisualization library This library contains code for generating and visualizing 3D objects, especially faces (needed for IPAs). It also contains a complex user control for generating a face. Important classes: Object3D Viewer3D Face FaceEditor

31 The Object3D class This is the base class, from which all other 3D objects are derived. Each Object3D instance contains A list of the object s vertices (where each vertex also contains its normal vector, used in smooth shading), A list of the vertex indices for each triangle, A list of normal vectors for each triangle, An optional list (object3dlist) of Object3D instances, thus allowing nested objects. For example, in face visualization, the eyes can be placed in the object3dlist of the face.

32 The Object3D class Moreover, each class derived from Object3D must have a Generate() method, which generates the specific shape for the object in question. An example will be given below.

33 The Object3D class Add to the stack of transformation matrices Set the object s position and orientation. Render as required. Calling this method again! Use the relative position and orientation! Remove from the stack of transformation matrices

34 The Object3D class The RenderSurfaces() method in turn calls the RenderTriangles() method, rendering the triangle surfaces: To do: Run the Sphere3D application, set a breakpoint in the RenderTriangles() method, and step through the code. Similar methods render the wireframe and the vertices, if requested.

35 Example: The Rectangle3D class Derived from Object3D

36 Example: Rectangle3D class Contains the necessary parameters for the 3D shape in question Indices of the first triangle Indices of the second triangle These three methods must be called at the end of the Generate() method for any class derived from Object3D.

37 Example: Rectangle3D class GenerateTriangleConnectionLists() Generates a list of all the triangles to which a given vertex is connected. Needed for computing vertex normals (see above). GenerateTriangleNormalVectors() Generates the triangle normals needed in flat shading. ComputeVertexNormalVectors() Uses the list obtained in the first method above to compute the vertex normal (= the average of the normal vectors of the triangles to which the vertex is connected).

38 Additional 3D objects In addition to the Rectangle3D, the library also contains classes for generating a sphere, a torus (or a sector thereof) etc. You may need to implement additional 3D object classes (in particular their Generate() method), depending on the level of complexity of your visualization. If so, then check the source code for the existing classes (e.g. Rectangle3D, which is the simplest one). Of course, you can ask us, at any time, how to implement additional 3D object classes!

39 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

40 The Viewer3D class Handles visualization of the 3D objects.

41 Rotation and translation To move and object relative to its current location, one uses the Move() method (in Object3D). Rotations around the coordinate axes are handled using RotateX(), RotateY(), and RotateZ(). Note that 3D rotation is a complex topic. The result will depend on the order of the rotations! Here, in most cases, we ll only need rotation around a single axis at a time (e.g. when the agent blinks!).

42 Faces In addition to simple objects (Sphere3D, Rectangle3D) etc., there is also a considerably more complex Face class. A horizontal slice through the face is a closed curve, here represented as a (composite) Bézier spline. The various horizontal slices are then joined to form triangles, which always contain two points from one slice and one point from either the slice below or the slice above.

43 Faces A slice through a face (the green plane...)...represented as a smooth (closed) Bézier curve. The yellow points are the support points for the splines. Note that the smooth curve can be sampled with any precision one can sample thousands of points, if one wishes to do so. (The yellow points just define the splines).

44 Faces: Visualization A simple 3D head can be modeled as a face (i.e. the shape of the face and the nose and ears), with added eyes, eye lids, eyebrows etc. A more advanced head model would also include a movable jaw. An even higher level of sophistication would be to model muscles and skin, attached to a rigid skull.

45 Faces: Visualization Structure of the face demonstrated in Lecture 1 and in Chapter 5: Face (Object3D) Object3DList: lefteyebulb (Sphere3D), lighteyebulb (Sphere3D), lefteyebrow (TorusSector3D), righteyebrow (TorusSector3D) lefteyebulb Object3DList : lefteyeiris (SphereSegment3D), lefteyepupil (SphereSegment3D), lefteyelid (SphereSegment3D) righteyebulb Object3DList : Same as for the left eye bulb, but with the prefix right (separate instances, of course).

46 Some code to help you... Load face (Generated with the FaceEditor application; see below). The Initialize() method in the FaceApplication Generate left eye bulb. Generate left eye iris. + More objects generated (not shown here) + Setting position and orientatin (not shown here)

47 Some code to help you Add iris, pupil, and lid in the object3dlist of the left eye and then add the left eye to the object3dlist of the face. With this nested structure, one can more easily move the face, or parts thereof. For example, if an eye is rotated, the iris, pupil, and lid will follow along (as they should).

48 Faces: Visualization Whenever an object is attached to another, use nesting (with the objectlist). Note that the attachment need not be rigid. For example, the agent can rotate its head while moving its gaze and blinking!

49 Faces: Visualization

50 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

51 Faces: Visualization Even with this simple structure, one can represent many facial expressions Neutral (alert) Sleepy Asleep Surprised Angry Frightened

52 Faces: Animation Here, animation has been implemented using two threads: Animation thread: Runs all the time (once animation is started), invalidating the Viewer3D at regular intervals (e.g. 25 times per second). The invalidation causes the Viewer3D to repaint itself. Specific motion thread (e.g. blink, nod etc.): Just changes the position or rotation (or both) of the object. When the object is repainted, the new pose (position and rotation) is used.

53 Faces: Animation...in the Viewer3D class

54 Faces: Animation

55 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

56 The FaceEditor application The FaceEditor application makes use of the highly complex FaceEditor user control that, in turn, makes use of Bézier splines, implemented in the MathematicsLibrary. With this user control, one can define, edit, save (in XML format), and load a Face object. The FaceEditor user control has two panels: One for 3D rendering, and one for showing horizontal slices through the face (see the next slide).

57 The FaceEditor user control Slice plane (green) [Left] and the corresponding close curve [Right]

58 The FaceEditor user control To edit a slice, use the mouse to grab one or several support points

59 The FaceEditor user control Then use the mouse to drag. Note that left-right symmetry is enforced. Use the mouse wheel to zoom and off-zoom in the 2D view (first click on the 2D panel). NOTE: Right-click with the mouse to clear the selection of points.

60 The FaceEditor user control Click on the 3D panel and use the arrow keys to move between slice planes Note: This does not change the vertical position of the planes in order to actually move a plane (in the z direction (up or down), click on Move up or Move down.

61 The FaceEditor user control Note the difference between Moving between planes (arrow keys) Actually moving a plane (Move up or Move down button) One can also remove a slice plane (click on the Remove slice button). insert a slice plane (click on the Insert slice button).

62 The FaceEditor user control An inserted slice is generated as the average (so to speak) between the slice below and the slice above: Slice above Slice below Inserted slice.

63 Today s learning goals After this lecture you should be able to Describe 3D rendering using OpenTK Define and compute the normal vector of a triangle Describe the concepts of lighting and shading Implement a 3D object derived from Object3D Describe and use the concept of nested 3D objects Set up and animate a simple 3D face Describe and use the FaceEditor user control

Topics and things to know about them:

Topics and things to know about them: Practice Final CMSC 427 Distributed Tuesday, December 11, 2007 Review Session, Monday, December 17, 5:00pm, 4424 AV Williams Final: 10:30 AM Wednesday, December 19, 2007 General Guidelines: The final will

More information

CS 4620 Program 3: Pipeline

CS 4620 Program 3: Pipeline CS 4620 Program 3: Pipeline out: Wednesday 14 October 2009 due: Friday 30 October 2009 1 Introduction In this assignment, you will implement several types of shading in a simple software graphics pipeline.

More information

Models and Architectures

Models and Architectures Models and Architectures Objectives Learn the basic design of a graphics system Introduce graphics pipeline architecture Examine software components for an interactive graphics system 1 Image Formation

More information

3D Modeling Course Outline

3D Modeling Course Outline 3D Modeling Course Outline Points Possible Course Hours Course Overview 4 Lab 1: Start the Course Identify computer requirements. Learn how to move through the course. Switch between windows. Lab 2: Set

More information

BCC Sphere Transition

BCC Sphere Transition BCC Sphere Transition The Sphere Transition shape models the source image onto a sphere. Unlike the Sphere filter, the Sphere Transition filter allows you to animate Perspective, which is useful in creating

More information

Outline. Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s)

Outline. Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s) Modeler Help Outline Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s) Objects in the Scene Controls of the object selected in the Scene. Currently the Scene

More information

CS 465 Program 4: Modeller

CS 465 Program 4: Modeller CS 465 Program 4: Modeller out: 30 October 2004 due: 16 November 2004 1 Introduction In this assignment you will work on a simple 3D modelling system that uses simple primitives and curved surfaces organized

More information

Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th

Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th 1. a. Show that the following sequences commute: i. A rotation and a uniform scaling ii. Two rotations about the same axis iii. Two

More information

6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm

6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm 6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm In this assignment, you will add an interactive preview of the scene and solid

More information

Computer Graphics I Lecture 11

Computer Graphics I Lecture 11 15-462 Computer Graphics I Lecture 11 Midterm Review Assignment 3 Movie Midterm Review Midterm Preview February 26, 2002 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/

More information

COS 116 The Computational Universe Laboratory 10: Computer Graphics

COS 116 The Computational Universe Laboratory 10: Computer Graphics COS 116 The Computational Universe Laboratory 10: Computer Graphics As mentioned in lecture, computer graphics has four major parts: imaging, rendering, modeling, and animation. In this lab you will learn

More information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

More information

COS 116 The Computational Universe Laboratory 10: Computer Graphics

COS 116 The Computational Universe Laboratory 10: Computer Graphics COS 116 The Computational Universe Laboratory 10: Computer Graphics As mentioned in lecture, computer graphics has four major parts: imaging, rendering, modeling, and animation. In this lab you will learn

More information

For each question, indicate whether the statement is true or false by circling T or F, respectively.

For each question, indicate whether the statement is true or false by circling T or F, respectively. True/False For each question, indicate whether the statement is true or false by circling T or F, respectively. 1. (T/F) Rasterization occurs before vertex transformation in the graphics pipeline. 2. (T/F)

More information

Modeling Technology Group

Modeling Technology Group Modeling Technology Group Hiroshi Hayashi David Ogirala Matt Nedrich Jeff Ridenbaugh Spencer Smith Saba Bokhari John Gray Charles Hellstrom Bryan Linthicum Polygon Models (part-1) What are polygons? -

More information

Spring 2012 Final. CS184 - Foundations of Computer Graphics. University of California at Berkeley

Spring 2012 Final. CS184 - Foundations of Computer Graphics. University of California at Berkeley Spring 2012 Final CS184 - Foundations of Computer Graphics University of California at Berkeley Write your name HERE: Write your login HERE: Closed book. You may not use any notes or printed/electronic

More information

MODELING EYES ESTIMATED TIME REQUIRED

MODELING EYES ESTIMATED TIME REQUIRED MODELING EYES This tutorial will teach you how to model a pair of realistic-looking eyes and insert them into the head of a character. ESTIMATED TIME REQUIRED 30 Minutes LEARNING GOALS In this tutorial,

More information

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves Computer Graphics Instructor: Brian Curless CSEP 557 Autumn 2016 Homework #2 Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves Assigned: Wednesday, Nov 16 th Due: Wednesday, Nov 30

More information

Pipeline Operations. CS 4620 Lecture 14

Pipeline Operations. CS 4620 Lecture 14 Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives

More information

CGS 3220 Lecture 13 Polygonal Character Modeling

CGS 3220 Lecture 13 Polygonal Character Modeling CGS 3220 Lecture 13 Polygonal Character Modeling Introduction to Computer Aided Modeling Instructor: Brent Rossen Overview Box modeling Polygon proxy Mirroring Polygonal components Topology editing Procedural

More information

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1 UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series PG Examination 2013-14 COMPUTER GAMES DEVELOPMENT CMPSME27 Time allowed: 2 hours Answer any THREE questions. (40 marks each) Notes are

More information

Rendering. Illumination Model. Wireframe rendering simple, ambiguous Color filling flat without any 3D information

Rendering. Illumination Model. Wireframe rendering simple, ambiguous Color filling flat without any 3D information llumination Model Wireframe rendering simple, ambiguous Color filling flat without any 3D information Requires modeling interaction of light with the object/surface to have a different color (shade in

More information

Due: Thursday, February 6 th, 11:59 pm TA: Mason Remy

Due: Thursday, February 6 th, 11:59 pm TA: Mason Remy Due: Thursday, February 6 th, 11:59 pm TA: Mason Remy Checking out, building, and using the sample solution Part 1: Surface of Revolution Part 2: Hierarchical Modeling Part 3: Blinn-Phong Shader Part 4:

More information

Sculpting 3D Models. Glossary

Sculpting 3D Models. Glossary A Array An array clones copies of an object in a pattern, such as in rows and columns, or in a circle. Each object in an array can be transformed individually. Array Flyout Array flyout is available in

More information

CPSC / Texture Mapping

CPSC / Texture Mapping CPSC 599.64 / 601.64 Introduction and Motivation so far: detail through polygons & materials example: brick wall problem: many polygons & materials needed for detailed structures inefficient for memory

More information

Computer Graphics: Introduction to the Visualisation Toolkit

Computer Graphics: Introduction to the Visualisation Toolkit Computer Graphics: Introduction to the Visualisation Toolkit Visualisation Lecture 2 Taku Komura Institute for Perception, Action & Behaviour Taku Komura Computer Graphics & VTK 1 Last lecture... Visualisation

More information

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015 Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather

More information

Shaders. Slide credit to Prof. Zwicker

Shaders. Slide credit to Prof. Zwicker Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

More information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

More information

Viewing with Computers (OpenGL)

Viewing with Computers (OpenGL) We can now return to three-dimension?', graphics from a computer perspective. Because viewing in computer graphics is based on the synthetic-camera model, we should be able to construct any of the classical

More information

Create a Rubber Duck. This tutorial shows you how to. Create simple surfaces. Rebuild a surface. Edit surface control points. Draw and project curves

Create a Rubber Duck. This tutorial shows you how to. Create simple surfaces. Rebuild a surface. Edit surface control points. Draw and project curves Page 1 of 24 Create a Rubber Duck This exercise focuses on the free form, squishy aspect. Unlike the flashlight model, the exact size and placement of the objects is not critical. The overall form is the

More information

CS 130 Final. Fall 2015

CS 130 Final. Fall 2015 CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

Notes on Blender: By Matthew Evett

Notes on Blender: By Matthew Evett Notes on Blender: By Matthew Evett A synopsis of the Wiki: http://en.wikibooks.org/wiki/blender_3d:_noob_to_pro The Blender GUI is implemented via opengl. Thus the GUI is not Windowsstandard. Can resize

More information

CS5620 Intro to Computer Graphics

CS5620 Intro to Computer Graphics So Far wireframe hidden surfaces Next step 1 2 Light! Need to understand: How lighting works Types of lights Types of surfaces How shading works Shading algorithms What s Missing? Lighting vs. Shading

More information

Draw Guide. Chapter 7 Working with 3D Objects

Draw Guide. Chapter 7 Working with 3D Objects Draw Guide Chapter 7 Working with 3D Objects Copyright This document is Copyright 2011 2014 by the LibreOffice Documentation Team. Contributors are listed below. You may distribute or modify it under the

More information

Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers

Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers Question 1. a) (5 marks) Explain the OpenGL synthetic camera model,

More information

Advanced Lighting Techniques Due: Monday November 2 at 10pm

Advanced Lighting Techniques Due: Monday November 2 at 10pm CMSC 23700 Autumn 2015 Introduction to Computer Graphics Project 3 October 20, 2015 Advanced Lighting Techniques Due: Monday November 2 at 10pm 1 Introduction This assignment is the third and final part

More information

CS451Real-time Rendering Pipeline

CS451Real-time Rendering Pipeline 1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does

More information

Facial Animation. Chapter 7

Facial Animation. Chapter 7 Chapter 7 Facial Animation Although you can go a long way toward completing a scene simply by animating the character s body, animating the character s face adds greatly to the expressiveness of a sequence.

More information

3D Studio Max Lesson 1.1: A Basic Overview of 3DSMax's Main Tool Bar

3D Studio Max Lesson 1.1: A Basic Overview of 3DSMax's Main Tool Bar 3D Studio Max Lesson 1.1: A Basic Overview of 3DSMax's Main Tool Bar Introduction In this tutorial, we'll just be taking a look at parts of the environment of 3D Studio Max version 4.26, and helping you

More information

MODELING AND HIERARCHY

MODELING AND HIERARCHY MODELING AND HIERARCHY Introduction Models are abstractions of the world both of the real world in which we live and of virtual worlds that we create with computers. We are all familiar with mathematical

More information

SolidWorks 2015 User Interface

SolidWorks 2015 User Interface SolidWorks 2015 User Interface SolidWorks a Dassault Systèmes Product Starting SolidWorks 1) On the desktop, double-click or from the start menu select: All Programs SOLIDWORKS 2015 SOLIDWORKS 2015. 2)

More information

Introduction to Computer Graphics with WebGL

Introduction to Computer Graphics with WebGL Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico Models and Architectures

More information

Avid FX Tutorials. Understanding the Tutorial Exercises

Avid FX Tutorials. Understanding the Tutorial Exercises Avid FX Tutorials Understanding the Tutorial Exercises The following tutorial exercises provide step-by-step instructions for creating various kinds of effects, while exploring many aspects of the Avid

More information

SPACE - A Manifold Exploration Program

SPACE - A Manifold Exploration Program 1. Overview SPACE - A Manifold Exploration Program 1. Overview This appendix describes the manifold exploration program SPACE that is a companion to this book. Just like the GM program, the SPACE program

More information

Character Modeling COPYRIGHTED MATERIAL

Character Modeling COPYRIGHTED MATERIAL 38 Character Modeling p a r t _ 1 COPYRIGHTED MATERIAL 39 Character Modeling Character Modeling 40 1Subdivision & Polygon Modeling Many of Maya's features have seen great improvements in recent updates

More information

Using the CMA Warp Editor

Using the CMA Warp Editor Using the CMA Warp Editor Overview The Warp Editor feature lets you adjust Axon HD, Axon HD Pro, DLHD or MMS100 output to match complex projection surfaces. These forms allow the projection to match irregular

More information

Lighting. Figure 10.1

Lighting. Figure 10.1 We have learned to build three-dimensional graphical models and to display them. However, if you render one of our models, you might be disappointed to see images that look flat and thus fail to show the

More information

OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL

OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL OpenGL: Open Graphics Library Introduction to OpenGL Part II CS 351-50 Graphics API ( Application Programming Interface) Software library Layer between programmer and graphics hardware (and other software

More information

The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when time is announced or risk not having it accepted.

The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when time is announced or risk not having it accepted. CS 184: Foundations of Computer Graphics page 1 of 10 Student Name: Class Account Username: Instructions: Read them carefully! The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when

More information

Lecture 4 Advanced Computer Graphics (CS & SE )

Lecture 4 Advanced Computer Graphics (CS & SE ) Lecture 4 Advanced Computer Graphics (CS & SE 233.420) Topics Covered Animation Matrices Viewing Lighting Animating Interactive Programs Consider planet.c Want to animate rotating the Earth around the

More information

Homework 3: Programmable Shaders

Homework 3: Programmable Shaders Homework 3: Programmable Shaders Introduction to Computer Graphics and Imaging (Summer 2012), Stanford University Due Monday, July 23, 11:59pm Warning: The coding portion of this homework involves features

More information

Illumination Models & Shading

Illumination Models & Shading Illumination Models & Shading Lighting vs. Shading Lighting Interaction between materials and light sources Physics Shading Determining the color of a pixel Computer Graphics ZBuffer(Scene) PutColor(x,y,Col(P));

More information

Lecture 3 Sections 2.2, 4.4. Mon, Aug 31, 2009

Lecture 3 Sections 2.2, 4.4. Mon, Aug 31, 2009 Model s Lecture 3 Sections 2.2, 4.4 World s Eye s Clip s s s Window s Hampden-Sydney College Mon, Aug 31, 2009 Outline Model s World s Eye s Clip s s s Window s 1 2 3 Model s World s Eye s Clip s s s Window

More information

TSBK03 Screen-Space Ambient Occlusion

TSBK03 Screen-Space Ambient Occlusion TSBK03 Screen-Space Ambient Occlusion Joakim Gebart, Jimmy Liikala December 15, 2013 Contents 1 Abstract 1 2 History 2 2.1 Crysis method..................................... 2 3 Chosen method 2 3.1 Algorithm

More information

Full Screen Layout. Main Menu Property-specific Options. Object Tools ( t ) Outliner. Object Properties ( n ) Properties Buttons

Full Screen Layout. Main Menu Property-specific Options. Object Tools ( t ) Outliner. Object Properties ( n ) Properties Buttons Object Tools ( t ) Full Screen Layout Main Menu Property-specific Options Object Properties ( n ) Properties Buttons Outliner 1 Animation Controls The Create and Add Menus 2 The Coordinate and Viewing

More information

Character Modeling IAT 343 Lab 6. Lanz Singbeil

Character Modeling IAT 343 Lab 6. Lanz Singbeil Character Modeling IAT 343 Lab 6 Modeling Using Reference Sketches Start by creating a character sketch in a T-Pose (arms outstretched) Separate the sketch into 2 images with the same pixel height. Make

More information

A simple OpenGL animation Due: Wednesday, January 27 at 4pm

A simple OpenGL animation Due: Wednesday, January 27 at 4pm CMSC 23700 Winter 2010 Introduction to Computer Graphics Project 1 January 12 A simple OpenGL animation Due: Wednesday, January 27 at 4pm 1 Summary This project is the first part of a three-part project.

More information

The feature set you are required to implement in your ray tracer is as follows (by order from easy to hard):

The feature set you are required to implement in your ray tracer is as follows (by order from easy to hard): Ray Tracing exercise TAU, Computer Graphics, 0368.3014, semester B Go to the Updates and FAQ Page Overview The objective of this exercise is to implement a ray casting/tracing engine. Ray tracing is a

More information

CS Simple Raytracer for students new to Rendering

CS Simple Raytracer for students new to Rendering CS 294-13 Simple Raytracer for students new to Rendering Ravi Ramamoorthi This assignment should be done only by those small number of students who have not yet written a raytracer. For those students

More information

Graphics Hardware and Display Devices

Graphics Hardware and Display Devices Graphics Hardware and Display Devices CSE328 Lectures Graphics/Visualization Hardware Many graphics/visualization algorithms can be implemented efficiently and inexpensively in hardware Facilitates interactive

More information

Interactive Real-Time Raycasting

Interactive Real-Time Raycasting Interactive Real-Time Raycasting CS184 AS4 Due 2009-02-26 11:00pm We start our exploration of Rendering - the process of converting a high-level object-based description into a graphical image for display.

More information

THE AUSTRALIAN NATIONAL UNIVERSITY Final Examinations(Semester 2) COMP4610/COMP6461 (Computer Graphics) Final Exam

THE AUSTRALIAN NATIONAL UNIVERSITY Final Examinations(Semester 2) COMP4610/COMP6461 (Computer Graphics) Final Exam THE AUSTRALIAN NATIONAL UNIVERSITY Final Examinations(Semester 2) 2009 COMP4610/COMP6461 (Computer Graphics) Final Exam Writing Period: 3 hours duration Study Period: 15 minutes duration - you may read

More information

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation Keyframe animation CS4620/5620: Lecture 30 Animation Keyframing is the technique used for pose-to-pose animation User creates key poses just enough to indicate what the motion is supposed to be Interpolate

More information

Data Representation in Visualisation

Data Representation in Visualisation Data Representation in Visualisation Visualisation Lecture 4 Taku Komura Institute for Perception, Action & Behaviour School of Informatics Taku Komura Data Representation 1 Data Representation We have

More information

ECS 175 COMPUTER GRAPHICS. Ken Joy.! Winter 2014

ECS 175 COMPUTER GRAPHICS. Ken Joy.! Winter 2014 ECS 175 COMPUTER GRAPHICS Ken Joy Winter 2014 Shading To be able to model shading, we simplify Uniform Media no scattering of light Opaque Objects No Interreflection Point Light Sources RGB Color (eliminating

More information

Chapter 5. Projections and Rendering

Chapter 5. Projections and Rendering Chapter 5 Projections and Rendering Topics: Perspective Projections The rendering pipeline In order to view manipulate and view a graphics object we must find ways of storing it a computer-compatible way.

More information

Beaumont Middle School Design Project April May 2014 Carl Lee and Craig Schroeder

Beaumont Middle School Design Project April May 2014 Carl Lee and Craig Schroeder Beaumont Middle School Design Project April May 2014 Carl Lee and Craig Schroeder 1 2 SketchUp 1. SketchUp is free, and you can download it from the website www.sketchup.com. For some K12 use, see www.sketchup.com/3dfor/k12-education.

More information

Tutorial 4: Texture Mapping Techniques

Tutorial 4: Texture Mapping Techniques Tutorial 4: Texture Mapping Techniques Completion time 40 minutes In the previous tutorial we learned how to create materials, and how to assign texture maps to those materials. In this tutorial we will

More information

CMSC427 Final Practice v2 Fall 2017

CMSC427 Final Practice v2 Fall 2017 CMSC427 Final Practice v2 Fall 2017 This is to represent the flow of the final and give you an idea of relative weighting. No promises that knowing this will predict how you ll do on the final. Some questions

More information

1 Tutorials About the Tutorial Exercises

1 Tutorials About the Tutorial Exercises 1 Tutorials About the Tutorial Exercises..............................................2 Getting Started........................................................3 Exercise 1: Animating a 3D Model Using Keyframes............................3

More information

Illumination & Shading I

Illumination & Shading I CS 543: Computer Graphics Illumination & Shading I Robert W. Lindeman Associate Professor Interactive Media & Game Development Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu

More information

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL International Edition Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL Sixth Edition Edward Angel Dave Shreiner Interactive Computer Graphics: A Top-Down Approach with Shader-Based

More information

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Learn the basic design of a graphics system Introduce

More information

3D Modeling and Design Glossary - Beginner

3D Modeling and Design Glossary - Beginner 3D Modeling and Design Glossary - Beginner Align: to place or arrange (things) in a straight line. To use the Align tool, select at least two objects by Shift left-clicking on them or by dragging a box

More information

Lecture 17: Shading in OpenGL. CITS3003 Graphics & Animation

Lecture 17: Shading in OpenGL. CITS3003 Graphics & Animation Lecture 17: Shading in OpenGL CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives Introduce the OpenGL shading methods - per vertex shading

More information

PASS Sample Size Software

PASS Sample Size Software Chapter 941 Introduction In PASS, it is easy to study power and sample size calculations for a range of possible parameter values. When at least 2 input parameters vary, you can create stunning 3D power

More information

Transformations in Ray Tracing. MIT EECS 6.837, Durand and Cutler

Transformations in Ray Tracing. MIT EECS 6.837, Durand and Cutler Transformations in Ray Tracing Linear Algebra Review Session Tonight! 7:30 9 PM Last Time: Simple Transformations Classes of Transformations Representation homogeneous coordinates Composition not commutative

More information

3 Polygonal Modeling. Getting Started with Maya 103

3 Polygonal Modeling. Getting Started with Maya 103 3 Polygonal Modeling In Maya, modeling refers to the process of creating virtual 3D surfaces for the characters and objects in the Maya scene. Surfaces play an important role in the overall Maya workflow

More information

03 Vector Graphics. Multimedia Systems. 2D and 3D Graphics, Transformations

03 Vector Graphics. Multimedia Systems. 2D and 3D Graphics, Transformations Multimedia Systems 03 Vector Graphics 2D and 3D Graphics, Transformations Imran Ihsan Assistant Professor, Department of Computer Science Air University, Islamabad, Pakistan www.imranihsan.com Lectures

More information

Lecturer Athanasios Nikolaidis

Lecturer Athanasios Nikolaidis Lecturer Athanasios Nikolaidis Computer Graphics: Graphics primitives 2D viewing and clipping 2D and 3D transformations Curves and surfaces Rendering and ray tracing Illumination models Shading models

More information

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker CMSC427 Transformations II: Viewing Credit: some slides from Dr. Zwicker What next? GIVEN THE TOOLS OF The standard rigid and affine transformations Their representation with matrices and homogeneous coordinates

More information

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011 Computer Graphics 1 Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling 1 The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons in

More information

Copyright 2009 Pearson Education, Inc. Chapter 9 Section 5 - Slide 1 AND

Copyright 2009 Pearson Education, Inc. Chapter 9 Section 5 - Slide 1 AND Copyright 2009 Pearson Education, Inc. Chapter 9 Section 5 - Slide 1 AND Chapter 9 Geometry Copyright 2009 Pearson Education, Inc. Chapter 9 Section 5 - Slide 2 WHAT YOU WILL LEARN Transformational geometry,

More information

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection

More information

Actions and Graphs in Blender - Week 8

Actions and Graphs in Blender - Week 8 Actions and Graphs in Blender - Week 8 Sculpt Tool Sculpting tools in Blender are very easy to use and they will help you create interesting effects and model characters when working with animation and

More information

Transforming Objects and Components

Transforming Objects and Components 4 Transforming Objects and Components Arrow selection Lasso selection Paint selection Move Rotate Scale Universal Manipulator Soft Modification Show Manipulator Last tool used Figure 4.1 Maya s manipulation

More information

CS452/552; EE465/505. Intro to Lighting

CS452/552; EE465/505. Intro to Lighting CS452/552; EE465/505 Intro to Lighting 2-10 15 Outline! Projection Normalization! Introduction to Lighting (and Shading) Read: Angel Chapter 5., sections 5.4-5.7 Parallel Projections Chapter 6, sections

More information

CS 112 The Rendering Pipeline. Slide 1

CS 112 The Rendering Pipeline. Slide 1 CS 112 The Rendering Pipeline Slide 1 Rendering Pipeline n Input 3D Object/Scene Representation n Output An image of the input object/scene n Stages (for POLYGON pipeline) n Model view Transformation n

More information

Intro to Ray-Tracing & Ray-Surface Acceleration

Intro to Ray-Tracing & Ray-Surface Acceleration Lecture 12 & 13: Intro to Ray-Tracing & Ray-Surface Acceleration Computer Graphics and Imaging UC Berkeley Course Roadmap Rasterization Pipeline Core Concepts Sampling Antialiasing Transforms Geometric

More information

Assignment 2 Ray Tracing

Assignment 2 Ray Tracing Assignment 2 Ray Tracing Overview The concept of ray tracing: a technique for generating an image by tracing the path of light through pixels in an image plane and simulating the effects of its encounters

More information

S206E Lecture 3, 5/15/2017, Rhino 2D drawing an overview

S206E Lecture 3, 5/15/2017, Rhino 2D drawing an overview Copyright 2017, Chiu-Shui Chan. All Rights Reserved. S206E057 Spring 2017 Rhino 2D drawing is very much the same as it is developed in AutoCAD. There are a lot of similarities in interface and in executing

More information

Chapter 3- Creating & Editing Objects

Chapter 3- Creating & Editing Objects ` Chapter 3- Creating & Editing Objects Edit Mode- Mesh Editing Object Mode After you have created a mesh, you can go into Edit mode (Tab key or Mode option in window) and change its shape. In edit mode,

More information

3.6: First Person Computer Games

3.6: First Person Computer Games 3.6: First Person Computer Games Projections of 3-D Objects Alice is an educational software program that uses a 3-D environment to teach students programming. If you have not done so already, please download

More information

3D Design with 123D Design

3D Design with 123D Design 3D Design with 123D Design Introduction: 3D Design involves thinking and creating in 3 dimensions. x, y and z axis Working with 123D Design 123D Design is a 3D design software package from Autodesk. A

More information

The University of Calgary

The University of Calgary The University of Calgary Department of Computer Science Final Examination, Questions ENEL/CPSC 555 Computer Graphics Time: 2 Hours Closed Book, calculators are permitted. The questions carry equal weight.

More information

3D Surface Plots with Groups

3D Surface Plots with Groups Chapter 942 3D Surface Plots with Groups Introduction In PASS, it is easy to study power and sample size calculations for a range of possible parameter values. When at least 3 input parameters vary, you

More information

COMP environment mapping Mar. 12, r = 2n(n v) v

COMP environment mapping Mar. 12, r = 2n(n v) v Rendering mirror surfaces The next texture mapping method assumes we have a mirror surface, or at least a reflectance function that contains a mirror component. Examples might be a car window or hood,

More information

Computergrafik. Matthias Zwicker. Herbst 2010

Computergrafik. Matthias Zwicker. Herbst 2010 Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Bump mapping Shadows Shadow mapping Shadow mapping in OpenGL Bump mapping Surface detail is often the result of small perturbations in

More information

Methodology for Lecture. Importance of Lighting. Outline. Shading Models. Brief primer on Color. Foundations of Computer Graphics (Spring 2010)

Methodology for Lecture. Importance of Lighting. Outline. Shading Models. Brief primer on Color. Foundations of Computer Graphics (Spring 2010) Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 11: OpenGL 3 http://inst.eecs.berkeley.edu/~cs184 Methodology for Lecture Lecture deals with lighting (teapot shaded as in HW1) Some Nate

More information