Modeler Code Basics CSE P 557, Autumn 2006

Slides:



Advertisements
Similar presentations
Pages and boxes Building quick user interfaces. learning objectives o Build a quick UI with pages and boxes o understand how pages and boxes work o click.
Advertisements

Computer Graphics 2D & 3D Transformation.
CSE 457 Modeler Help Session Lovingly brought to you by: TA Steve.
This terms course Last term we both worked on learning 2 things –Processing –The concepts of graphics etc. This term will focus more on the basic concepts.
Using GLU/GLUT Objects GLU/GLUT provides very simple object primitives glutWireCube glutWireCone gluCylinder glutWireTeapot.
CLASS 4 CS770/870. Translation Scale Multiplying Matrices. The R C rule What happens when we do two translates? What happens when we do two scales?
Basic Response Letter Last Updated Basic Response Letter The response redesign in SERFF 5.6 introduces the concept of inline schedule item.
CSE 557: Impressionist Help Session Ian Simon. What we’ll be going over Getting Set Up The Skeleton Code OpenGL Basic FLTK How to make a new brush Good.
Due: Thursday, April 28 th by the stroke of midnight! TA: Jeff Booth.
MAT 594CM S2010Fundamentals of Spatial ComputingAngus Forbes Overview Today: - Make sure everyone is set up with an OpenGL environment - OpenGL basics:
Lab 1: OpenGL Tutorial CS 282. What’s the plan for today? Go over our framework code. Learn some basic OpenGL! Reveal Lab 1 Answer questions.
Modeler Help Session CSE 457, Spring 2006 Modeler Due: Thursday, October 26th Modeler Artifact Due: Monday, Oct. 30th Project TA: Sierra
OpenGL 3D and Animation for Simulating a Solar System
Modeler Help Session CSE 457, Fall 2005 Modeler Due: Oct 28, Friday Modeler Artifact Due: Oct 31, Monday Project TA: Jeremy
TA: Zhicheng Yan Sushma S Kini Mary Pietrowicz
Graphical Objects and Scene Graphs CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
OpenGL (II). How to Draw a 3-D object on Screen?
2IV60 Computer Graphics 2D transformations
Hierarchical Transformations Hierarchical Models Scene Graphs
Animator Project CSE 557. In this project… Create your own hierarchical model Create keyframe animations Create smooth keyframe animations Create particle.
COMP 175: Computer Graphics March 10, 2015
Mouse-Based Viewing & Navigation Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Monday, November 3, 2003.
Image Synthesis Rabie A. Ramadan, PhD 2. 2 Java OpenGL Using JOGL: Using JOGL: Wiki: You can download JOGL from.
Data Structures for Scenes, The Basics of Scene Graphs Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Friday,
Homogeneous Form, Introduction to 3-D Graphics Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Monday, October 20,
Modeler Help Session CSEP 557, Spring Help Session Overview The Modeler Application Modeler Code Overview Constructing Your Model Hierarchical Modeling.
 Checking out, building, and using the sample solution  Part 1: Surface of Revolution  Part 2: Hierarchical Modeling  Part 3: Blinn-Phong Shader 
More on Drawable Objects, Hierarchical Objects Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Wednesday, January.
Modeling with OpenGL Practice with OpenGL transformations.
Review of OpenGL Basics
Control flow for interactive applications CSE 3541 Matt Boggus.
Image Synthesis Rabie A. Ramadan, PhD 4. 2 Review Questions Q1: What are the two principal tasks required to create an image of a three-dimensional scene?
Animator Help Session. Surface of Revolution You will write OpenGL code to draw a surface by rotating a curve. Each vertex must have an appropriate: 
Advanced Viewing Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Friday, October 31, 2003.
1/50 CS148: Introduction to Computer Graphics and Imaging Transforms CS148: Introduction to Computer Graphics and Imaging Transforms.
Visualization Recreate the ping pong scene in 3D using ball and racket coordinates.
Project 1: Impressionist Help Session Zinnia Zheng
1 Geometric Transformations-II Modelling Transforms By Dr.Ureerat Suksawatchon.
Graphics Lab: MyPaint Dan Maselko 1. MyPaint Description  For this assignment you will be implementing a very simple paint program.  You should be able.
CSCE 441: Computer Graphics: Hierarchical Models Jinxiang Chai.
Transformation Example. Order of Transformation Matters Scale, translate Scale, translate Translate scale Translate scale Rotate, Translate Rotate, Translate.
The Modelview Stack Lecture 9 Wed, Sep 12, The Modelview Stack OpenGL maintains a stack of matrices. The matrix on top of the stack is the current.
Solid Modeling SolidWorks Layout 2D Sketching ENGR 1182 SolidWorks 01.
School of Computer Science
Lesson 6: Enhancing Presentations
Event Loops and GUI Intro2CS – weeks
SketchUp Chocolate Level of Difficulty Time
IAT 355 Scene Graphs Feb 23, 2017 IAT 355.
Summary of Properties of 3D Affine Transformations
Graphical Objects and Scene Graphs
Introduction to Events
Introducing Blender.
Introducing Blender.
Geometric Transformations
CSCE 441: Computer Graphics: Hierarchical Models
Chapter 4/5 glMatrixMode Modeling Transformations glTranslate glScale
Modeler Help Session CSE 457, Autumn 2008
Projection in 3-D Glenn G. Chappell
Modeler Help Session CSE 457, Spring 2006
Geometric Transformations
Modeler Help Session CSE 457, Spring 2005
More on Widgets, Misc. Topics
Modeler Help Session CSE 457, Autumn 2007
Stacks.
Modeler Help Session CSE 457, Spring 2008
Modeler Help Session CSE 457, Spring 2007
Geometric Transformations
CSCE 441: Computer Graphics: Hierarchical Models
Prepared by your friendly, phantom TA Jennifer
Introduction to Methods and Interfaces
Presentation transcript:

Modeler Code Basics CSE P 557, Autumn 2006 Modeler Due: October 31st Artifact Due: November 3rd Project TA: Zinnia zinnia@cs.washington.edu

Overview The Modeler Application Modeler Code Overview Constructing Your Model Hierarchical Modeling in OpenGL Warnings & Hints

The Modeler Application Two main windows: Control window with sliders Model view window Navigate in the model view window: Left-click: Rotate the camera Middle-click: Move the point that the camera is looking at (Translation/Dolly) Right-click: Zoom in/out

Modeler Code Overview modelerapp.* and modelerui.* handles the user interface modelerapp.h defines the ModelerApplication class which handles the setting of control values modelerdraw.* supports the drawing of primitive shapes and material attributes

Modeler Code Overview modelerview.h modelerview.cpp defines the ModelerView object base class of your model – your model will be a subclass of ModelerView handles OpenGL drawing and event handling modelerview.cpp provides some base functionality such as setting up lighting and handling camera controls

Modeler Code Overview Hands Off! on the following files: modelerapp.* modelerui.* modelerdraw.* modelerview.* For the animator project, you will be re-using your model source file and plugging it into a different application. If you change modelerapp.* or modelerdraw.*, your model may not work with the animator project!

Modeler Code Overview What do you get to change? Camera.* Sample.cpp Controls camera functions Look in camera.cpp to implement your own version of gluLookAt() Sample.cpp Example BoxModel - you will replace this with your own model file To start: copy sample code and then modify in order to include the methods you need. Eventually remove sample.cpp file and replace with <YourModel>.cpp

Modeler Code Overview Some helpful files (that you should also not change) Modelerui.fl is a data file that controls the FLTK user interface Vec.h & Mat.h contains useful vector/matrix operations

Constructing Your Model Make all changes in Sample.cpp Draw() where you will build your model Main() initializes the controls Add slider controls Enum statement at the top of the file defines the names and number of controls Add controls both to Enum and main Remember to keep NUMCONTROLS variable at the end of the Enum list

Hierarchical Modeling in OpenGL OpenGL is a state machine glEnable()/glDisable() changes the state Once you change something, it will stay that way until you change it to something new! This includes: current color, transformation details, drawing modes, information about the lights, etc. OpenGL maintains a transformation matrix that is applied to everything that is drawn In other words: transformations are cumulative Perform transformations glRotated(), glTranslated(), glScaled() relative to the previous drawn object

Hierarchical Modeling back to earlier transformation matrix glPushMatrix() & glPopMatrix() Keeps track of the state of your model in a stack If you want to make changes and then undo the transformation matrix, glPushMatrix() will keep track of where everything was When popped off the stack, will return to those values

Warnings & Hints Keep track of your pushes() and pops() – be sure you’ve got all matched up pairs Helpful: divide draw routine to series of nested methods, each with their own push and pop Implement gluLookAt(): Look in your slides and in the OpenGL Blue Book, but make sure you understand how it works! Implement the animation sequence: use 1 slider to control multiple aspects of the model

Example Models Look at previous quarters Short list of sample executables online