# Computer graphics/2013-2014/Laboratory agenda

Template:Computer graphics -- 2014-2015 -- info.uvt.ro/Page header

## Laboratory 1

* AGENDA SUMMARY
* EVALUATION SUMMARY
* TOOLS, FRAMEWORKS, LIBRARIES
** Eclipse
** JOGL
* INTRODUCTION TO COMPUTER GRAPHICS
** Computer Graphics
** 2D / 3D Graphics
** Digital Images
*** Definition
*** Resolution
*** Color Depth/Space
*** File Formats
** Graphics Processing Unit (GPU)
* TECHNOLOGIES
** OpenGL
** DirectX
** Java 2D / Java 3D
** JOGL -- Java OpenGL (this is what will use)
** XNA
** X3D (VRML)

## Laboratory 2

* (J)OGL BASICS
** What is JOGL?
** Comparison with OpenGL
** OpenGL as a state machine
** Naming conventions
** Creating our first simple JOGL scene using AWT (or the well known Hello World program)
*** Installing JOGL libraries
*** Setting up an AWT application
*** Initializing JOGL
*** Callback functions (methods)
*** Drawing
**** Animation
** JOGL Application Template
* 2D GRAPHICS BASICS (PART 1)
** Coordinate Systems (JOGL vs. AWT)
** Coordinate Spaces
** Projections (orthogonal, perspective), View-port and View Volume
** Vertices vs. Points. vs. Pixels
** List of points (lines, line strip, line loop)
** Changing the properties of points (size) and lines (width, stipple)
** Coloring

## Laboratory 3

* 2D GRAPHICS BASICS (PART 2)
** Antialising
** Polygons
*** Validity
*** What are they made of?
*** Dimensionality
*** Polygon Primitives
**** Triangles (normal, fan, list)
**** Quads (normal, strip)
**** Rectangles
*** Polygon filling and orientation
*** Polygon stipple
*** Polygon normals
** Using Display Lists

## Laboratory 4

* 2D GRAPHICS BASICS (PART 3):
** Textures
** 2D and 3D textures
*** Texture Files (.PNG, .TGA, .JPG, .BMP)
*** Reading a texture file and applying the texture on an object
*** MipMapping
*** Replacing parts of a texture with another
*** Texture transparency and blending

## Laboratory 5

* 2D GRAPHICS BASICS (PART 6):
** Placing text in the scene
* 2D APPLICATION
** Simple StarChart
* PUBLISHING YOUR JOGL APPLICATION
** Java Web Start
** JNLP

## Laboratory 6

* 3D GRAPHICS BASICS:
** Perspective Projection, Depth and Shading, Looking at the scene from an arbitrary point
** Drawing simple objects (sphere, torus)
*** Sphere mapping
** Lighting and Materials
*** Lighting types (ambient, diffuse, specular, emitted)
*** Materials
*** Using materials combined with lighting

## Laboratory 7

* USER CONTROL:
** Keyboard and mouse control
* MORE ON MODELVIEW MANAGEMENT:
** Model
*** Transformations
**** Rotation
**** Translation
**** Scaling
** Viewing
*** Camera control

## Laboratory 8

* MORE ON STATE VARIABLES AND BUFFERS:
** State variables: querying their values
** Buffers: Color buffer, Stencil buffer, Accumulation buffer, Depth buffer
* OBJECT PICKING

## Laboratory 9

* USING COMPLEX OBJECTS:
** File formats (.3DS, .OBJ)
** Loading complex objects in the scene
* 3D GRAPHICS COMPLEX ISSUES (PART 1):
** Billboards

## Laboratory 10

* 3D GRAPHICS COMPLEX ISSUES (PART 2):
** World box
** Handling object collisions

## Laboratory 11

* 3D GRAPHICS COMPLEX ISSUES (PART 3):
** Creating a simple particle engine

## Laboratory 12

* 3D APPLICATION:
** Simple Space Simulator

## Laboratory 13

* 3D APPLICATION
** Simple scene

## Laboratory 14

* DirectX API overview
** Drawing a basic scene using Managed DirectX and C#
You can find romanian slides at - Grafica si Interfete - 2014-2015 - info.uvt.ro
* Gabriel Iuhasz, iuhasz.gabriel@info.uvt.ro