1 Saarland University, Germany 2 DFKI Saarbrücken, Germany.

Slides:



Advertisements
Similar presentations
The OpenRT Application Programming Interface - Towards a Common API for Interactive Ray Tracing – OpenSG 2003 Darmstadt, Germany Andreas Dietrich Ingo.
Advertisements

VRML Scene Graphs on an Interactive Ray Tracing Engine IEEE Virtual Reality 2004 Conference Chicago, IL USA March 30 th, 2004 Andreas Dietrich Ingo Wald.
COMPUTER GRAPHICS SOFTWARE.
Sven Woop Computer Graphics Lab Saarland University
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Afrigraph 2004 Interactive Ray-Tracing of Free-Form Surfaces Carsten Benthin Ingo Wald Philipp Slusallek Computer Graphics Lab Saarland University, Germany.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Supervised by Prof. LYU, Rung Tsong Michael Department of Computer Science & Engineering The Chinese University of Hong Kong Prepared by: Chan Pik Wah,
Many-Core Programming with GRAMPS Jeremy Sugerman Kayvon Fatahalian Solomon Boulos Kurt Akeley Pat Hanrahan.
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.
Many-Core Programming with GRAMPS & “Real Time REYES” Jeremy Sugerman, Kayvon Fatahalian Stanford University June 12, 2008.
Many-Core Programming with GRAMPS Jeremy Sugerman Stanford University September 12, 2008.
Ch 1 Intro to Graphics page 1CS 367 First Day Agenda Best course you have ever had (survey) Info Cards Name, , Nickname C / C++ experience, EOS experience.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex With code bases exceeding a million lines of code, a.
1 of 12 Scene Graphs: the 50,000 ft View. 2 of 12 Traditional Definition Historical roots: Sketchpad  linear display lists  hierarchical display lists.
Real-Time Ray Tracing 3D Modeling of the Future Marissa Hollingsworth Spring 2009.
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
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.
Intel in Visual Computing in Russia Alexander Chipizhko Intel, Nizhny Novgorod.
CIS 581 Interactive Computer Graphics (slides based on Dr. Han-Wei Shen’s slides) Instructor: Rick Parent Credit: 4 Class: MWF 10:30.
Survey of Computer Graphics Programming Languages Jerry Yee November 30, 2004.
Programming Tools and Applications. Programming Tools 3D systems – Maya – Blender – Unity – Ogre3D Libraries – OpenGL – Direct3D.
Declarative 3D for the Web Architecture Web3D 2012 Workshop Johannes Behr, Kristian Sons.
Interactive Ray Tracing: From bad joke to old news David Luebke University of Virginia.
CSU0021 Computer Graphics © Chun-Fa Chang CSU0021 Computer Graphics September 10, 2014.
1 KIPA Game Engine Seminars Jonathan Blow Seoul, Korea November 29, 2002 Day 4.
Antigone Engine Kevin Kassing – Period
G3D Design Goals C++ library of code common to every 3D project Write once, compile everywhere Safe and fast Prototype a game in one week Maximize flexibility.
Codeplay CEO © Copyright 2012 Codeplay Software Ltd 45 York Place Edinburgh EH1 3HP United Kingdom Visit us at The unique challenges of.
Graphical Objects and Scene Graphs 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009.
CSC 461: Lecture 41 CSC461: Lecture 4 Introduction to OpenGL Objectives: Development of the OpenGL API OpenGL Architecture -- OpenGL as a state machine.
MathCore Engineering AB Experts in Modeling & Simulation WTC.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
INTRODUCTION INTRODUCTION Computer Graphics: As objects: images generated and/or displayed by computers. As a subject: the science of studying how to generate.
Interactive Visualization of Exceptionally Complex Industrial CAD Datasets Andreas Dietrich Ingo Wald Philipp Slusallek Computer Graphics Group Saarland.
GPU Architecture and Programming
1 Computer Graphics Week2 –Creating a Picture. Steps for creating a picture Creating a model Perform necessary transformation Lighting and rendering the.
Fast BVH Construction on GPUs (Eurographics 2009) Park, Soonchan KAIST (Korea Advanced Institute of Science and Technology)
Supporting Animation and Interaction Ingo Wald SCI Institute, University of Utah
Department of Computer Science 1 Beyond CUDA/GPUs and Future Graphics Architectures Karu Sankaralingam University of Wisconsin-Madison Adapted from “Toward.
1 Ray Tracing with Existing Graphics Systems Jeremy Sugerman, FLASHG 31 January 2006.
Parallel Ray Tracer Computer Systems Lab Presentation Stuart Maier.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex (can easily exceed 1M LOC) The larger your program,
3D Engine II December 17, computer graphics -dpi.
Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Visualization Four groups Design pattern for information visualization
Havok FX Physics on NVIDIA GPUs. Copyright © NVIDIA Corporation 2004 What is Effects Physics? Physics-based effects on a massive scale 10,000s of objects.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Virtual Light Field Group University College London Ray Tracing with the VLF (VLF-RT) Jesper Mortensen
Visualization Programming: “Libraries” and “Toolkits” Class visualization resources CSCI 6361.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
EU-Russia Call Dr. Panagiotis Tsarchopoulos Computing Systems ICT Programme European Commission.
X3D: Real Time 3D Solution for the web Web3D Tech Talk – SIGGRAPH 2008 Fraunhofer Foundation Mission: “Application oriented research for industry and advantage.
1cs426-winter-2008 Notes. 2 Atop operation  Image 1 “atop” image 2  Assume independence of sub-pixel structure So for each final pixel, a fraction alpha.
Iliyan Georgiev Measuring Properties of Molecular Surfaces Using Ray Casting.
Instructor: Dr. Shereen Aly Taie 1.  Broad introduction to Computer Graphics ◦ Software ◦ Hardware ◦ Applications  CAD برامج التصميم 2.
GPU Acceleration of Particle-In-Cell Methods B. M. Cowan, J. R. Cary, S. W. Sides Tech-X Corporation.
Computer Engg, IIT(BHU)
GPU Architecture and Its Application
Real-Time ray casting for virtual reality
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
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.
Real-Time Ray Tracing Stefan Popov.
Hybrid Ray Tracing of Massive Models
Graphics Processing Unit
3D applications in Delphi
Ray Tracing on Programmable Graphics Hardware
Presentation transcript:

1 Saarland University, Germany 2 DFKI Saarbrücken, Germany

 Rasterization becomes…  Too complicated  Inefficient  Ray tracing delivers…  Accurate visual simulation  Physically correct results  Ray tracing just works  Simple, well understood algorithm  No input data tweaking  Ray tracing is useful not only for rendering…  Collision detection, object picking, etc.  Ray tracing is becoming faster  Ray tracing is becoming mainstream  Support by hardware manufacturers

 Faster and more capable hardware  Increasing parallelism  Multiple cores  SIMD  Increasing programmability  GPUs  Larrabee  Consequences  Trend towards software-based graphics  Need fast and flexible software architectures!

 OpenRT  Fixed, non-extensible API  Could not adopt new technology  Inefficient for highly dynamic scenes  Existing ray tracing systems  Trade-offs between flexibility and performance  Hand-coded low-level optimizations  Object-oriented design  Ideally – both flexibility and performance

 Generic building blocks  Composable at design/compile time  Decouples of algorithms and data structures  Not only for rendering  Compatible  Uses existing tools  Integrates with other software  Portable  Intuitive arbitrary-level abstractions  High performance  Allows efficient code generation

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

PinholeCamera camera; // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector); tree, intersector);

// initialization omitted PinholeCamera camera; // initialization omitted // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted BVH tree; BVHBuilder builder; BVHIntersector intersector; RayTracingRenderer<PixelCenterSampler, DirectIlluminationIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector);

// initialization omitted PinholeCamera camera; // initialization omitted // initialization omitted OpenGLFrameBuffer fb; // initialization omitted BasicScene scene; // initialization omitted LoDKdTree tree; LoDKdTreeBuilder builder; LoDKdTreeIntersector intersector; RayTracingRenderer<PixelCenterSampler, LoDIntegrator> renderer; builder.build(tree, scene.prim.begin(), scene.prim.end()); renderer.render (scene, camera, fb, fb.getClipRegion(), tree, intersector);

 E.g. OpenInventor  Deeply integrated with rasterization APIs  Complete graph traversal each frame  Not efficient for ray tracing  Optimized for rasterization-based rendering  Need incremental scene updates

 VRML 2.0 compliant  Full X3D support in progress  CAD, animations, arbitrary shading, etc.  Extensible  Renderer independent  Ray tracing  RTfact, OpenRT  Rasterization  OGRE (OpenGL, DirectX)  Incremental updates

 Ray tracing will “always” be relevant  Hardware gets massively parallel and programmable  Need flexible and fast software architectures  RTfact  Generic and highly flexible  Fast  RTSG  VRML2.0 and X3D compliant  Robust  Ray tracing based VR system in progress