Antigone Engine Kevin Kassing – Period 5 2006-07.

Slides:



Advertisements
Similar presentations
Perspective aperture ygyg yryr n zgzg y s = y g (n/z g ) ysys y s = y r (n/z r ) zrzr.
Advertisements

Introduction Games have always been a fundamental part of human life. Space storm “ عاصفة الفضاء” is a 3D SCI-FI game that consists of two stages presented.
GlTF and rest3d Patrick Cozzi University of Pennsylvania CIS Fall 2013.
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
 The success of GL lead to OpenGL (1992), a platform-independent API that was  Easy to use  Close enough to the hardware to get excellent performance.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
Irrlicht Engine Overview By Eric Osugi. Irrlicht's development started in 2003 with only Nikolaus Gebhardt. Only after the 1.0 release of Irrlicht in.
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
3D Rendering with JOGL Introduction to Java OpenGL Graphic Library By Ricardo Veguilla
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
CSE328:Computer Graphics OpenGL Tutorial Dongli Zhang Department of Computer Science, SBU Department of Computer Science, Stony.
Dakota Humphries (Project Lead) Thomas Impellitteri (Tech Lead) Daryl McGhee II (Design Lead) Keith Rosier (Asset Lead)
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
CSE 381 – Advanced Game Programming Basic 3D Graphics
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
Intro to RayGL  Kris Zarns. What it does Creates SDL (scene description language) files for POVRay from OpenGL & Glut code  One file per frame/swap-buffer.
Android for Java Developers Denver Java Users Group Jan 11, Mike
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
Course Introduction and Terminology CGDD 4113 – 3D MODELING AND ANIMATION.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
CSE 690: GPGPU Lecture 6: Cg Tutorial Klaus Mueller Computer Science, Stony Brook University.
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
PVSSProxy The first piece of the MACS procedure framework (ProShell) Angela Brett.
COMPUTER GRAPHICS CSCI 375. What do I need to know?  Familiarity with  Trigonometry  Analytic geometry  Linear algebra  Data structures  OOP.
2008/9/24 Kim, HyungSeok. HyungSeok Kim, Konkuk University Part I: Framework – 1. Windows creation – 2. Renderer – 3. Lights and Objects/Model loading.
MIRALab Where Research means Creativity SVG Open 2005 University of Geneva 1 Converting 3D Facial Animation with Gouraud shaded SVG A method.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
A Few Things about Graphics Jian Huang Computer Science University of Tennessee.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
INTRODUCTION GORT is a virtual 3D modeling environment for computer programmers. Its main area of focus is to aid in the education of programmers learning.
Development of a Software Renderer for utilizing 3D Contents on a 2D-based Mobile System Sungkwan Kang 1, Joonseub Cha 2, Jimin Lee 1 and Jongan Park 1,
CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
Chapter – 8 Software Tools.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
Build your own 2D Game Engine and Create Great Web Games using HTML5, JavaScript, and WebGL. Sung, Pavleas, Arnez, and Pace, Chapter 5 Examples 1.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
Khang Lam Daniel Limas Kevin Castillo Juan Battini
Matlab.
- Introduction - Graphics Pipeline
Antigone Engine.
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Ogre Overview Lecture 3.
Ogre Overview.
Introduction to OpenGL
CS451Real-time Rendering Pipeline
Understanding Theory and application of 3D
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler
INTRODUCTION TO BASIC MATLAB
Importing modules + pygame intro
Introduction to MATLAB
Chapter VI OpenGL ES and Shader
Game Engines Non-game specific technology Game: Engine
Computer Graphics Practical Lesson 10
Simulation And Modeling
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Introduction to OpenGL
OpenGL Background CS 4722.
OpenGL-Rendering Pipeline
Presentation transcript:

Antigone Engine Kevin Kassing – Period

Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible with C++, can make bindings for other languages)‏ Wrappers for commonly used OpenGL functions Data structures for semantic objects

Implemented Features Efficient camera management Frontend management (GLUT, SDL)‏ Input API Debugging tools Included libraries:  liballoy: textures and materials  libhemi: meshes and animations  libmala: matrices, vectors, and quaternions

Internal Structure Included in the core:  Debugging tools  Camera management  Basic program loop  Input/Output API  Particle Engine  Multipass rendering facilities Most essential functions are in external libraries

Debugging Tools Assert – ASSERT(a==b, “A not equal to B!”); Logging – wrapper for fprintf Profiling – measure speed of predefined blocks of code (print min, max, average ticks): startSample(“Loop A”); for (int i=0;i<100;i++)‏ { x=x*sqrt(y); } endSample();

Particle Engine Uses lots of “billboarded” triangles (oriented toward the camera)‏ Simple gravity effects and customizable colors Cheap way to emulate liquids and gases – smoke, fire, water, etc.

Multipass Rendering Render to texture can be used to dynamically animate textures Common use is to render something on a monitor or screen within the simulation

libmala Highly optimized math functions No dependencies Vector structs with 2, 3, or 4 components 3x3 and 4x4 matrices, square or flat Quaternions (w+xi+yj+zk)‏ Basic support for common operations on transform matrices and rotations Limited collision detection routines

liballoy Depends on libmala Handles lighting properties, textures, multitexturing, and shaders Routines to read/write material definitions embedded within another file Support for loading from PNG, BMP, JPG, PCX, WAL, TGA Can optionally be compiled with other image loading libraries (SDL_image)‏

libhemi Depends on liballoy and libmala Support for loading meshes from MD2, MD3, MD5 Support for vertex and skeletal animation Meshes internally represented in half-edge format  Each edge knows where it starts, the next edge, opposite edge  Allows for easy adjacency queries, mesh modifications

Mesh Optimizations Topology is separate from vertex position Triangle connectivity is exploited to create optimal rendering orders Neighboring triangles share vertices, which don't need to be sent to the graphics card

Triangle Strips In skeletal models, speedup can reach 15% Possible to create strips averaging 30 triangles in length In complex models, can render using < 50% of the number of vertices as in normal rendering

Design Considerations Speed, Speed, Speed!  mesh rendering optimizations (triangle strips)‏  data structures (balance with memory constraints)‏ Backwards Compatibility  once API reaches some point, updates may deprecate but not remove interfaces Modularity  should be able to easily add new systems (which operate efficiently), for example, sound and network

Problems Feature creep, especially with formats  Need to generalize data structures as much as possible Compatibility  Defining multiple frontends and input systems  OpenGL extensions / Hardware capabilities  Support for those who don't have library X Lack of documentation on formats

Conclusions The benefits of using C instead of C++ are marginal at best Texture loading functions should be handled by an existing library in most cases Topology should be separable from vertex positions Extensive consideration should be given to the future of a program which is built from libraries Triangle strips are well worth the amount of time they take to generate