CS 4621 PPA3: Animation

Size: px
Start display at page:

Download "CS 4621 PPA3: Animation"

Transcription

1 CS 4621 PPA3: Animation out: Saturday 19 November 2011 due: Friday 2 December Introduction There are two parts to this assignment. In the first part, you will complete the implementation of key frame animation, by implementing interpolation for rotations, translations and scaling. The second part of the assignment is more open-ended; you will create time-varying ( animated ) shaders for fire, clouds, and a third shader of your choice. 2 Key frame animation In this first part of the assignment we have implemented a key frame animation framework (as described below). You will need to build on that framework and implement a few main features that enable correct interpolation of animations between keyframes. 2.1 The interface We have added a new panel Animation panel, which contains different controls for animation, briefly described here: Jump to frame: this lets you drag the slider to the frame you want, or enter the number of the frame directly in the textbox. Add a keyframe: jump to the frame where you want to make a keyframe, then click the button Keyframe it. Remove a keyframe: select a keyframe and right click on it, choose Remove Keyframe from the popup menu. Frame 0 cannot be removed. Play the animation: click the button Play! to start animating from the current frame. Click it again to stop the animation. Interpolate with cubic splines: select the checkbox Cubic spline interpolation. Capture frames to file: check Capture to file and click Play!, all the subsequent frames being animated will be exported to file. 1

2 CS 4621 PPA3 Animation 2 Figure 1: Interface Change shader: click some mesh from the tree hierarchy, then select one of the shaders below. Open/Save all keyframes as a file: click File->Open/Save As, then select the file to Open/Save. Warning: all keyframes should have the same scene hierarchy. 2.2 Functionality to implement You will fully implement all the functionality needed to make the animation work in the framework described above. There are two possible interpolation options: linear and cubic. Both of these interpolations are possible for translation and scaling. For rotations you will only implement spherical linear interpolation (not cubic) Implementing interpolation Interpolation is done in AnimationController. Keyframes are stored in TreeMap<Integer, Scene> keyframes. You will need to implement: Scene getlinearlyinterpolatedscene(int frame) and Scene getcatmullrominterpolatedscene(int frame). to return the interpolated scene for a given frame number. getlinearlyinterpolatedscene should return a linearly interpolated Scene. Similarly, getcatmullrominterpolatedscene should return a Scene interpolated using the Catmull- Rom cubic spline for translation and scaling. You will always interpolate rotation using spherical linear interpolation, slerp. While vecmath does implement the slerp functionality, you will write your own code to implement it.

3 CS 4621 PPA3 Animation 3 For getlinearlyinterpolatedscene, you need to: 1. If the current frame is at some keyframe, we can return that keyframe and don t need to interpolate. 2. Otherwise, find the two Scenes which have the nearest bigger and smaller frame numbers than the current frame. 3. Create a new Scene with the same structure as them. To duplicate the Scene structure, one needs to use DuplicateVisitor. 4. Flatten the three Scenes to an array. Use FlattenVisitor to achieve this. 5. Traverse the arrays and interpolate the translation, rotation and scaling components of each TransformationNode from the two keyframed Scenes. For getcatmullrominterpolatedscene the technique is the same, except you will use cubic, instead of linear interpolation Catmull-Rom spline interpolation The Catmull-Rom spline is a cubic interpolating spline that goes through all its control points P i 2 P (t) = 1 [ 1 t t 2 t 3] P i P i P i+1 where P i s are control points. In addition, it has the property that: 1. P (t = 0) = P i 1, P (t = 1) = P i 2. Further the tangents at each point are defined by the next and previous point as follows: v i 1 = 0.5(P i P i 2 ) v i = 0.5(P i+1 P i 1 ) Finding control points To interpolate frame x using the Catmull-Rom spline, we need to find four frames to define four control points. We call them x 0, x 1, x 2 and x 3, so that x 0 < x 1 < x < x 2 < x 3. These frames are: x 1 is the nearest keyframe smaller than x x 0 is the nearest keyframe smaller than x 1 x 2 is the nearest keyframe bigger than x x 3 is the nearest keyframe bigger than x 2

4 CS 4621 PPA3 Animation 4 There will also be some corner cases. When x is larger than the last keyframe, we can duplicate the state of the last keyframe. When less than four control points can be found, we will use some of them twice (e.g., assuming we have three keyframes P 0, P 1 and P 2, and we want to interpolate frame x, P 0 < x < P 1, then the four control points will be P 0, P 0, P 1, P 2 ). In this case the spline will still go through the keyframes. The convention described here to process corner cases for cubic interpolation also applies to linear interpolation Conversion between Euler angles and Quaternions Because we are going to implement slerp, which uses quaternions, while the rotation manipulator uses Euler angles, we need to convert between these two representations. From Euler angles to Quaternions The euler angle (a, b, c) is the product of three axis-angles given us: < (1, 0, 0), a > < (0, 1, 0), b > < (0, 0, 1), c > So they represent the product of three quaternions: q x =< s, v >=< cos(a/2), sin(a/2)(1, 0, 0) > q y =< s, v >=< cos(b/2), sin(b/2)(0, 1, 0) > q z =< s, v >=< cos(c/2), sin(c/2)(0, 0, 1) > q = q z q y q x From Quaternions to Euler angles To convert from quaternion < w, x, y, z > to Euler angle (a, b, c) we need the following equation a atan2(2(wx + yz), 1 2(x 2 + y 2 )) b = c arcsin(2(wy zx)) atan2(2(wz + xy), 1 2(y 2 + z 2 )) (Reference: Wiki page Conversion between quaternions and Euler angles ) 2.3 End product Once you have implemented these components you will be able to set up key frame animation, interpolate to create the inbetween frames, and save animations away. We would like you to use your engine to create a couple of interesting examples (e.g., link and joint structures) to show off your engine. Turn the animations in as well. Also include a README describing what you created.

5 CS 4621 PPA3 Animation 5 3 Shaders You will implement 3 time varying shaders in the assignment: a fire shader, a cloudy sky shader, and one other animated shader of your choice. This portion of the assignment has a lot of freedom; we broadly describe the first two shaders here, and encourage you to play around and make something fun for the third. 3.1 Procedural Noise Figure 2: Some examples of procedural textures based on Perlin noise. You will use this type of noise in your animated shaders to provide unpredictable movement (flickering of a fire, etc.). Image from a 1999 talk by Ken Perlin, available online at talk1/. To simulate the unpredictable flickering of a fire or the evolution of clouds, we need a source of randomness. Truly random numbers (from rand()) aren t appropriate because fire does not move in a completely random way; it moves unpredictably, but the motion is smooth and continuous. Of course, people have thought about this problem before. Perlin noise, invented in 1984 by Ken Perlin for exactly this task, is a robust and commonly used method for generating smooth randomness. Fig. 2 shows some examples of the kinds of textures which can be created using Perlin noise. Generating Perlin noise is not difficult, but it s not the point of this assignment, so we have provided a texture of pre-generated noise for you to sample from in your shaders. Each component of the texture (RGBA) contains an independent noise distribution. Each successive channel has twice the frequency and

6 CS 4621 PPA3 Animation 6 Figure 3: Red, green, blue, and alpha channels (left to right) of a single slice of the provided noise texture. You can see that each channel varies more quickly than the previous channel, but is half as bright. half the amplitude of the previous channel, i.e. noise.g varies twice as fast as noise.r but is half as bright, and so forth. Fig. 3 shows each channel from a single slice of the 3D noise texture to illustrate this. 3.2 Fire Shader The fire shader takes as input the noise texture we created for you, and animates a fire-like effect. Since we need a different noise value at every point in space, the Perlin noise texture we provide is a 3D texture. 3D textures are directly analogous to regular 2D textures: they are 3-dimensional blocks of pixels (sometimes called voxels for 3D textures), and you need 3 texture coordinates to sample from them. For this shader, you ll use the fragment s position in object space to sample from the noise volume. This gives a random vec4 associated with that fragment, but it will be the same random value every frame; so far, this does not animate. The simplest way to animate is to add a time-dependent offset to one of the sample coordinates, i.e. sample noise(pos + vec3(0.0, time, 0.0)). However, this produces a boring scrolling effect which doesn t look much like flame. You can create a more turbulent effect by recursively sampling from the noise volume, something like sample noise(pos + sample noise(pos)). Once you have a sample of noise with suitable motion over time, you need to turn it into the color and texture of fire. This involves a lot of playing around to see what looks good, but here are some tips to get started: The provided shader has two constant colors, FireColor1 and FireColor2. You should use the noise texture to come up with some intensity value, and then interpolate between these two colors (GLSL has a mix(value0, value1, t) function) to get the final output color. You can sum different frequencies of noise with different amplitudes to create more visually complex images. For example, the lower left square of Fig. 2 has at least two contributions: the low-frequency high-amplitude noise which creates the overall light and dark areas, and the high-frequency but low-amplitude speckles. If you think about how fire looks, it has largescale, smooth changes between lots of fire and no fire, but intricate detail in the areas of lots of fire. You can sum different channels from the noise texture (containing different frequencies, see Fig. 3) to simulate this. Since the noise values are sampled from a color texture, they are all in the range [0, 1].

7 CS 4621 PPA3 Animation 7 Something like 2.0 * abs(noise - 0.5) causes the derivative of the noise to change abrupty whenever the original noise crossed 0.5, creating creases at such points (think about the graph of abs(x) it has a tip at 0). You can play with the crease location (0.5 in this example) and amplitude (1.0 in this example) to create different effects. The fire effect should fade out in the -y direction, so that the object is black at y = -1 and the effect is fully visible at y = 1. Since all the meshes generated in this assignment fit in a bounding box, you can just use the limits [-1, 1] in model space without having to tell the shader which object is being shaded. 3.3 Cloud Shader The cloud shader also uses the noise texture, but creates the effect of clouds moving or fading in and out. This shader will be quite similar to the fire shader. Clouds are less turbulent than fire, so you probably won t use recursive sampling of the noise texture in this shader, but the other tips from the fire shader still apply. The cloud shader should implement basic diffuse lighting as well, using the light position queried from OpenGL and the generated cloud pattern as the object s diffuse color. 3.4 Open-Ended/Fun Shader Anything you want! You will create a third shader of your choice. The only requirement is that it use Perlin noise to create an interesting animated effect. Perlin noise is used for everything and has been around for a long time, so there are tons of resources and ideas available online. You should also look up the list of GLSL built-in functions and just play around. In the README file give us detailed descriptions of what your shader does/tries to do so that we can understand it. If you used online resources, or talked to your friends, make sure you tell us about your source. 4 Extra credit For extra credit, go crazy creating interesting animated shaders!

Animation Essentially a question of flipping between many still images, fast enough

Animation Essentially a question of flipping between many still images, fast enough 33(70) Information Coding / Computer Graphics, ISY, LiTH Animation Essentially a question of flipping between many still images, fast enough 33(70) Animation as a topic Page flipping, double-buffering

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

CS 248 Assignment 2 Polygon Scan Conversion. CS248 Presented by Michael Green Stanford University October 20, 2004

CS 248 Assignment 2 Polygon Scan Conversion. CS248 Presented by Michael Green Stanford University October 20, 2004 CS 248 Assignment 2 Polygon Scan Conversion CS248 Presented by Michael Green Stanford University October 20, 2004 Announcements First thing: read README.animgui.. It should tell you everything you need

More information

Interpolation and Basis Fns

Interpolation and Basis Fns CS148: Introduction to Computer Graphics and Imaging Interpolation and Basis Fns Topics Today Interpolation Linear and bilinear interpolation Barycentric interpolation Basis functions Square, triangle,,

More information

Interpolation and Basis Fns

Interpolation and Basis Fns CS148: Introduction to Computer Graphics and Imaging Interpolation and Basis Fns Topics Today Interpolation Linear and bilinear interpolation Barycentric interpolation Basis functions Square, triangle,,

More information

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models 3D Programming Concepts Outline 3D Concepts Displaying 3D Models 3D Programming CS 4390 3D Computer 1 2 3D Concepts 3D Model is a 3D simulation of an object. Coordinate Systems 3D Models 3D Shapes 3D Concepts

More information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Quaternions as Orientations () page 1 Multiplying Quaternions q1 = (w1, x1, y1, z1); q = (w, x, y, z); q1 * q = ( w1.w - v1.v, w1.v + w.v1 + v1 X v) where v1 = (x1, y1,

More information

Sliding and Rotating Objects. Appendix 1: Author s Notes

Sliding and Rotating Objects. Appendix 1: Author s Notes AnimationWorks User Guide AnimationWORKS Introduction Camera Paths Cameras Moving Objects Moving Object Paths Sliding and Rotating Objects Light Objects Class Visibility Objects Transparency Objects Appendix

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

CS 248 Assignment 2 Polygon Scan Converter. CS248 Presented by Abe Davis Stanford University October 17, 2008

CS 248 Assignment 2 Polygon Scan Converter. CS248 Presented by Abe Davis Stanford University October 17, 2008 CS 248 Assignment 2 Polygon Scan Converter CS248 Presented by Abe Davis Stanford University October 17, 2008 Announcements First thing: read README.animgui. It should tell you everything you need to know

More information

Part II: OUTLINE. Visualizing Quaternions. Part II: Visualizing Quaternion Geometry. The Spherical Projection Trick: Visualizing unit vectors.

Part II: OUTLINE. Visualizing Quaternions. Part II: Visualizing Quaternion Geometry. The Spherical Projection Trick: Visualizing unit vectors. Visualizing Quaternions Part II: Visualizing Quaternion Geometry Andrew J. Hanson Indiana University Part II: OUTLINE The Spherical Projection Trick: Visualizing unit vectors. Quaternion Frames Quaternion

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

Chapter 9- Animation Basics

Chapter 9- Animation Basics Timing, Moving, Rotating and Scaling Now that we know how to make stuff and make it look good, it s time to figure out how to move it around in your scene. Another name for an animation is Interpolation

More information

Flames in Particle Flow

Flames in Particle Flow Flames in Particle Flow In this tutorial we are going to take a look at creating some licking flames in Particle Flow. I warn you however, is that this method of fire creation is very processor intensive.

More information

O Hailey: Chapter 3 Bonus Materials

O Hailey: Chapter 3 Bonus Materials O Hailey: Chapter 3 Bonus Materials Maya s Toon Line For those familiar with toon lines in Maya, you may skip ahead past this section. Those not familiar might find it useful to understand the basics of

More information

CS 465 Program 5: Ray II

CS 465 Program 5: Ray II CS 465 Program 5: Ray II out: Friday 2 November 2007 due: Saturday 1 December 2007 Sunday 2 December 2007 midnight 1 Introduction In the first ray tracing assignment you built a simple ray tracer that

More information

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space.

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. 3D Modeling with Blender: 01. Blender Basics Overview This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. Concepts Covered Blender s

More information

Com S 336 Final Project Ideas

Com S 336 Final Project Ideas Com S 336 Final Project Ideas Deadlines These projects are to be done in groups of two. I strongly encourage everyone to start as soon as possible. Presentations begin four weeks from now (Tuesday, December

More information

The Illusion of Motion Making magic with textures in the vertex shader. Mario Palmero Lead Programmer at Tequila Works

The Illusion of Motion Making magic with textures in the vertex shader. Mario Palmero Lead Programmer at Tequila Works The Illusion of Motion Making magic with textures in the vertex shader Mario Palmero Lead Programmer at Tequila Works Dark Ages before Textures in the Vertex Shader What is the Vertex Shader? A programmable

More information

8K Earth, Moon and Mars Shaders Asset V Documentation

8K Earth, Moon and Mars Shaders Asset V Documentation 8K Earth, Moon and Mars Shaders Asset V0.3.3 Documentation Charles Pérois - 2015 Introduction 2 Table des matières 1. Introduction...3 2. Release Note...4 3. How to Use...5 1. Set the scene...5 1. Set

More information

1 Overview. EPFL 14 th Apr, /6. Michaël Defferrard Pierre Fechting Vu Hiep Doan

1 Overview. EPFL 14 th Apr, /6. Michaël Defferrard Pierre Fechting Vu Hiep Doan 1/6 1 Overview This report presents our advancement on the rst part of the project : terrain generation using procedural methods. Figure 1 shows an example of what our actual code base is able to generate.

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

IMAGE-BASED RENDERING AND ANIMATION

IMAGE-BASED RENDERING AND ANIMATION DH2323 DGI17 INTRODUCTION TO COMPUTER GRAPHICS AND INTERACTION IMAGE-BASED RENDERING AND ANIMATION Christopher Peters CST, KTH Royal Institute of Technology, Sweden chpeters@kth.se http://kth.academia.edu/christopheredwardpeters

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

An Approach to Content Creation for Trainz

An Approach to Content Creation for Trainz An Approach to Content Creation for Trainz Paul Hobbs Part 6 GMax Basics (Updates and sample files available from http://www.44090digitalmodels.de) Page 1 of 18 Version 3 Index Foreward... 3 The Interface...

More information

BCC Rays Ripply Filter

BCC Rays Ripply Filter BCC Rays Ripply Filter The BCC Rays Ripply filter combines a light rays effect with a rippled light effect. The resulting light is generated from a selected channel in the source image and spreads from

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

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

Animation Basics. Learning Objectives

Animation Basics. Learning Objectives Animation Basics Learning Objectives After completing this chapter, you will be able to: Work with the time slider Understand animation playback controls Understand animation and time controls Morph compound

More information

lecture 18 - ray tracing - environment mapping - refraction

lecture 18 - ray tracing - environment mapping - refraction lecture 18 - ray tracing - environment mapping - refraction Recall Ray Casting (lectures 7, 8) for each pixel (x,y) { cast a ray through that pixel into the scene, and find the closest surface along the

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

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 32 Cornell CS4620 Fall 2015 1 What is animation? Modeling = specifying shape using all the tools we ve seen: hierarchies, meshes, curved surfaces Animation = specifying shape

More information

Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and

Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and lessons learned attempting to make something new Defining

More information

3D Rotation: more than just a hobby

3D Rotation: more than just a hobby 3D Rotation: more than just a hobby Eric Yang s special talent is the mental rotation of threedimensional objects. Mental rotation is Yang s hobby. I can see textures and imperfections and the play of

More information

Zeyang Li Carnegie Mellon University

Zeyang Li Carnegie Mellon University Zeyang Li Carnegie Mellon University Recap: Texture Mapping Programmable Graphics Pipeline Bump Mapping Displacement Mapping Environment Mapping GLSL Overview Perlin Noise GPGPU Map reflectance over a

More information

Animation Curves and Splines 2

Animation Curves and Splines 2 Animation Curves and Splines 2 Animation Homework Set up Thursday a simple avatar E.g. cube/sphere (or square/circle if 2D) Specify some key frames (positions/orientations) Associate Animation a time with

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

Sign up for crits! Announcments

Sign up for crits! Announcments Sign up for crits! Announcments Reading for Next Week FvD 16.1-16.3 local lighting models GL 5 lighting GL 9 (skim) texture mapping Modern Game Techniques CS248 Lecture Nov 13 Andrew Adams Overview The

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

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

Noise Course Overview Jim Whitehead. UC Santa Cruz School of Engineering courses.soe.ucsc.edu/courses/cmps265/spring14/01

Noise Course Overview Jim Whitehead. UC Santa Cruz School of Engineering courses.soe.ucsc.edu/courses/cmps265/spring14/01 Noise Course Overview Jim Whitehead UC Santa Cruz School of Engineering courses.soe.ucsc.edu/courses/cmps265/spring14/01 ejw@cs.ucsc.edu 31 Mar 2014 Computer generation Assume that there exists: One or

More information

BONE CONTROLLER ASSET VERSION 0.1 REV 1

BONE CONTROLLER ASSET VERSION 0.1 REV 1 Foreword Thank you for purchasing the Bone Controller! I m an independent developer and your feedback and support really means a lot to me. Please don t ever hesitate to contact me if you have a question,

More information

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render 1 There are two major classes of algorithms for extracting most kinds of lines from 3D meshes. First, there are image-space algorithms that render something (such as a depth map or cosine-shaded model),

More information

Adobe Flash CS3 Reference Flash CS3 Application Window

Adobe Flash CS3 Reference Flash CS3 Application Window Adobe Flash CS3 Reference Flash CS3 Application Window When you load up Flash CS3 and choose to create a new Flash document, the application window should look something like the screenshot below. Layers

More information

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1 Animation Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 4/23/07 1 Today s Topics Interpolation Forward and inverse kinematics Rigid body simulation Fluids Particle systems Behavioral

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

FACULTY AND STAFF COMPUTER FOOTHILL-DE ANZA. Office Graphics

FACULTY AND STAFF COMPUTER FOOTHILL-DE ANZA. Office Graphics FACULTY AND STAFF COMPUTER TRAINING @ FOOTHILL-DE ANZA Office 2001 Graphics Microsoft Clip Art Introduction Office 2001 wants to be the application that does everything, including Windows! When it comes

More information

Lab 2A Finding Position and Interpolation with Quaternions

Lab 2A Finding Position and Interpolation with Quaternions Lab 2A Finding Position and Interpolation with Quaternions In this Lab we will learn how to use the RVIZ Robot Simulator, Python Programming Interpreter and ROS tf library to study Quaternion math. There

More information

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008.

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008. CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions The Midterm Exam was given in class on Thursday, October 23, 2008. 1. [4 pts] Drawing Where? Your instructor says that objects should always be

More information

Graphics for VEs. Ruth Aylett

Graphics for VEs. Ruth Aylett Graphics for VEs Ruth Aylett Overview VE Software Graphics for VEs The graphics pipeline Projections Lighting Shading VR software Two main types of software used: off-line authoring or modelling packages

More information

CMSC 425: Lecture 10 Skeletal Animation and Skinning

CMSC 425: Lecture 10 Skeletal Animation and Skinning CMSC 425: Lecture 10 Skeletal Animation and Skinning Reading: Chapt 11 of Gregory, Game Engine Architecture. Recap: Last time we introduced the principal elements of skeletal models and discussed forward

More information

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required:

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required: Reading Required: Angel 10.1-10.3, 10.5.2, 10.6-10.7, 10.9 Parametric curves CSE 457 Winter 2014 Optional Bartels, Beatty, and Barsky. An Introduction to Splines for use in Computer Graphics and Geometric

More information

What is the Deal with Color?

What is the Deal with Color? What is the Deal with Color? What is the Deal with Color? Beginning from the beginning Our First Moves Diffuse Object Colors Specular Lighting Transparency Paint on Image Those sliders and things Diffuse

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

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring

More information

Advanced Real- Time Cel Shading Techniques in OpenGL Adam Hutchins Sean Kim

Advanced Real- Time Cel Shading Techniques in OpenGL Adam Hutchins Sean Kim Advanced Real- Time Cel Shading Techniques in OpenGL Adam Hutchins Sean Kim Cel shading, also known as toon shading, is a non- photorealistic rending technique that has been used in many animations and

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

Flash offers a way to simplify your work, using symbols. A symbol can be

Flash offers a way to simplify your work, using symbols. A symbol can be Chapter 7 Heavy Symbolism In This Chapter Exploring types of symbols Making symbols Creating instances Flash offers a way to simplify your work, using symbols. A symbol can be any object or combination

More information

Introduction to Digital Modelling and Animation in Design week 4 Textures

Introduction to Digital Modelling and Animation in Design week 4 Textures Introduction to Digital Modelling and Animation in Design week 4 Textures Thaleia Deniozou - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

More information

CS 4620 Program 4: Ray II

CS 4620 Program 4: Ray II CS 4620 Program 4: Ray II out: Tuesday 11 November 2008 due: Tuesday 25 November 2008 1 Introduction In the first ray tracing assignment you built a simple ray tracer that handled just the basics. In this

More information

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging Fragment Processing The per-fragment attributes may include a normal vector, a set of texture coordinates, a set of color values, a depth, etc. Using these

More information

Quaternions and Exponentials

Quaternions and Exponentials Quaternions and Exponentials Michael Kazhdan (601.457/657) HB A.6 FvDFH 21.1.3 Announcements OpenGL review II: Today at 9:00pm, Malone 228 This week's graphics reading seminar: Today 2:00-3:00pm, my office

More information

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Computer Animation Fundamentals Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Lecture 21 6.837 Fall 2001 Conventional Animation Draw each frame of the animation great control

More information

3D Modelling: Animation Fundamentals & Unit Quaternions

3D Modelling: Animation Fundamentals & Unit Quaternions 3D Modelling: Animation Fundamentals & Unit Quaternions CITS3003 Graphics & Animation Thanks to both Richard McKenna and Marco Gillies for permission to use their slides as a base. Static objects are boring

More information

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX Last month Things became a lot more dangerous as traps and deadly particles were added. It just wouldn t be the same without Mr.Green so he s making his debut this month. As this has always been the plan,

More information

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017 3D Rotations and Complex Representations Computer Graphics CMU 15-462/15-662, Fall 2017 Rotations in 3D What is a rotation, intuitively? How do you know a rotation when you see it? - length/distance is

More information

CMSC427: Computer Graphics Lecture Notes Last update: November 21, 2014

CMSC427: Computer Graphics Lecture Notes Last update: November 21, 2014 CMSC427: Computer Graphics Lecture Notes Last update: November 21, 2014 TA: Josh Bradley 1 Linear Algebra Review 1.1 Vector Multiplication Suppose we have a vector a = [ x a y a ] T z a. Then for some

More information

3D Space is one of the most rewarding areas

3D Space is one of the most rewarding areas Lesson 8 206 3D Space Add a new dimension to your animations. In This Lesson 207 enabling layers for 3D 208 moving and rotating layers in 3D space 210 multiplaning effects 212 3D motion paths 213 multiple

More information

(Refer Slide Time: 00:01:27 min)

(Refer Slide Time: 00:01:27 min) Computer Aided Design Prof. Dr. Anoop Chawla Department of Mechanical engineering Indian Institute of Technology, Delhi Lecture No. # 01 An Introduction to CAD Today we are basically going to introduce

More information

Using Microsoft Excel

Using Microsoft Excel Using Microsoft Excel Introduction This handout briefly outlines most of the basic uses and functions of Excel that we will be using in this course. Although Excel may be used for performing statistical

More information

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala Animations Hakan Bilen University of Edinburgh Computer Graphics Fall 2017 Some slides are courtesy of Steve Marschner and Kavita Bala Animation Artistic process What are animators trying to do? What tools

More information

Graphics for VEs. Ruth Aylett

Graphics for VEs. Ruth Aylett Graphics for VEs Ruth Aylett Overview VE Software Graphics for VEs The graphics pipeline Projections Lighting Shading Runtime VR systems Two major parts: initialisation and update loop. Initialisation

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

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February Soft shadows Steve Marschner Cornell University CS 569 Spring 2008, 21 February Soft shadows are what we normally see in the real world. If you are near a bare halogen bulb, a stage spotlight, or other

More information

OPENGL RENDERING PIPELINE

OPENGL RENDERING PIPELINE CPSC 314 03 SHADERS, OPENGL, & JS UGRAD.CS.UBC.CA/~CS314 Textbook: Appendix A* (helpful, but different version of OpenGL) Alla Sheffer Sep 2016 OPENGL RENDERING PIPELINE 1 OPENGL RENDERING PIPELINE Javascript

More information

Planets Earth, Mars and Moon Shaders Asset V Documentation (Unity 5 version)

Planets Earth, Mars and Moon Shaders Asset V Documentation (Unity 5 version) Planets Earth, Mars and Moon Shaders Asset V0.4.4 Documentation (Unity 5 version) Charles Pérois - 2015 Introduction 2 Table des matières 1. Introduction...3 2. Release Notes...4 3. How to Use...6 1. Set

More information

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic. Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

More information

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include Parametric Curves and Surfaces In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include Describing curves in space that objects move

More information

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required.

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required. 1 of 10 23/07/2016 05:15 Paul's Online Math Notes Calculus III (Notes) / Line Integrals / Line Integrals - Part I Problems] [Notes] [Practice Problems] [Assignment Calculus III - Notes Line Integrals Part

More information

Working with the Dope Sheet Editor to speed up animation and reverse time.

Working with the Dope Sheet Editor to speed up animation and reverse time. Bouncing a Ball Page 1 of 2 Tutorial Bouncing a Ball A bouncing ball is a common first project for new animators. This classic example is an excellent tool for explaining basic animation processes in 3ds

More information

AR-media TUTORIALS IMPROVING REALISM AMBIENT OCCLUSION. (June, 2011)

AR-media TUTORIALS IMPROVING REALISM AMBIENT OCCLUSION. (June, 2011) AR-media TUTORIALS IMPROVING REALISM AMBIENT OCCLUSION (June, 2011) Copyright Copyright 2008/2011 Inglobe Technologies S.r.l. All rights reserved. No part of this publication may be reproduced, transmitted,

More information

White Paper. Perlin Fire. February 2007 WP _v01

White Paper. Perlin Fire. February 2007 WP _v01 White Paper Perlin Fire February 2007 WP-03012-001_v01 Document Change History Version Date Responsible Reason for Change 01 AT, CK Initial release Go to sdkfeedback@nvidia.com to provide feedback on Perlin

More information

Intro to Animation. Introduction: Frames and Keyframes. Blender Lesson: Grade Level: Lesson Description: Goals/Objectives: Materials/Tools: 4th and up

Intro to Animation. Introduction: Frames and Keyframes. Blender Lesson: Grade Level: Lesson Description: Goals/Objectives: Materials/Tools: 4th and up Blender Lesson: Intro to Animation Grade Level: 4th and up Lesson Description: This lesson serves as an introduction to animation with Blender. The lesson begins by talking about some core concepts of

More information

Animations involving numbers

Animations involving numbers 136 Chapter 8 Animations involving numbers 8.1 Model and view The examples of Chapter 6 all compute the next picture in the animation from the previous picture. This turns out to be a rather restrictive

More information

Visualization Insider A Little Background Information

Visualization Insider A Little Background Information Visualization Insider A Little Background Information Visualization Insider 2 Creating Backgrounds for 3D Scenes Backgrounds are a critical part of just about every type of 3D scene. Although they are

More information

AGDC Per-Pixel Shading. Sim Dietrich

AGDC Per-Pixel Shading. Sim Dietrich AGDC Per-Pixel Shading Sim Dietrich Goal Of This Talk The new features of Dx8 and the next generation of HW make huge strides in the area of Per-Pixel Shading Most developers have yet to adopt Per-Pixel

More information

CS354 Computer Graphics Rotations and Quaternions

CS354 Computer Graphics Rotations and Quaternions Slide Credit: Don Fussell CS354 Computer Graphics Rotations and Quaternions Qixing Huang April 4th 2018 Orientation Position and Orientation The position of an object can be represented as a translation

More information

UV Mapping to avoid texture flaws and enable proper shading

UV Mapping to avoid texture flaws and enable proper shading UV Mapping to avoid texture flaws and enable proper shading Foreword: Throughout this tutorial I am going to be using Maya s built in UV Mapping utility, which I am going to base my projections on individual

More information

Assignment 6: Ray Tracing

Assignment 6: Ray Tracing Assignment 6: Ray Tracing Programming Lab Due: Monday, April 20 (midnight) 1 Introduction Throughout this semester you have written code that manipulated shapes and cameras to prepare a scene for rendering.

More information

Textures and UV Mapping in Blender

Textures and UV Mapping in Blender Textures and UV Mapping in Blender Categories : Uncategorised Date : 21st November 2017 1 / 25 (See below for an introduction to UV maps and unwrapping) Jim s Notes regarding Blender objects, the UV Editor

More information

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image

More information

Introduction to 3D Graphics

Introduction to 3D Graphics Graphics Without Polygons Volume Rendering May 11, 2010 So Far Volumetric Rendering Techniques Misc. So Far Extended the Fixed Function Pipeline with a Programmable Pipeline Programming the pipeline is

More information

CS 559 Computer Graphics Midterm Exam March 22, :30-3:45 pm

CS 559 Computer Graphics Midterm Exam March 22, :30-3:45 pm CS 559 Computer Graphics Midterm Exam March 22, 2010 2:30-3:45 pm This exam is closed book and closed notes. Please write your name and CS login on every page! (we may unstaple the exams for grading) Please

More information

Notes on Computer Graphics and OpenGL. Thomas Strathmann

Notes on Computer Graphics and OpenGL. Thomas Strathmann Notes on Computer Graphics and OpenGL Thomas Strathmann February 2, 2011 Preface The purpose of this document is to server as a sort of logbook in which I put down all the interesting math and assorted

More information

CS770/870 Spring 2017 Animation Basics

CS770/870 Spring 2017 Animation Basics Preview CS770/870 Spring 2017 Animation Basics Related material Angel 6e: 1.1.3, 8.6 Thalman, N and D. Thalman, Computer Animation, Encyclopedia of Computer Science, CRC Press. Lasseter, J. Principles

More information

CS770/870 Spring 2017 Animation Basics

CS770/870 Spring 2017 Animation Basics CS770/870 Spring 2017 Animation Basics Related material Angel 6e: 1.1.3, 8.6 Thalman, N and D. Thalman, Computer Animation, Encyclopedia of Computer Science, CRC Press. Lasseter, J. Principles of traditional

More information

CS4495 Fall 2014 Computer Vision Problem Set 5: Optic Flow

CS4495 Fall 2014 Computer Vision Problem Set 5: Optic Flow CS4495 Fall 2014 Computer Vision Problem Set 5: Optic Flow DUE: Wednesday November 12-11:55pm In class we discussed optic flow as the problem of computing a dense flow field where a flow field is a vector

More information

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON Deferred Rendering in Killzone 2 Michal Valient Senior Programmer, Guerrilla Talk Outline Forward & Deferred Rendering Overview G-Buffer Layout Shader Creation Deferred Rendering in Detail Rendering Passes

More information

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation.

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation. Tangents In this tutorial we are going to take a look at how tangents can affect an animation. One of the 12 Principles of Animation is called Slow In and Slow Out. This refers to the spacing of the in

More information

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural 1 Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural to consider using it in video games too. 2 I hope that

More information