CPSC 436D: Video Game Programming Intro to Game Graphics Assignment
|
|
- Anastasia Jones
- 5 years ago
- Views:
Transcription
1 CPSC 436D: Video Game Programming Intro to Game Graphics Assignment Due: 23:59 PM, Friday January 18, Introduction The goal of this assignment is to introduce you to basic graphics interface programming. You will experiment with rendering, shaders, and event-driven frameworks in general. In the assignment you will implement a simple 2D game where the user controls a salmon swimming upstream. Can your salmon dodge the turtles that rush by? How many fish will you eat? You will implement this game by building on top of an instructor-provided template, adding the required code The assignment includes both a required (80%) and a free-form component (20%). goal of the latter is to let you experiment with computer graphics and have fun. The 2 Template The template code provides a starting base for your work. You will find comments throughout the files to help you guide in the right direction. The directory is structured as follows: The directory src contains all the header (.hpp) and source (.cpp) files used by the project. The entry point is located in a1.cpp while most of the logic will be implemented in world.cpp together with the respective salmon, fish and turtle.cpp files. The data directory contains all audio files, meshes, and textures used in the code. The directory includes a Makefile and a Visual Studio project in the visual studio directory. The external dependencies are located in the ext subdirectory, which is referenced by the project files, it contains header files and precompiled libraries for: gl3w: OpenGL function pointer loading (Header-only) GLFW: Cross-platform window and input 1
2 SDL/SDL mixer: Playing music and sounds stb image: Image loading (Header-only) 2.1 Transformations and Rendering The template uses modern OpenGL and in order to keep similar transformation semantics as in glpushmatrix() gltranslate() glrotate() glscale() glpopmatrix() the following functions are provided: transform begin(): Resets the current transform to identity transform rotate(): Applies a rotation matrix to the current transform transform scale(): Applies a scale matrix to the current transform transform translate(): Applies a translation matrix to the current transform transform end(): Signal that you are finished with transformations. The obtained 3x3 transform is the passed to the Vertex Shader and multiplied by the orthographic projection matrix. Be careful about the order of transformations as they are being multiplied before being passed as uniform data to the shaders. 3 Required Work (80%) 1. Getting started (15%): (a) Download and untar the source template, template.zip. It should match the structure specified in the Template section. It also contains an mp4 video demonstrating how your solution should look like once the required parts are completed. The package can be downloaded from: git clone (b) Play the solution demo.mp4 to get a sense of what a possible assignment solution should look like. The speed of the water current can be controlled with < (shift +,) and > (shift +.) keys (as it can be seen toward the end of the demo). (c) Build the template using CMake. If you are using Windows, you can skip this step of installing 3rd party libraries. For OSX users, here are the commands for Homebrew ( brew install pkg-config brew install glfw3 brew install sdl2 brew install sdl2_mixer Page 2 of 6
3 And for MacPorts ( port install pkgconfig port install glfw port install libsdl2 port install libsdl2_mixer For Linux users, please install glfw3, sdl2 and sdl2 mixer using your package manager. If CMake is not already installed, you can download and install from the CMake website: or use the package manager of your choice. Create an empty directory as the build directory, which we assume is named build. You can configure the project using CMake GUI or the command line. For the GUI, enter the assignment template folder (which should contain a CMake- Lists.txt file) as Source and the build folder as the Build. Then, configure, and if the configuration is successful, generate. For the command line, cd inside the build and run: cmake [path_of_assignment_template] -DCMAKE_BUILD_TYPE=[Debug Release] Now you can build the generated project using make, Visual Studio, etc. For Visual Studio users, change the working directory ([Debug] [436d Properties] [Debugging] [Working Directory]) to $(ProjectDir)$(Configuration) so you can launch the game using the VS debugger. Note that for this specific project, you need to rerun CMake configuration and generation if you move the template folder. 2. For a basic version of the game make the following changes to the provided template (65%): (a) Movement: pressing the Up/Down directional keys should make the salmon swim up and down and pressing the Left/Right directional keys should make it swim left and right. The keyboard callback function is located in World::on key(). Use it to keep track of the state of the keys or Salmon s velocity. You can then use it in Salmon::update() to correctly update its position calling Salmon::move(). In order to render the salmon in the correct location you will need to modify Salmon::draw() and issue the correct transform translate() command. (b) Rotation: Provide mouse control for rotating the salmon, so that moving the mouse to the left/right rotates the salmon clockwise/counterclockwise. You can obtain the mouse position in the World::on mouse move() in window-coordinates, relative to the top-left of the screen. You can calculate the rotation angle with respect to its default facing direction (positive X axis), which can then be updated using Salmon::set rotation(). As for the position, In order to render the correctly orientated salmon you will need to modify Salmon::draw() and issue the correct transform rotate() command. Page 3 of 6
4 (c) There are two other type of entities in the sea: turtles and fish. By reading the initialization and rendering code for the different entities you will notice that the entities are rendered in two different ways: The salmon has a more complex geometry and each vertex has its own color, while the turtle and fish are faked using a texture, which is applied on a quad (two triangles). The turtles are dangerous for the salmon, while the fish can be eaten by the salmon in order to obtain points. Points are then displayed in the window title. While the collision code is already implemented in Salmon::collides with(), you need to properly handle the reactions with: i. Turtle: If a collision with a turtle occurs the Salmon::kill() method is called. You need to update the salmon s alive state and also change its color. See Salmon::draw() to understand how the color variable is passed to the shader and colored.fs.glsl to see how it s being used to modify the final salmon color. Then modify it to make the salmon red after a collision. You should also see him sink down if you have properly updated its alive state. ii. Fish: Whenever a Salmon eats a fish, the score should be updated and the salmon should temporarily light up. The method Salmon::light up() starts the countdown for the duration of the light (Salmon::m light countdown ms). The salmon is lit up in the colored.fs.glsl shader based on its state which is passed as uniform from Salmon::draw(). For this question you need to pass the correct state to the shader only if the salmon has eaten recently and change the light color to yellow inside the shader. (d) The underwater effect is achieved using a second-pass shader. The two-pass rendering code is provided. Your job of this part is to modify the water fragment shader, shaders/water.fs.glsl, for the underwater distortion and color shift. Note that you don t need to match the solution video exactly. Hints for the distortion part (distort): think about the translation, what if the offset value is not uniform at all pixel locations but is varying like a wave function? What if this wave function is varying based on time? Another helpful piece of information is that the input and output values of distort are in [0, 1], you should set the offset values to the right scale. Hint for the color shift (color shift): check the function fade color in the same file. You may want to shift the underwater world slightly to blue. If you are interested in how the two-pass rendering is done, the explanation is the following. In the first pass, the screen is rendered to a off-screen texture (see World::draw()). In the second pass a fragment shader is used to apply additional effects to each pixel of the texture obtained in the first pass. This is achieved by rendering a full-screen geometry in a similar fashion to how the turtles and fish are rendered (see water.cpp). Page 4 of 6
5 4 Creative Part(20%) The required code changes described so far will let you earn up to 80% of the grade. To earn the remaining 20% as well as possible bonus marks you need to make the game more appealing (the size of the bonus will be at the marker s discretion). You could add features such as: (a) make the salmon bounce off the top and bottom walls when it runs into them (b) change the movement of the salmon to be consistent with its orientation, so that the up/down keys move the salmon along the direction it is aligned with (c) give the salmon momentum so that it continues moving even when no keys are pressed (d) improve the collision mechanism: As the salmon has a more complex geometry, it can be used to improve the accuracy by checking the collision against every individual triangle.. considering rotations? (e) add additional visuals, either on the salmon or turtle (these can be animated or static) (f) randomize the turtles paths (g) diversify the types of obstacles floating down the river (h) did someone say bubbles? Use your imagination to make any other changes, however please make sure you focus on tasks involving OpenGL knowledge. To support both basic and advanced visualization and control features, you need to add a toggle option where the user switches between the two modes by pushing the a and b keys ( a for advanced mode and b for basic mode). Document all the features you add in the README file you submit with the assignment. Advice: implement and test all the required tasks first before starting the free-form part. 5 Hand-in Instructions 1. You do not have to hand in any printed code. Create a README.txt file that includes your name, student number, and login ID, and any information you would like to pass on to the marker. Create a folder called a4 under your cs436d directory. Within this directory have included all your source, data and make files as present in the template. We need to setup 2. The assignment should be handed in with the exact command: handin cs436d a1 Page 5 of 6
6 This will handin your entire a1 directory tree by making a copy of your a1 directory, and deleting all subdirectories! ( If you want to know more about this handin command, use: man handin.) You can also use the web interface on your mycs page to upload the assignment. Page 6 of 6
Outline. Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s)
Modeler Help Outline Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s) Objects in the Scene Controls of the object selected in the Scene. Currently the Scene
More informationDeferred Rendering Due: Wednesday November 15 at 10pm
CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 4 November 2, 2017 Deferred Rendering Due: Wednesday November 15 at 10pm 1 Summary This assignment uses the same application architecture
More informationShading and Texturing Due: Friday, Feb 17 at 6:00pm
CMSC 23700 Winter 2012 Introduction to Computer Graphics Project 2 Feb 2 Shading and Texturing Due: Friday, Feb 17 at 6:00pm (v1.0 Feb 2: initial version) 1 Summary You can complete this project in pairs
More informationLecture 12: Mid-term test solution & project. CITS 3003 Graphics & Animation
Lecture 12: Mid-term test solution & project CITS 3003 Graphics & Animation Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives Explain solution to the mid-term
More informationHW2d Project Addenda
HW2d Project Addenda CS 320 Note the following differences between the project description for Harvard s CS 175 class and our class: 1. The CS 175 due date is not applicable. 2. The starter code location
More informationCurves & Splines. Assignment #3. Overview & Objectives. Due Dates. CPSC 453 Fall 2018 University of Calgary
Curves & Splines Assignment #3 CPSC 453 Fall 2018 University of Calgary Overview & Objectives The main objective of this third assignment in CPSC 453 is to learn to work with Bézier curves and splines.
More informationCCSI 3161 Project Flight Simulator
1/11 CCSI 3161 Project Flight Simulator Objectives: To develop a significant OpenGL animation application. Due date: Dec 3 rd, Dec 1st, 11:59pm. No late submission will be accepted since the grades need
More informationSpring 2013, CS 112 Programming Assignment 2 Submission Due: April 26, 2013
Spring 2013, CS 112 Programming Assignment 2 Submission Due: April 26, 2013 PROJECT GOAL: Write a restricted OpenGL library. The goal of the project is to compute all the transformation matrices with your
More informationCS 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 informationDue: Thursday, February 6 th, 11:59 pm TA: Mason Remy
Due: Thursday, February 6 th, 11:59 pm TA: Mason Remy Checking out, building, and using the sample solution Part 1: Surface of Revolution Part 2: Hierarchical Modeling Part 3: Blinn-Phong Shader Part 4:
More informationInteractive OpenGL Animation
Syracuse University SURFACE Syracuse University Honors Program Capstone Projects Syracuse University Honors Program Capstone Projects Spring 5-1-2011 Interactive OpenGL Animation Lusha Zhang Follow this
More informationEECE.2160: ECE Application Programming Spring 2018 Programming Assignment #1: A Simple C Program Due Monday, 1/29/18, 11:59:59 PM
Spring 2018 Programming Assignment #1: A Simple C Program Due Monday, 1/29/18, 11:59:59 PM 1. Introduction This program simply tests your ability to write, compile, execute, and submit programs using the
More informationComputer Graphics Coursework 1
Computer Graphics Coursework 1 Deadline Deadline: 4pm, 24/10/2016 4pm 23/10/2015 Outline The aim of the coursework is to modify the vertex and fragment shaders in the provided OpenGL framework to implement
More information[175 points] The purpose of this assignment is to give you practice with shaders in OpenGL.
CPSC 441 Computer Graphics Assignment 5 due 11/20/18 (11:59 p.m.) [175 points] The purpose of this assignment is to give you practice with shaders in OpenGL. Part 1: First, download and get the code itself
More informationSurface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot. - a mesh of spline patches:
Surface Graphics Objects are explicitely defined by a surface or boundary representation (explicit inside vs outside) This boundary representation can be given by: - a mesh of polygons: 200 polys 1,000
More informationI think this assignment should have 8 objectives but we should still mark it out of 10. The Mean TA.
Chapter 1 CS488/688 F17 A1: Introduction I think this assignment should have 8 objectives but we should still mark it out of 10. The Mean TA. This assignment is due Thursday, September 28th [Week 3]. 1.1
More informationA simple OpenGL animation Due: Wednesday, January 27 at 4pm
CMSC 23700 Winter 2010 Introduction to Computer Graphics Project 1 January 12 A simple OpenGL animation Due: Wednesday, January 27 at 4pm 1 Summary This project is the first part of a three-part project.
More informationAssignment 1 due 4/13/2017 at 11:59PM Topic: Getting Started with WebGL and Transformations
Virtual Reality EE 267, Spring 2017 Assignment 1 due 4/13/2017 at 11:59PM Topic: Getting Started with WebGL and Transformations Students should use Javascript for this assignment, building on top of the
More informationModeling Objects. Modeling. Symbol-Instance Table. Instance Transformation. Each appearance of the object in the model is an instance
Modeling Objects Modeling Hierarchical Transformations Hierarchical Models Scene Graphs A prototype has a default size, position, and orientation You need to perform modeling transformations to position
More informationFull 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 informationIntegrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object:
Integrating Physics into a Modern Game Engine Object Collision Various types of collision for an object: Sphere Bounding box Convex hull based on rendered model List of convex hull(s) based on special
More informationCOMPSCI 372 S2 C - Assignment 2 Due Date: Monday 22nd September 2008, 9.30pm
COMPSCI 372 S2 C - Assignment 2 1 of 8 Computer Science COMPSCI 372 S2 C - Assignment 2 Due Date: Monday 22nd September 2008, 9.30pm This assignment is worth 6.25% of your final grade. In this assignment
More informationProject 2: 3D transforms and Cameras
Project : D transforms and Cameras 50pts See schedule on website for the due date and time. The purpose of this assignment is to gain an understanding of how D transforms and viewing works in OpenGL with
More informationAN INTRODUCTION TO SCRATCH (2) PROGRAMMING
AN INTRODUCTION TO SCRATCH (2) PROGRAMMING Document Version 2 (04/10/2014) INTRODUCTION SCRATCH is a visual programming environment and language. It was launched by the MIT Media Lab in 2007 in an effort
More informationToyBox Futuristi Instruction Manual
ToyBox Futuristi Instruction Manual Contents Welcome to ToyBox Futuristi... 2 What can you do with this software?... 2 The Instructional Video... 2 Installing the software... 3 Windows... 3 Mac... 3 The
More informationComputer Graphics Hands-on
Computer Graphics Hands-on Two-Dimensional OpenGL Transformations Objectives To get hands-on experience manipulating the OpenGL current transformation (MODELVIEW) matrix to achieve desired effects To gain
More informationComputer 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 informationChapter Answers. Appendix A. Chapter 1. This appendix provides answers to all of the book s chapter review questions.
Appendix A Chapter Answers This appendix provides answers to all of the book s chapter review questions. Chapter 1 1. What was the original name for the first version of DirectX? B. Games SDK 2. Which
More information3D 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 informationNot For Sale. Glossary
Glossary Actor A sprite and the role it plays as it interacts with another sprite on the stage. Animated GIF A graphic made up of two or more frames, each of which is displayed as an automated sequence
More informationCSE 690: GPGPU. Lecture 2: Understanding the Fabric - Intro to Graphics. Klaus Mueller Stony Brook University Computer Science Department
CSE 690: GPGPU Lecture 2: Understanding the Fabric - Intro to Graphics Klaus Mueller Stony Brook University Computer Science Department Klaus Mueller, Stony Brook 2005 1 Surface Graphics Objects are explicitely
More informationDue: Thursday, April 28 th by the stroke of midnight! TA: Jeff Booth
Due: Thursday, April 28 th by the stroke of midnight! TA: Jeff Booth Checking out, building, and using the sample solution Part 1: Rendering a Sphere Part 2: Hierarchical Modeling Part 3: glulookat() Part
More informationCS 184: Assignment 4 Simple Raytracer
CS 184: Assignment 4 Simple Raytracer Ravi Ramamoorthi 1 Introduction This assignment asks you to write a first simple raytracer. Raytracers can produce some of the most impressive renderings, with high
More informationUser Interface Software Projects
User Interface Software Projects Assoc. Professor Donald J. Patterson INF 134 Winter 2013 The author of this work license copyright to it according to the Creative Commons Attribution-Noncommercial-Share
More informationContents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1
Acknowledgments xvii Introduction Who Is This Book For?... xix What s in This Book?... xx Part I: Warming Up.... xx Part II: Simulating Life... xx Part III: Fun with Images... xx Part IV: Enter 3D... xx
More informationVersa Mix. User Guide and Reference Manual Charter Street Los Angeles Ca /07
Versa Mix User Guide and Reference Manual 2/07 4295 Charter Street Los Angeles Ca. 90058 www.americanaudio.us Introduction Congratulations and thank you for purchasing the American Audio Versa Mix. Versa
More informationModule Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1
UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series PG Examination 2013-14 COMPUTER GAMES DEVELOPMENT CMPSME27 Time allowed: 2 hours Answer any THREE questions. (40 marks each) Notes are
More informationCS Simple Raytracer for students new to Rendering
CS 294-13 Simple Raytracer for students new to Rendering Ravi Ramamoorthi This assignment should be done only by those small number of students who have not yet written a raytracer. For those students
More informationCS1950U 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 informationMajor Assignment: Pacman Game
Major Assignment: Pacman Game 300580 Programming Fundamentals Week 10 Assignment The major assignment involves producing a Pacman style game with Clara using the Greenfoot files that are given to you.
More informationHomework 1: Getting Started with WebGL and Transformations EE267 Virtual Reality 2018
Homework 1: Getting Started with WebGL and Transformations EE267 Virtual Reality 2018 Due: 04/12/2018, 11:59pm Instruction Students should use JavaScript for this assignment, building on top of the provided
More informationDemo 1: Simple Dynamic Simulation
Demo 1: Simple Dynamic Simulation Demo 1 Location Via SVN: https://svn.ece.lsu.edu/svn/gp/gpup/demo-1-simple.cc Demo 1 Goals Simulate ball bouncing over platform. Get a feeling for project and context
More informationDescribe 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 informationCS559 Computer Graphics Fall 2015
CS559 Computer Graphics Fall 2015 Practice Midterm Exam Time: 2 hrs 1. [XX Y Y % = ZZ%] MULTIPLE CHOICE SECTION. Circle or underline the correct answer (or answers). You do not need to provide a justification
More informationFirst, let's make sure we have all of the starter code downloaded. MAC (Go to the second part of the tutorial if you are using windows)
CSE 167 HW 0 - Due Thur. Jan 18th at 11:59 p.m. This homework will help you set up OpenGL on your computer. First, let's make sure we have all of the starter code downloaded. https://github.com/ht413/cse167startercode
More informationProgramming Game Engines ITP 485 (4 Units)
Programming Game Engines ITP 485 (4 Units) Objective This course provides students with an in-depth exploration of 3D game engine architecture. Students will learn state-of-the-art software architecture
More informationComputer Graphics (CS 4731) Lecture 11: Implementing Transformations. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)
Computer Graphics (CS 47) Lecture : Implementing Transformations Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Objectives Learn how to implement transformations in OpenGL
More informationTDA361/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 informationOPENGL 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 informationHow to Make a Podcast
Can You Hear Me Now? How to Make a Podcast Part One: Creating a Podcast Using Audacity Step 1: Things You Need 1. Computer with broadband Internet access. 2. Audacity version 1.2.6 (http://audacity.sourceforge.net/).
More informationCheating: In case of cheating, all parts involved (source(s) and receiver(s)) get zero.
REGULATIONS Due date: 19.11.2009 Thursday 23:59 Late Submission: Late submission is not allowed. Submission: Use the COW system to submit your homework file. The homework should be done and submitted individually.
More informationTSBK03 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 informationThe Application Stage. The Game Loop, Resource Management and Renderer Design
1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data
More information6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm
6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm In this assignment, you will add an interactive preview of the scene and solid
More informationCreating an Animated Sea Aquarium/Getting Acquainted with Power Point
Creating an Animated Sea Aquarium/Getting Acquainted with Power Point Directions: Power Point is a presentation graphics application program you use to organize and present information. Whether you are
More informationPractical 2: Ray Tracing
2017/2018, 4th quarter INFOGR: Graphics Practical 2: Ray Tracing Author: Jacco Bikker The assignment: The purpose of this assignment is to create a small Whitted-style ray tracer. The renderer should be
More informationQuick Shader 0.1 Beta
Quick Shader 0.1 Beta Documentation (last update 2014-07-10) QuickShader is a program that allows you to write and test shaders without creating your own rendering engine. Using this tool you can quickly
More informationCS 380 Introduction to Computer Graphics. LAB (1) : OpenGL Tutorial Reference : Foundations of 3D Computer Graphics, Steven J.
CS 380 Introduction to Computer Graphics LAB (1) : OpenGL Tutorial 2018. 03. 05 Reference : Foundations of 3D Computer Graphics, Steven J. Gortler Goals Understand OpenGL pipeline Practice basic OpenGL
More informationCSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013
CSE 167: Introduction to Computer Graphics Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Today Course organization Course overview 2 Course Staff Instructor Jürgen Schulze,
More informationProject report Augmented reality with ARToolKit
Project report Augmented reality with ARToolKit FMA175 Image Analysis, Project Mathematical Sciences, Lund Institute of Technology Supervisor: Petter Strandmark Fredrik Larsson (dt07fl2@student.lth.se)
More informationOpen 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 informationSpeech Upload & Annotation Tool User Guide for Instructors
Speech Upload & Annotation Tool User Guide for Instructors For technical support call 1-800-936-6899 TABLE OF CONTENTS Quick Facts & Helpful Features 2 The Upload Tool... 3 Uploading a New Clip... 3 Locating
More informationCruising Sacramento/ A PowerPoint Slide Show (Project #8)
Cruising Sacramento/ A PowerPoint Slide Show (Project #8) Start PowerPoint: Microsoft Office PowerPoint 2007 PowerPoint should open as a presentation. If not Click the Office button and select New.. Select
More informationThe 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 informationComputer Science 175. Introduction to Computer Graphics lib175 time: m/w 2:30-4:00 pm place:md g125 section times: tba
Computer Science 175 Introduction to Computer Graphics www.fas.harvard.edu/ lib175 time: m/w 2:30-4:00 pm place:md g125 section times: tba Instructor: Steven shlomo Gortler www.cs.harvard.edu/ sjg sjg@cs.harvard.edu
More informationTDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)
TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except
More informationCS 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 informationGame Programming with. presented by Nathan Baur
Game Programming with presented by Nathan Baur What is libgdx? Free, open source cross-platform game library Supports Desktop, Android, HTML5, and experimental ios support available with MonoTouch license
More informationName: Jonathan Lindquist Occupation: Technical Artist Company: Epic Games Duties: Author shaders Generate art Write scripts Miscellaneous tasks
Fortnite s Vertex Shaders Introduction : Personal Name: Jonathan Lindquist Occupation: Technical Artist Company: Epic Games Duties: Author shaders Generate art Write scripts Miscellaneous tasks Previous
More informationReal Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03
1 Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 Table of Contents 1 I. Overview 2 II. Creation of the landscape using fractals 3 A.
More informationIntroduction to 3D Concepts
PART I Introduction to 3D Concepts Chapter 1 Scene... 3 Chapter 2 Rendering: OpenGL (OGL) and Adobe Ray Tracer (ART)...19 1 CHAPTER 1 Scene s0010 1.1. The 3D Scene p0010 A typical 3D scene has several
More informationAtmospheric Reentry Geometry Shader
Atmospheric Reentry Geometry Shader Robert Lindner Introduction In order to simulate the effect of an object be it an asteroid, UFO or spacecraft entering the atmosphere of a planet, I created a geometry
More informationTextures 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 informationImages 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 informationSelection tool - for selecting the range of audio you want to edit or listen to.
Audacity Quick Guide Audacity is an easy-to-use audio editor and recorder. You can use Audacity to: Record live audio. Convert tapes and records into digital recordings or CDs. Edit sound files. Cut, copy,
More informationKeys for selecting tools
Keys for selecting tools Use these shortcuts in the Tools panel. In most cases, you can momentarily switch tools by holding down the keyboard shortcut for the tool. Selection tool V V Rotation tool W W
More informationTerrain rendering (part 1) Due: Monday, March 10, 10pm
CMSC 3700 Winter 014 Introduction to Computer Graphics Project 4 February 5 Terrain rendering (part 1) Due: Monday, March 10, 10pm 1 Summary The final two projects involves rendering large-scale outdoor
More informationPlaylist Builder 1.5 Manual
Playlist Builder 1.5 Manual Playlist Builder is a database and schedule system for your audio files. It supports the following audio formats: WAV SND/MP2 MP3 OTS Before you run the program, make sure you
More informationMouse Ray Picking Explained
Mouse Ray Picking Explained Brian Hook http://www.bookofhook.com April 5, 2005 1 Introduction There comes a time in every 3D game where the user needs to click on something in the scene. Maybe he needs
More informationEditing and Finishing in DaVinci Resolve 12
Editing and Finishing in DaVinci Resolve 12 1. Introduction Resolve vs. Resolve Studio Working in the Project Manager Setting up a Multi User Login Accessing the Database Manager Understanding Database
More informationSetting up a Project and Debugging with Visual Studio
Setting up a Project and Debugging with Visual Studio Contents Setup Visual Studio to compile a DLL ---------------------------------------------------------------- 1 Step 1: Install Visual Studio Express
More informationCreating Flood Effects in Uncharted 3. Eben Cook VFX Naughty Dog
Creating Flood Effects in Uncharted 3 Eben Cook VFX Artist @ Naughty Dog Me me me BA in Communication Design from UNT Computer Science minor 11 years in the industry. EALA, Naughty Dog I ve been: Concept
More informationI expect to interact in class with the students, so I expect students to be engaged. (no laptops, smartphones,...) (fig)
Computer Science 175 Introduction to Computer Graphics www.fas.harvard.edu/ lib175 time: m/w 2:30-4:00 pm place:md g125 section times: tba Instructor: Steven shlomo Gortler www.cs.harvard.edu/ sjg sjg@cs.harvard.edu
More informationPong 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 informationClick the +Assignments button. Depending on how you add your assignment, this step may look a little different. Enter your assignment information.
USER GUIDE This work by Longsight, Inc. is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Last Updated 2015-8-24 15:53:59. Click the +Assignments button.
More informationFlowmap 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 informationLab 1: Dynamic Memory: Heap Manager
Lab 1: Dynamic Memory: Heap Manager Introduction to Systems, Duke University 1 Introduction For this lab you implement a basic heap manager. The standard C runtime library provides a standard heap manager
More informationImage Manipulation in MATLAB Due Monday, July 17 at 5:00 PM
Image Manipulation in MATLAB Due Monday, July 17 at 5:00 PM 1 Instructions Labs may be done in groups of 2 or 3 (i.e., not alone). You may use any programming language you wish but MATLAB is highly suggested.
More informationThe 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, 2009 Set: 8 Apr Demonstration: Week commencing 18 May Electronic Submission:
More informationAdvanced Lighting Techniques Due: Monday November 2 at 10pm
CMSC 23700 Autumn 2015 Introduction to Computer Graphics Project 3 October 20, 2015 Advanced Lighting Techniques Due: Monday November 2 at 10pm 1 Introduction This assignment is the third and final part
More informationREGULATIONS Team: Submission: Late Submission: only for one day Cheating: Updates: Newsgroup: must
REGULATIONS Team: The project has to be done by groups of exactly 2 partners. Each one of the partners may receive different grades from the project phases. Submission: At each phase, each group will submit
More informationTo familiarize of 3ds Max user interface and adapt a workflow based on preferences of navigating Autodesk 3D Max.
Job No: 01 Duration: 8H Job Title: User interface overview Objective: To familiarize of 3ds Max user interface and adapt a workflow based on preferences of navigating Autodesk 3D Max. Students should be
More informationAn Introduction to Maya. Maya. Used in industrial design, CAD, computer games and motion picture effects. The ambition is what get
An Introduction to Maya Gustav Taxén gustavt@nada.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2006 Maya Used in industrial design, CAD, computer games and motion picture effects Special focus
More informationTerrain Rendering (Part 1) Due: Thursday November 30 at 10pm
CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 5 November 16, 2015 Terrain Rendering (Part 1) Due: Thursday November 30 at 10pm 1 Summary The final project involves rendering large-scale
More informationSpring 2011 Prof. Hyesoon Kim
Spring 2011 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on
More informationVirtual Cameras and The Transformation Pipeline
Virtual Cameras and The Transformation Pipeline Anton Gerdelan gerdela@scss.tcd.ie with content from Rachel McDonnell 13 Oct 2014 Virtual Camera We want to navigate through our scene in 3d Solution = create
More information3 Polygonal Modeling. Getting Started with Maya 103
3 Polygonal Modeling In Maya, modeling refers to the process of creating virtual 3D surfaces for the characters and objects in the Maya scene. Surfaces play an important role in the overall Maya workflow
More information[ the academy_of_code] Senior Beginners
[ the academy_of_code] Senior Beginners 1 Drawing Circles First step open Processing Open Processing by clicking on the Processing icon (that s the white P on the blue background your teacher will tell
More informationLab 1 Implementing a Simon Says Game
ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.
More informationCENG 477 Introduction to Computer Graphics. Graphics Hardware and OpenGL
CENG 477 Introduction to Computer Graphics Graphics Hardware and OpenGL Introduction Until now, we focused on graphic algorithms rather than hardware and implementation details But graphics, without using
More information