LECTURE 4. Announcements

Size: px
Start display at page:

Download "LECTURE 4. Announcements"

Transcription

1 LECTURE 4 Announcements

2 Retries your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader your grader

3 To add textures Graphics Things graphics->addtexture( somename, :/images/sometexture.jpg ) Image needs to be placed in res/images and added to images.qrc file By default, textures are filtered. This doesn t look great for Minecraft graphics->gettexture( sometexture )-> setfiltermethod(texture::filter_method::nearest)

4 Minecraft 2 More rendering optimizations More collisions

5 LECTURE 4 Frustum Culling

6 Frustum Culling THE VIEW FRUSTUM

7 What is it? The volume of world objects that can actually be seen by the camera Shaped like a pyramid, bounded by: Far plane (the base of the frustum) Near plane (the cap of the frustum) Field of view/viewport size (determine the walls of the frustum)

8 What we re doing now During ondraw(): We tell OpenGL to render every single object Regardless of whether or not it will appear in the scene Can we avoid drawing some things?

9 What we should do Instead of telling OpenGL to draw everything, why don t we avoid sending that we know won t be drawn? What doesn t need to be drawn? Anything not in the view frustum! Only good if we can do this faster than it would take for OpenGL to draw everything

10 Extracting the View Frustum Frustum is defined by 6 planes Planes can be derived directly from the rows of our camera matrices You can get this using camera->getprojection() * camera->getview() Gives us a glm matrix Be careful glm uses column-major order, so use the coordinates given here to access the given cells / rows 0,0 1,0 2,0 3,0 0,1 1,1 2,1 3,1 0,2 1,2 2,2 3,2 0,3 1,3 2,3 3,3 Projection matrix view matrix r0 r1 r2 r3

11 Extracting the View Frustum Plane equation is given by a 4D vector (a,b,c,d): ax + by + cz + d = 0 The 6 clip planes of the frustum are defined below! 0,0 1,0 2,0 3,0 0,1 1,1 2,1 3,1 0,2 1,2 2,2 3,2 0,3 1,3 2,3 3,3 Projection matrix view matrix r0 r1 r2 r3 Clipping plane x y z +x +y +z Plane equation r3 r0 r3 r1 r3 r2 r3 + r0 r3 + r1 r3 + r2

12 Frustum Culling Test - General Compute 6 plane equations Should be updated whenever the camera changes! For each piece of scene geometry: Does the entire shape fall behind one of the planes? Skip rendering, it can t be seen!

13 Frustum Culling Test - AABB AABB (axis-aligned bounding box) Faces parallel to xy, xz, and yz planes Defined by a position and dimensions (convenient!) Rejection test: are all 8 corners behind any one plane? For point (x,y,z), behind plane if ax + by + cz + d < 0

14 Frustum Culling Test - Sphere Sphere Defined by a position and radius (which can just be one of your dimensions!) Rejection test: is the center (x,y,z) at least r units behind any one plane? If ax + by + cz + d < -r Planes must be normalized Divide (a,b,c,d) by a 2 + b 2 + c 2 You do not have to implement this! Minecraft is all about cubes! May be helpful later!

15 Implementation Notes Storing the r vectors In the camera? Only re-compute when camera changes Somewhere else? Up to you Design decisions yay!

16 Implementation Notes What should we cull? Individual blocks? Fine-grained Faster to just draw everything Whole chunks? Coarse-grained Far fewer culling tests Non-environment entities? Depends on # vertices If we have AABB s for them, depends on how many Required: per-chunk culling

17 Frustum Culling QUESTIONS?

18 LECTURE 4 Case Study Occlusion Culling

19 Occlusion Culling Frustum culling renders everything in the view frustum Occlusion culling renders only things that can be seen from camera, not just those inside the frustum (e.g. cuts out objects obscured by other objects) Unity Demo!

20 LECTURE 4 Collisions II

21 Collisions II COLLISIONS II

22 Last time on 3D Game Engines If two shapes are overlapping Make them not overlapping anymore Called non-continuous collision detection Objects teleport small distances in one tick there s no continuity from start to end, it all happens immediately

23 Shapes are moving towards each other Don t want them to ever overlap Only move them as much as they can go before colliding Called continuous collision detection Never allows shapes to be overlapping, no teleportation required The new model

24 Comparison to Non-Continuous Collision Continuous collision detection is often better for interacting with terrain (what we re doing this week) Won t miss any collisions This is good, because falling through the world is typically game breaking Typically depends on one of the objects being static Previous model is better for interactions of non-static objects May miss a few collisions Probably isn t a huge deal Doesn t know/care if either object is moving

25 Best of both worlds How can we mix and match? Make separate systems for terrain collision and objectobject collision CollisionSystem Collides objects with cylinder collision components VoxelSystem Collides moving player with static Chunks

26 Voxel Collision Detection Goal: collide the player with the terrain using continuous collision detection How do we implement this?

27 Voxel Collision Detection On a given tick Final position 1. Choose a direction (x, y, or z) 2. Iterate over all blocks the player would pass through, moving in this direction 3. If you encounter an impassable block, move the player to the boundary of that block If not, move them the full distance 4. Choose the next direction Starting position Blocks in the world Goal position

28 Example: X-axis Collision Sweep Top Solid block Bottom Player Player Move Check player Check as these back far these as first by it second epsilon can ( ) go Y X

29 Example: X-axis Collision Sweep Things to note 1. Amount that the player wants to move in x direction in one tick is velocity.x * seconds velocity.y * seconds for y direction velocity.z * seconds for z direction 2. The player passes through multiple cells in the y dimension, as it makes one step in the x direction In three dimensions, the player will pass through multiple cells in the y and z dimensions as it makes one step in the x direction Need to check all of these cells for impassable blocks 3. Player is moving in increasing x, so check cells in that order

30 Implementation Tips Need to sweep in x, y, and z, directions but implement the y-sweep first Easier to debug horizontal movement if you can stand on a floor If a collision is found, move the player away from the point of collision by small amount Along surface normal multiplied by small epsilon

31 Implementation Tips Be careful at chunk boundaries Player may be colliding with blocks in multiple chunks Use your 3 rd person camera to debug Visualize the player s shape to *see* collisions Don t be afraid to restart The actual code isn t too long (can be as little as ~20 lines for each axis sweep test) Lots of places you can be off by 1 block or by epsilon

32 Pseudocode: Collision Sweep // Sweep test in y direction void VoxelSystem::ySweep(float seconds, GameObject *obj) { // TODO: initialize start and end x, z, positions (based on dimensions and position) int startx, startx, endz, endz; // TODO: initialize start and end y position (based on dimensions, position, velocity and seconds) int starty, endy; // TODO: initialize direction of y motion, +1 or -1 int step; // Loop and check for collisions for(y = starty; y!= (endy + step); y += step) { for(x = startx; x <= endx; x++) { for(z = startz; z <= endz; z++) { if(!voxelsystem::ispassable(x, y, z)) { // TODO: translate to collision point (minus small epsilon) break; } } } } } // TODO: If no collision, move object full distance

33 Collisions II QUESTIONS?

34 LECTURE 4 Tips for Minecraft 2

35 Frustum Culling Can be incorporated into default DrawSystem, or a DrawSystem just for Chunks

36 Collisions May be helpful to have ispassable(x, y, z) method in your VoxelSystem For the Chunk that has the block at (x, y, z) in the world, see if it is passable Can use this in your collision sweep methods instead of checking specific Chunks

37 LECTURE 4 C++ Tip of the Week

38 Static Very helpful C/C++ keyword Behavior of static can vary a lot depending on use Member variable vs namespace variable vs local variable causes different results

39 More Static Static variables exist for the "lifetime" of the translation unit that it's defined in Translation unit: simplest unit of compilation Consists of the contents of a single source file, plus the contents of any header files directly or indirectly included Result: static variables have a single instance (usually)

40 Namespace Static If variable is outside of any functions or class, it can't be accessed from any other translation unit This is known as "internal linkage" NEVER do this in headers you end up with a separate variable in each translation unit (i.e., every time you include the header) static int x; class Foo { public: void bar(); };

41 Member Variables and static A static member variable is shared between all instances of the class Important: you need to both declare and define static member variables

42 Bad //in.h file class Foo { public: static int x; void bar(); }; //in.cpp file void Foo::bar(){ Foo::x = 10; }; Good //in.h file class Foo { public: static int x; void bar(); }; //in.cpp file int Foo::x = 0; void Foo::bar(){ Foo::x = 10; };

43 Static functions Less confusing Same as in Java A static function can be called without an instance of a class Cannot access non-static member variables class Foo { private: static int value; public: static int getvalue() { return value; } };

44 Const Another very helpful keyword Declares a constant int x = 4; //normal int const int y = x; //value of y cannot be changed const int* foo = &y; //can t change value of y int *const bar = &x; //can t reassign bar const int *const yum = foo; //can t change anything

45 Const member functions Const++ void Entity::draw() const { // can t change Entity Very, very good style Using const references in functions void Entity::accelerate(const vec3 &acc) { Only const functions can be called on const references Much cheaper than accelerate(vec3 acc)

46 MINECRAFT1 PLAYTESTING To the Sunlab!

LECTURE 5. Announcements

LECTURE 5. Announcements LECTURE 5 Announcements Falling Behind? Talk to us You still pass the class if you hand in all projects at the end of the semester Hand in even if you think you won t satisfy the playtesting requirements

More information

LECTURE 5. Announcements

LECTURE 5. Announcements LECTURE 5 Announcements Falling Behind? Talk to us Number of retries / grading policy slightly different this year You still pass the class if you hand in all projects at the end of the semester Hand in

More information

LECTURE 7. Announcements

LECTURE 7. Announcements LECTURE 7 Announcements Minecraft 4 Feedback Looks good! A game that minimally involves platforms Not based on any game in particular Super Mario 64? Team Fortress 2? Completely up to you to make unique

More information

LECTURE 6. Announcements

LECTURE 6. Announcements LECTURE 6 Announcements Minecraft 3 Feedback Infinite worlds! Terrain looks good Gameplay not super varied Happy Birthday Hassan! The Voxel Engine You re done with your first collision engine! Environment

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

Minecraft Due: March. 6, 2018

Minecraft Due: March. 6, 2018 CS1950U Topics in 3D Game Engine Development Barbara Meier Minecraft Due: March. 6, 2018 Introduction In this assignment you will build your own version of one of the most popular indie games ever: Minecraft.

More information

Minecraft Due: Mar. 1, 2015

Minecraft Due: Mar. 1, 2015 CS1972 Topics in 3D Game Engine Development Barbara Meier Minecraft Due: Mar. 1, 2015 Introduction In this assignment you will build your own version of one of the most popular indie games ever: Minecraft.

More information

Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001

Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001 Computer graphics Assignment 5 1 Overview Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001 In this assignment you will implement the camera and several primitive objects for a ray tracer. We

More information

Pong in Unity a basic Intro

Pong in Unity a basic Intro This tutorial recreates the classic game Pong, for those unfamiliar with the game, shame on you what have you been doing, living under a rock?! Go google it. Go on. For those that now know the game, this

More information

Overview. By end of the week:

Overview. By end of the week: Overview By end of the week: - Know the basics of git - Make sure we can all compile and run a C++/ OpenGL program - Understand the OpenGL rendering pipeline - Understand how matrices are used for geometric

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

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday Announcements Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday 1 Spatial Data Structures Hierarchical Bounding Volumes Grids Octrees BSP Trees 11/7/02 Speeding Up Computations

More information

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be

More information

Ray Tracer Due date: April 27, 2011

Ray Tracer Due date: April 27, 2011 Computer graphics Assignment 4 1 Overview Ray Tracer Due date: April 27, 2011 In this assignment you will implement the camera and several primitive objects for a ray tracer, and a basic ray tracing algorithm.

More information

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 3 due Monday Nov 13 th at

More information

Shadows in the graphics pipeline

Shadows in the graphics pipeline Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects

More information

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling Motivation Culling Don t draw what you can t see! Thomas Larsson Mälardalen University April 7, 2016 Image correctness Rendering speed One day we will have enough processing power!? Goals of real-time

More information

CS488. Visible-Surface Determination. Luc RENAMBOT

CS488. Visible-Surface Determination. Luc RENAMBOT CS488 Visible-Surface Determination Luc RENAMBOT 1 Visible-Surface Determination So far in the class we have dealt mostly with simple wireframe drawings of the models The main reason for this is so that

More information

Table of Contents. Questions or problems?

Table of Contents. Questions or problems? 1 Introduction Overview Setting Up Occluders Shadows and Occlusion LODs Creating LODs LOD Selection Optimization Basics Controlling the Hierarchy MultiThreading Multiple Active Culling Cameras Umbra Comparison

More information

CS1950U Setup Spring 2018

CS1950U Setup Spring 2018 CS1950U Topics in 3D Game Engine Development Barbara Meier CS1950U Setup Spring 2018 Introduction Hi there! This guide is designed to help you get setup for taking CS1950U. It will go through the basics

More information

Clipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling

Clipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling Clipping & Culling Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling Lecture 11 Spring 2015 What is Clipping? Clipping is a procedure for spatially partitioning geometric primitives,

More information

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes

More information

Game Design Unity Workshop

Game Design Unity Workshop Game Design Unity Workshop Activity 4 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Collisions in Unity Aim: Build

More information

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project

More information

Spatial Data Structures

Spatial Data Structures CSCI 420 Computer Graphics Lecture 17 Spatial Data Structures Jernej Barbic University of Southern California Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees [Angel Ch. 8] 1 Ray Tracing Acceleration

More information

Project 1, 467. (Note: This is not a graphics class. It is ok if your rendering has some flaws, like those gaps in the teapot image above ;-)

Project 1, 467. (Note: This is not a graphics class. It is ok if your rendering has some flaws, like those gaps in the teapot image above ;-) Project 1, 467 Purpose: The purpose of this project is to learn everything you need to know for the next 9 weeks about graphics hardware. What: Write a 3D graphics hardware simulator in your language of

More information

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate

More information

Detailed instructions for video analysis using Logger Pro.

Detailed instructions for video analysis using Logger Pro. Detailed instructions for video analysis using Logger Pro. 1. Begin by locating or creating a video of a projectile (or any moving object). Save it to your computer. Most video file types are accepted,

More information

Culling. Computer Graphics CSE 167 Lecture 12

Culling. Computer Graphics CSE 167 Lecture 12 Culling Computer Graphics CSE 167 Lecture 12 CSE 167: Computer graphics Culling Definition: selecting from a large quantity In computer graphics: selecting primitives (or batches of primitives) that are

More information

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Project 2 due Friday, October 11

More information

Excel 2013 Intermediate

Excel 2013 Intermediate Instructor s Excel 2013 Tutorial 2 - Charts Excel 2013 Intermediate 103-124 Unit 2 - Charts Quick Links Chart Concepts Page EX197 EX199 EX200 Selecting Source Data Pages EX198 EX234 EX237 Creating a Chart

More information

Flowmap Generator Reference

Flowmap Generator Reference Flowmap Generator Reference Table of Contents Flowmap Overview... 3 What is a flowmap?... 3 Using a flowmap in a shader... 4 Performance... 4 Creating flowmaps by hand... 4 Creating flowmaps using Flowmap

More information

Next week will be great!

Next week will be great! Next week will be great! Three major things are happening next week: Zynga guest lecture Your game pitches (more details later) Christina Paxson Feedback for M 1 Some of you had stacking shapes The stack

More information

Spatial Data Structures and Speed-Up Techniques. Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology

Spatial Data Structures and Speed-Up Techniques. Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology Spatial Data Structures and Speed-Up Techniques Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology Exercises l Create a function (by writing code on paper) that

More information

INTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52

INTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52 cs337 It looks like a matrix Sort of Viewing III Projection in Practice / 52 cs337 Arbitrary 3D views Now that we have familiarity with terms we can say that these view volumes/frusta can be specified

More information

Notes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment

Notes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment Notes on Assignment Notes on Assignment Objects on screen - made of primitives Primitives are points, lines, polygons - watch vertex ordering The main object you need is a box When the MODELVIEW matrix

More information

CS770/870 Spring 2017 Ray Tracing Implementation

CS770/870 Spring 2017 Ray Tracing Implementation Useful ector Information S770/870 Spring 07 Ray Tracing Implementation Related material:angel 6e: h.3 Ray-Object intersections Spheres Plane/Polygon Box/Slab/Polyhedron Quadric surfaces Other implicit/explicit

More information

Virtual Environments

Virtual Environments ELG 524 Virtual Environments Jean-Christian Delannoy viewing in 3D world coordinates / geometric modeling culling lighting virtualized reality collision detection collision response interactive forces

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) April 1, 2003 [Angel 9.10] Frank Pfenning Carnegie

More information

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo Computer Graphics Bing-Yu Chen National Taiwan University The University of Tokyo Hidden-Surface Removal Back-Face Culling The Depth-Sort Algorithm Binary Space-Partitioning Trees The z-buffer Algorithm

More information

Setting up A Basic Scene in Unity

Setting up A Basic Scene in Unity Setting up A Basic Scene in Unity So begins the first of this series of tutorials aimed at helping you gain the basic understanding of skills needed in Unity to develop a 3D game. As this is a programming

More information

Spatial Data Structures

Spatial Data Structures Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) [Angel 9.10] Outline Ray tracing review what rays matter? Ray tracing speedup faster

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) March 28, 2002 [Angel 8.9] Frank Pfenning Carnegie

More information

Collaboration policies!

Collaboration policies! Tic is over! Collaboration policies! How was the signup process? Were they helpful? Would you rather have more TA hours instead? Design checks You can run demos! cs195n_demo tac2 zdavis cs195n_demo tic

More information

Computer Graphics - Treasure Hunter

Computer Graphics - Treasure Hunter Computer Graphics - Treasure Hunter CS 4830 Dr. Mihail September 16, 2015 1 Introduction In this assignment you will implement an old technique to simulate 3D scenes called billboarding, sometimes referred

More information

Speeding up your game

Speeding up your game Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers (adapted by Marc Levoy from a lecture by Tomas Möller, using material

More information

Spatial Data Structures

Spatial Data Structures CSCI 480 Computer Graphics Lecture 7 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids BSP Trees [Ch. 0.] March 8, 0 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s/

More information

Lecture 4. Viewing, Projection and Viewport Transformations

Lecture 4. Viewing, Projection and Viewport Transformations Notes on Assignment Notes on Assignment Hw2 is dependent on hw1 so hw1 and hw2 will be graded together i.e. You have time to finish both by next monday 11:59p Email list issues - please cc: elif@cs.nyu.edu

More information

No more engine requirements! From now on everything you work on is designed by you. Congrats!

No more engine requirements! From now on everything you work on is designed by you. Congrats! No more engine requirements! From now on everything you work on is designed by you Congrats! Design check required Ben: Thursday 2-4 David: Thursday 8-10 Jeff: Friday 2-4 Tyler: Friday 4-6 Final III Don

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

Shadow Techniques. Sim Dietrich NVIDIA Corporation

Shadow Techniques. Sim Dietrich NVIDIA Corporation Shadow Techniques Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Lighting & Shadows The shadowing solution you choose can greatly influence the engine decisions you make This talk will outline

More information

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public

More information

CGT520 Transformations

CGT520 Transformations CGT520 Transformations Bedrich Benes, Ph.D. Purdue University Department of Computer Graphics GLM A concise library for transforms and OpenGL mathematics All overloaded, predefined, optimized glm (OpenGL

More information

Images from 3D Creative Magazine. 3D Modelling Systems

Images from 3D Creative Magazine. 3D Modelling Systems Images from 3D Creative Magazine 3D Modelling Systems Contents Reference & Accuracy 3D Primitives Transforms Move (Translate) Rotate Scale Mirror Align 3D Booleans Deforms Bend Taper Skew Twist Squash

More information

Drawing in 3D (viewing, projection, and the rest of the pipeline)

Drawing in 3D (viewing, projection, and the rest of the pipeline) Drawing in 3D (viewing, projection, and the rest of the pipeline) CS559 Spring 2017 Lecture 6 February 2, 2017 The first 4 Key Ideas 1. Work in convenient coordinate systems. Use transformations to get

More information

The University of Melbourne Department of Computer Science and Software Engineering Graphics and computation.

The University of Melbourne Department of Computer Science and Software Engineering Graphics and computation. The University of Melbourne Department of Computer Science and Software Engineering 433-380 Graphics and computation Project 2, 2007 Set: 16th April Demonstration: week commencing 14th May Electronic submission:

More information

SketchUp Tool Basics

SketchUp Tool Basics SketchUp Tool Basics Open SketchUp Click the Start Button Click All Programs Open SketchUp Scroll Down to the SketchUp 2013 folder Click on the folder to open. Click on SketchUp. Set Up SketchUp (look

More information

Performance OpenGL Programming (for whatever reason)

Performance OpenGL Programming (for whatever reason) Performance OpenGL Programming (for whatever reason) Mike Bailey Oregon State University Performance Bottlenecks In general there are four places a graphics system can become bottlenecked: 1. The computer

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

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering

More information

IAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil

IAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil IAT 445 Lab 10 Special Topics in Unity Special Topics in Unity We ll be briefly going over the following concepts. They are covered in more detail in your Watkins textbook: Setting up Fog Effects and a

More information

CSE328 Fundamentals of Computer Graphics

CSE328 Fundamentals of Computer Graphics CSE328 Fundamentals of Computer Graphics Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 794--44 Tel: (63)632-845; Fax: (63)632-8334 qin@cs.sunysb.edu

More information

Open GL Framework For A Computer Graphics Course

Open GL Framework For A Computer Graphics Course Open GL Framework For A Computer Graphics Course Programmer: Daniel Odle Sponsor / Advisor: Dr. Morse University of Evansville 4-26-03 Table of Contents Introduction 3 Statement of Problem 3 Design Approach

More information

COMPUTER AIDED ARCHITECTURAL GRAPHICS FFD 201/Fall 2013 HAND OUT 1 : INTRODUCTION TO 3D

COMPUTER AIDED ARCHITECTURAL GRAPHICS FFD 201/Fall 2013 HAND OUT 1 : INTRODUCTION TO 3D COMPUTER AIDED ARCHITECTURAL GRAPHICS FFD 201/Fall 2013 INSTRUCTORS E-MAIL ADDRESS OFFICE HOURS Özgür Genca ozgurgenca@gmail.com part time Tuba Doğu tubadogu@gmail.com part time Şebnem Yanç Demirkan sebnem.demirkan@gmail.com

More information

COMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting

COMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting Ray Casting COMP 175: Computer Graphics April 26, 2018 1/41 Admin } Assignment 4 posted } Picking new partners today for rest of the assignments } Demo in the works } Mac demo may require a new dylib I

More information

Particle systems, collision detection, and ray tracing. Computer Graphics CSE 167 Lecture 17

Particle systems, collision detection, and ray tracing. Computer Graphics CSE 167 Lecture 17 Particle systems, collision detection, and ray tracing Computer Graphics CSE 167 Lecture 17 CSE 167: Computer graphics Particle systems Collision detection Ray tracing CSE 167, Winter 2018 2 Particle systems

More information

Principles of Computer Game Design and Implementation. Lecture 11

Principles of Computer Game Design and Implementation. Lecture 11 Principles of Computer Game Design and Implementation Lecture 11 We already learned Vector operations Sum Subtraction Dot product Cross product A few others about jmonkey, eg. User input, camera, etc 2

More information

CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo)

CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) www.vucybarien.com Question No: 1 What are the two focusing methods in CRT? Explain briefly. Page no : 26 1. Electrostatic focusing

More information

CSE 167: Introduction to Computer Graphics Lecture #19: Wrapping Up. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017

CSE 167: Introduction to Computer Graphics Lecture #19: Wrapping Up. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 CSE 167: Introduction to Computer Graphics Lecture #19: Wrapping Up Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements TA evaluations CAPE Final project blog entries

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

Clipping. CSC 7443: Scientific Information Visualization

Clipping. CSC 7443: Scientific Information Visualization Clipping Clipping to See Inside Obscuring critical information contained in a volume data Contour displays show only exterior visible surfaces Isosurfaces can hide other isosurfaces Other displays can

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

Specialized Acceleration Structures for Ray-Tracing. Warren Hunt

Specialized Acceleration Structures for Ray-Tracing. Warren Hunt Specialized Acceleration Structures for Ray-Tracing Warren Hunt Bill Mark Forward: Flavor of Research Build is cheap (especially with scan, lazy and build from hierarchy) Grid build and BVH refit are really

More information

Creating the Tilt Game with Blender 2.49b

Creating the Tilt Game with Blender 2.49b Creating the Tilt Game with Blender 2.49b Create a tilting platform. Start a new blend. Delete the default cube right click to select then press X and choose Erase Selected Object. Switch to Top view (NUM

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

Hidden Surface Elimination Raytracing. Pre-lecture business. Outline for today. Review Quiz. Image-Space vs. Object-Space

Hidden Surface Elimination Raytracing. Pre-lecture business. Outline for today. Review Quiz. Image-Space vs. Object-Space Hidden Surface Elimination Raytracing Pre-lecture business Get going on pp4 Submit exam questions by Sunday CS148: Intro to CG Instructor: Dan Morris TA: Sean Walker August 2, 2005 Remote folks: let us

More information

LOD and Occlusion Christian Miller CS Fall 2011

LOD and Occlusion Christian Miller CS Fall 2011 LOD and Occlusion Christian Miller CS 354 - Fall 2011 Problem You want to render an enormous island covered in dense vegetation in realtime [Crysis] Scene complexity Many billions of triangles Many gigabytes

More information

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today! Last Time? Real-Time Shadows Perspective-Correct Interpolation Texture Coordinates Procedural Solid Textures Other Mapping Bump Displacement Environment Lighting Textures can Alias Aliasing is the under-sampling

More information

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Visibility. Welcome!

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Visibility. Welcome! INFOGR Computer Graphics J. Bikker - April-July 2016 - Lecture 11: Visibility Welcome! Smallest Ray Tracers: Executable 5692598 & 5683777: RTMini_minimal.exe 2803 bytes 5741858: ASM_CPU_Min_Exe 994 bytes

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

Game Architecture. 2/19/16: Rasterization

Game Architecture. 2/19/16: Rasterization Game Architecture 2/19/16: Rasterization Viewing To render a scene, need to know Where am I and What am I looking at The view transform is the matrix that does this Maps a standard view space into world

More information

INTRODUCTION TO COMPUTER GRAPHICS. cs123. It looks like a matrix Sort of. Viewing III. Projection in Practice 1 / 52

INTRODUCTION TO COMPUTER GRAPHICS. cs123. It looks like a matrix Sort of. Viewing III. Projection in Practice 1 / 52 It looks like a matrix Sort of Viewing III Projection in Practice 1 / 52 Arbitrary 3D views } view volumes/frusta spec d by placement and shape } Placement: } Position (a point) } look and up vectors }

More information

Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia.

Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia. Shadows Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia.com Practical & Robust Stenciled Shadow Volumes for Hardware-Accelerated

More information

Lecture 11. More Ray Casting/Tracing

Lecture 11. More Ray Casting/Tracing Lecture 11 More Ray Casting/Tracing Basic Algorithm For each pixel { } Shoot a ray from camera to pixel for all objects in scene Compute intersection with ray Find object with closest intersection Display

More information

Platform Games Drawing Sprites & Detecting Collisions

Platform Games Drawing Sprites & Detecting Collisions Platform Games Drawing Sprites & Detecting Collisions Computer Games Development David Cairns Contents Drawing Sprites Collision Detection Animation Loop Introduction 1 Background Image - Parallax Scrolling

More information

Google SketchUp/Unity Tutorial Basics

Google SketchUp/Unity Tutorial Basics Software used: Google SketchUp Unity Visual Studio Google SketchUp/Unity Tutorial Basics 1) In Google SketchUp, select and delete the man to create a blank scene. 2) Select the Lines tool and draw a square

More information

3D computer graphics: geometric modeling of objects in the computer and rendering them

3D computer graphics: geometric modeling of objects in the computer and rendering them SE313: Computer Graphics and Visual Programming Computer Graphics Notes Gazihan Alankus, Spring 2012 Computer Graphics 3D computer graphics: geometric modeling of objects in the computer and rendering

More information

Chapter 10 Working with Graphs and Charts

Chapter 10 Working with Graphs and Charts Chapter 10: Working with Graphs and Charts 163 Chapter 10 Working with Graphs and Charts Most people understand information better when presented as a graph or chart than when they look at the raw data.

More information

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

Lecture 8 Ray tracing Part 1: Basic concept Yong-Jin Liu.

Lecture 8 Ray tracing Part 1: Basic concept Yong-Jin Liu. Fundamentals of Computer Graphics Lecture 8 Ray tracing Part 1: Basic concept Yong-Jin Liu liuyongjin@tsinghua.edu.cn Material by S.M.Lea (UNC) Goals To set up the mathematics and algorithms to perform

More information

Game Design Unity Workshop

Game Design Unity Workshop Game Design Unity Workshop Activity 2 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Mini World and basic Chase

More information

TDA361/DIT220 Computer Graphics, January 15 th 2016

TDA361/DIT220 Computer Graphics, January 15 th 2016 TDA361/DIT220 Computer Graphics, January 15 th 2016 EXAM (Same exam for both CTH- and GU students) Friday January 15 th, 2016, 8.30 12.30 Examiner Ulf Assarsson, tel. 0701-738535 Permitted Technical Aids

More information

Describe the Orthographic and Perspective projections. How do we combine together transform matrices?

Describe the Orthographic and Perspective projections. How do we combine together transform matrices? Aims and objectives By the end of the lecture you will be able to Work with multiple transform matrices Describe the viewing process in OpenGL Design and build a camera control APIs Describe the Orthographic

More information

Ray Tracing Part 1. CSC418/2504 Introduction to Computer Graphics. TA: Muhammed Anwar & Kevin Gibson

Ray Tracing Part 1. CSC418/2504 Introduction to Computer Graphics. TA: Muhammed Anwar & Kevin Gibson Ray Tracing Part 1 CSC418/2504 Introduction to Computer Graphics TA: Muhammed Anwar & Kevin Gibson Email: manwar@cs.toronto.edu Overview Introduction / Motivation Rasterization vs Ray Tracing Basic Pseudocode

More information

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are

More information

OUTLINE. Hierarchical Models Z-Fighting Primitives Besides Triangles Back Face Culling

OUTLINE. Hierarchical Models Z-Fighting Primitives Besides Triangles Back Face Culling MATRIX STACKS OUTLINE Hierarchical Models Z-Fighting Primitives Besides Triangles Back Face Culling HIERARCHICAL MODELS Building scenes where objects move in relation to each other rather than independently

More information

DH2323 DGI13. Lab 2 Raytracing

DH2323 DGI13. Lab 2 Raytracing DH2323 DGI13 Lab 2 Raytracing In this lab you will implement a Raytracer, which draws images of 3D scenes by tracing the light rays reaching the simulated camera. The lab is divided into several steps.

More information

9. Three Dimensional Object Representations

9. Three Dimensional Object Representations 9. Three Dimensional Object Representations Methods: Polygon and Quadric surfaces: For simple Euclidean objects Spline surfaces and construction: For curved surfaces Procedural methods: Eg. Fractals, Particle

More information

GstarCAD Complete Features Guide

GstarCAD Complete Features Guide GstarCAD 2017 Complete Features Guide Table of Contents Core Performance Improvement... 3 Block Data Sharing Process... 3 Hatch Boundary Search Improvement... 4 New and Enhanced Functionalities... 5 Table...

More information

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes CSCI 420 Computer Graphics Lecture 7 and Constructive Solid Geometry [Angel Ch. 12.1-12.3] Jernej Barbic University of Southern California Modeling Complex Shapes An equation for a sphere is possible,

More information