Designing a Game s Shader Library for Current and Next Generation Hardware

Size: px
Start display at page:

Download "Designing a Game s Shader Library for Current and Next Generation Hardware"

Transcription

1 ATI TECHNOLOGIES INC. Designing a Game s Shader Library for Current and Next Generation Hardware Alex Vlachos AVlachos@ati.com 1

2 Outline Intro & Motivation Demos Why a Shader Library is Needed ATI Demo Shader File Format Multi-pass Rendering Fallback Shaders Default State Run-Time Implementation 2

3 The Design Dilemma Do you design your engine for yesterday s graphics chips or tomorrow s? Too often, the answer is yesterday s. Why not both? With a little engineering time spent up front, you ll save yourself twice as much time during the rest of your development process. 3

4 What is a Shader Library? Library in the sense of a linkable.lib file or collection of source code (not a collection of shaders). API that deals completely with setting render state, shaders, shader constants, etc. Provides a text file format for describing how to render a piece of geometry from preprocessing to runtime. Completely abstracts the graphics API. Necessary for cross-platform development. Often coupled with a windowing API that abstracts window creation and associated functionality. 4

5 RADEON 8500 Nature Demo 5

6 RADEON 8500 Rachel Demo 6

7 RADEON 8500 Ocean Demo 7

8 RADEON 8500 Tubes Demo 8

9 Future of the Industry Advances in the graphics industry are becoming extremely shader-centric and will continue on that path. Designing a forward-looking engine equates to having a powerful and flexible shader library at the center. Every part of your engine needs to be designed with the shader library in mind. 9

10 Current Games Games are too conservative with shaders these days even on the latest consoles! Stop hard-coding shaders in C/C++ code! You re only slowing yourself down. 10

11 Advantages of Having a Shader Library Add completely new shaders without having to write a line of C code or recompiling your engine! Fix rendering bugs by editing a text file while the app is still running and see instant feedback. Makes debugging vertex and pixel shaders a trivial task in comparison to the hardcoded method. Falling back to older hardware becomes a much simpler task and follows naturally. 11

12 Anatomy of an ATI Demo Shader File at a Glance Art Notes What artists see within Maya or 3DS MAX Stream Mappings Defines how to preprocess your vertex and index buffers. Texture Declaration Defines how to preprocess and store textures for runtime. Variables Define variables for use within the shader file. Artists can set variables from within the art tool. Sub-Shaders There can be many of these to describe fallbacks or rendering wire frame, NPR, etc. Passes Supports multi-pass rendering Set Texture State Set Render State Vertex and Pixel Shader Constant Setup Vertex and Pixel Shader Code 12

13 Artist s Point-of-View Artists associate a shader file with a given material within the art tool. The art tool pulls instructions out of the shader file for the artists. To the RIGHT are our Maya and 3DS MAX material plug-ins. 13

14 Art Notes Art Notes section is for our Maya and 3D Studio MAX material plug-ins. This is what the artists see when they select a shader within the material editor. StartArtNotes Base = 24-bit base map T1 = Need 8-bit fur density map T2 = Anisotropic lighting lookup map EndArtNotes 14

15 Streams & Stream Mappings This describes how to fully preprocess our vertex and index buffers, and the data associated with each stream element. There can be a unique index buffer associated with each Stream Map. StartStream sposnorm Normal float3 POSITION Position float3 NORMAL VertexNormal EndStream StartStream stexcoords Normal float2 TEX0 UV0 //BaseTexU, BaseTexV float3 TEX1 Tangent0 EndStream StartStream sfurfins FurFins float3 POSITION Position float3 NORMAL VertexNormal float4 TEX0 FinFaceData0 //FinTexU, FinTexV, BaseTexUVDist, RandOffset float4 TEX1 FinFaceData1 //BaseTexU, BaseTexV, BaseTexDu, BaseTexDv float3 TEX2 FaceNormal EndStream StreamMap smbasepass(sposnorm, stexcoords) StreamMap smshellpass(sposnorm, stexcoords) StreamMap smfinspass(sfurfins) 15

16 Texture Declaration Describes how to fully preprocess our textures including input formats, mip map generation, and output format. Our language allows for each output texture to be created from up to two input textures that the artists specify. Texture tbase 2D DXT1("Base", RGB, KaiserGamma) Texture tfurshelltexture 2D RGBA( T1", RGB, Kaiser, T2", GRAY, KaiserGamma) Texture tbump 2D DXT5("Bump", HEIGHT, Box, "Opacity", GRAY, Box) Texture tanisolookup 2D RGBA( T5", RGB, Box, T6", GRAY, Box) Texture tnormcube CM RGBX("Base3", RGB, Box) Texture tenvmap CMAuto //This is an auto-generated cube map Texture twater Renderable("WaterReflection") 16

17 Variables Can be bound to render state or shader constants. If a variable is editable, the artist can override the variable from within the art tool. Variables can also be tied to internal state such as camera position or transform matrices. Float furheight(4.0) EDITABLE Vector furfadescalebias(0.5, 0.5, 0.0, 0.0) Vector objectspacecampos(camera_position, OBJECT_SPACE) Vector objectspacelightpos(light_position, OBJECT_SPACE, 0) Matrix wvp(matrix_wvp) 17

18 Miscellaneous This section is reserved for application specific string pairs. All of these are application specific, and the shader library knows nothing about them. StartMisc Transparent TRUE Animation Object EndMisc Skinned StencilShadows 18

19 Sub-Shaders A shader file can contain several sub-shaders which describe how to completely render the geometry in an arbitrary number of passes. A shader file can contain one of these for each supported graphics card and acts as the fallback mechanism. Each sub-shader has a type in the form of a string. At load time, the first sub-shader that validates (found from top to bottom) of a given type is kept in memory and the rest are skipped. 19

20 Sub-Shaders (Cont d) // StartShader //For RADEON 8500 or ps.1.4 minimum Type Normal //Can be anything, like Wire frame, Invincible StartPass EndPass EndShader // StartShader //For RADEON or fixed function transform Type Normal StartPass EndPass StartPass EndPass EndShader 20

21 Pass Each pass has a unique Stream Mapping, unique set of render state and textures, and vertex and pixel shader code. StartPass //Set Stream Map //Set Textures //Set Render State //Set Vertex Shader Constants //Vertex Shader Code //Set Pixel Shader Constants //Pixel Shader Code EndPass Within a sub-shader, state is sticky between passes. 21

22 Pass - Set Stream Map A single stream map is bound per pass. This is useful if your multi-pass algorithm requires different vertex buffers per pass (fur shells vs. fur fins). SetStreamMap smfinspass 22

23 Pass - Set Textures Binds current texture, associated filter state, LOD bias, etc. in a cleaner language than current API s. SetTexture 0 tfurfintexture Bilinear LodBias(-0.5) Aniso(4) SetTexture 1 tfurfinoffsettexture Bilinear SetTexture 2 tbase Trilinear SetTexture 3 tanisolookup Linear 23

24 Pass - Set Render State Describes all render state in a easier to read language ZTest FALSE ZWrite FALSE Cull CCW Stencil TRUE ZFail(DecSat) Func(Always) Blend TRUE ONE SRCALPHA AlphaTest TRUE 0.9 NPatch Order(Cubic, Quadratic) Make your shader files more readable than bare OpenGL or D3D code! 24

25 Pass - Vertex & Pixel Shader Constants Constants can be set to either variables which were previously defined or constant values. VsConst 0 const(0.0, 0.25, 0.5, 1.0) VsConst 1 commonconst VsConst 2 objectspacecampos VsConst 3 objectspacelightpos VsConst 4 wvpmatrix VsConst 8 furfadescalebias VsConst 9 furheight VsConst 10 furfintextiling PsConst 1 invfintextiling //1.0 / fintextilingfactor PsConst 2 lightcolor //Color of light 25

26 Pass - Vertex & Pixel Shaders Vertex and pixel shader code can either be embedded in the shader file or reference an external file. StartPixelShader ps.1.4 texld r0, t0 texld r1, t0 texcrd r2, t2 texcrd r3, t3 texcrd r4, t4 texcrd r5, t1 dp3_d2 r3.r, r2, r0_bx2 dp3_d2 r3.gba, r3, r0_bx2 mul r1, r1_bias, r4 mad r5.rg, r1, c1, r5 mov r5.b, r0.a //direction of aniso and opacity //offset texture //tan space L //tan space V //du,dv that fin spans in base map coords //base map coords //T.L //T.V //hair offset value * du,dv //base map lookup for hair color perturbed by offset map //pass base map opacity through phase texld r2, r5 //base map lookup texld r3, r3 //aniso lighting texcrd r5, t5 // mul_x2 r3, r3, c2 //scale diffuse and specular components of light mad r0.rgb, r2, r3, r3.a //diffuse * base + specular +mul r0.a, r5.b, r2.a //hair opacity * base map opacity mul_sat r0.rgb, r0, v0 //scale hair color by hair height +mul_sat r0.a, r0.a, v0.a //opacity * edge on fading EndPixelShader 26

27 Default Shader Defines all default state for your engine within a shader file. You don t need to rely on D3D s or OpenGL s default state since you override it with what is most useful to your app. This also helps reduce overall state change. Your shaders ultimately have less redundancy since you can rely on the defaults you set. 27

28 Cleanup Shader Since you set a default shader at startup, cleaning up state becomes trivial and fully automated! When the engine is done rendering with a given shader, the shader library automatically sets any changed render state back to the default. Cleanup can be very smart by delaying cleanup until the next shader is activated and change only the absolute minimal state required. Reduces human error of forgetting to set a given render state back to what it was. 28

29 More on Fallbacks Some older hardware lacks multi-stream vertex buffers. You often have to store redundant data on disk to do the most optimal thing at runtime. If you ve generalized your preprocessing based on earlier slides, this should mean no additional work on your part. At runtime, load all shaders first, then load only the necessary vertex buffers, index buffers, and textures. More interesting shaders also require additional textures that are often not needed for the fallback sub-shaders. 29

30 Vertex Buffer Creation When organizing vertex buffers during preprocessing, keep buffers common to the same shader together so it s easier to discard them. You may want to classify each stream and group them to make the loadtime rejection easier: StartStream sposnorm Normal For

31 Example Run-Time Code AtiShader *sh = GetShaderPtr(); for (int i=0; i<sh->numpasses; i++) { //Figure out which streams are needed for this pass } //For each draw call // Set current textures through shader lib // Set current vertex and index buffers (streams) // Draw 31

32 State Change Priority In the past, we prioritized texture changes as the most important state change. Now prioritize based on the following order: Vertex and Pixel Shader Code Vertex and Pixel Shader Constants Textures Vertex and Index Buffers 32

33 Summary Shader library should be central to every part of your rendering pipeline from artist creation, to preprocessing, to run-time. Provides an approachable method for true fallback shaders. Facilitates cross-platform development. Separates shader writing from engine development! Better allocation of internal resources. 33

34 More Information Slides will be available on the ATI Developer Relations Website: ati.com/developer 34

35 Questions? This outtake was captured from the Rachel demo when we first rendered this model in realtime. Her face polygons remained in object space accidentally We corrected the problem by simply editing the text shader file without requiring a recompile or restart of the app. 35

Preparing Sushi. Alex Vlachos. How Hardware Guys Write a 3D Graphics Engine. ati.com. EGDC 2001

Preparing Sushi. Alex Vlachos. How Hardware Guys Write a 3D Graphics Engine. ati.com. EGDC 2001 Preparing Sushi How Hardware Guys Write a 3D Graphics Engine Alex Vlachos AVlachos@ati ati.com EGDC 2001 Preparing Sushi - ATI Research, Inc. EGDC 2001 1 What is Sushi? Island Demo Scene Graph Vertex Storage

More information

Rippling Reflective and Refractive Water

Rippling Reflective and Refractive Water Rippling Reflective and Refractive Water Alex Vlachos John Isidoro Chris Oat ATI Research ATI Research ATI Research One of the classic challenges of real-time computer graphics is to generate realistic

More information

The Application Stage. The Game Loop, Resource Management and Renderer Design

The 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 information

Chapter 3 ATI. Jason L. Mitchell

Chapter 3 ATI. Jason L. Mitchell Chapter 3 ATI Jason L. Mitchell SIGGRAPH 2002 - State of the Art in Hardware Shading Course Pixel Shading with DirectX 8.1 and the ATI RADEON 8500 Jason L. Mitchell JasonM@ati.com 3D Application Research

More information

Render-To-Texture Caching. D. Sim Dietrich Jr.

Render-To-Texture Caching. D. Sim Dietrich Jr. Render-To-Texture Caching D. Sim Dietrich Jr. What is Render-To-Texture Caching? Pixel shaders are becoming more complex and expensive Per-pixel shadows Dynamic Normal Maps Bullet holes Water simulation

More information

Could you make the XNA functions yourself?

Could you make the XNA functions yourself? 1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which

More information

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI Tutorial on GPU Programming #2 Joong-Youn Lee Supercomputing Center, KISTI Contents Graphics Pipeline Vertex Programming Fragment Programming Introduction to Cg Language Graphics Pipeline The process to

More information

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June Optimizing and Profiling Unity Games for Mobile Platforms Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June 1 Agenda Introduction ARM and the presenter Preliminary knowledge

More information

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research Applications of Explicit Early-Z Z Culling Jason Mitchell ATI Research Outline Architecture Hardware depth culling Applications Volume Ray Casting Skin Shading Fluid Flow Deferred Shading Early-Z In past

More information

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog RSX Best Practices Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog RSX Best Practices About libgcm Using the SPUs with the RSX Brief overview of GCM Replay December 7 th, 2004

More information

Streaming Massive Environments From Zero to 200MPH

Streaming Massive Environments From Zero to 200MPH FORZA MOTORSPORT From Zero to 200MPH Chris Tector (Software Architect Turn 10 Studios) Turn 10 Internal studio at Microsoft Game Studios - we make Forza Motorsport Around 70 full time staff 2 Why am I

More information

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer Real-Time Rendering (Echtzeitgraphik) Michael Wimmer wimmer@cg.tuwien.ac.at Walking down the graphics pipeline Application Geometry Rasterizer What for? Understanding the rendering pipeline is the key

More information

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský Real - Time Rendering Pipeline optimization Michal Červeňanský Juraj Starinský Motivation Resolution 1600x1200, at 60 fps Hw power not enough Acceleration is still necessary 3.3.2010 2 Overview Application

More information

Mattan Erez. The University of Texas at Austin

Mattan Erez. The University of Texas at Austin EE382V: Principles in Computer Architecture Parallelism and Locality Fall 2008 Lecture 10 The Graphics Processing Unit Mattan Erez The University of Texas at Austin Outline What is a GPU? Why should we

More information

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON Deferred Rendering in Killzone 2 Michal Valient Senior Programmer, Guerrilla Talk Outline Forward & Deferred Rendering Overview G-Buffer Layout Shader Creation Deferred Rendering in Detail Rendering Passes

More information

In-Game Special Effects and Lighting

In-Game Special Effects and Lighting In-Game Special Effects and Lighting Introduction! Tomas Arce! Special Thanks! Matthias Wloka! Craig Galley! Stephen Broumley! Cryrus Lum! Sumie Arce! Inevitable! nvidia! Bungy What Is Per-Pixel Pixel

More information

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

RenderMonkey 1.6. Natalya Tatarchuk ATI Research RenderMonkey 1.6 Natalya Tatarchuk ATI Research Game Developer Conference, San Francisco, CA, March 2005 Overview > What is RenderMonkey? > What s New In RenderMonkey 1.6? 2 What is RenderMonkey? > Shader

More information

Special Effects with DirectX 9

Special Effects with DirectX 9 Special Effects with DirectX 9 Alex Vlachos AVlachos@ati.com Greg James GJames@nvidia.com Outline Glow effect Developed for Disney/Monolith s Tron 2.0 Volume fog from polygon objects Used in Bandai/Dimps

More information

Shaders. Slide credit to Prof. Zwicker

Shaders. Slide credit to Prof. Zwicker Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

More information

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Pavel Petroshenko, Sun Microsystems, Inc. Ashmi Bhanushali, NVIDIA Corporation Jerry Evans, Sun Microsystems, Inc. Nandini

More information

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Building scalable 3D applications. Ville Miettinen Hybrid Graphics Building scalable 3D applications Ville Miettinen Hybrid Graphics What s going to happen... (1/2) Mass market: 3D apps will become a huge success on low-end and mid-tier cell phones Retro-gaming New game

More information

Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA

Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA Agenda FX Composer 2.0 Introductions Cross-Platform Shader Authoring FX Composer 2.0 and Production Pipelines PLAYSTATION 3 Production

More information

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved Avi Shapira Graphic Remedy Copyright Khronos Group, 2009 - Page 1 2004 2009 Graphic Remedy. All Rights Reserved Debugging and profiling 3D applications are both hard and time consuming tasks Companies

More information

Procedural Shaders: A Feature Animation Perspective

Procedural Shaders: A Feature Animation Perspective Procedural Shaders: A Feature Animation Perspective Hector Yee, Rendering Specialist, PDI/DreamWorks David Hart, Senior FX Developer, PDI/DreamWorks Arcot Preetham, Engineer, ATI Research Motivation Movies

More information

Textures. Texture coordinates. Introduce one more component to geometry

Textures. Texture coordinates. Introduce one more component to geometry Texturing & Blending Prof. Aaron Lanterman (Based on slides by Prof. Hsien-Hsin Sean Lee) School of Electrical and Computer Engineering Georgia Institute of Technology Textures Rendering tiny triangles

More information

The Rasterization Pipeline

The Rasterization Pipeline Lecture 5: The Rasterization Pipeline (and its implementation on GPUs) Computer Graphics CMU 15-462/15-662, Fall 2015 What you know how to do (at this point in the course) y y z x (w, h) z x Position objects

More information

Optimizing DirectX Graphics. Richard Huddy European Developer Relations Manager

Optimizing DirectX Graphics. Richard Huddy European Developer Relations Manager Optimizing DirectX Graphics Richard Huddy European Developer Relations Manager Some early observations Bear in mind that graphics performance problems are both commoner and rarer than you d think The most

More information

Per-Face Texture Mapping for Realtime Rendering. Realtime Ptex

Per-Face Texture Mapping for Realtime Rendering. Realtime Ptex Per-Face Texture Mapping for Realtime Rendering Realtime Ptex Quick Note For CUDA/Compute folks: Ptex!= PTX Goals Render native Ptex datasets in real-time on commodity hardware Remove texture seams from

More information

Chapter Answers. Appendix A. Chapter 1. This appendix provides answers to all of the book s chapter review questions.

Chapter 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 information

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp Next-Generation Graphics on Larrabee Tim Foley Intel Corp Motivation The killer app for GPGPU is graphics We ve seen Abstract models for parallel programming How those models map efficiently to Larrabee

More information

Computer Graphics (CS 543) Lecture 10: Normal Maps, Parametrization, Tone Mapping

Computer Graphics (CS 543) Lecture 10: Normal Maps, Parametrization, Tone Mapping Computer Graphics (CS 543) Lecture 10: Normal Maps, Parametrization, Tone Mapping Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Normal Mapping Store normals in texture

More information

Real-Time Hair Rendering on the GPU NVIDIA

Real-Time Hair Rendering on the GPU NVIDIA Real-Time Hair Rendering on the GPU Sarah Tariq NVIDIA Motivation Academia and the movie industry have been simulating and rendering impressive and realistic hair for a long time We have demonstrated realistic

More information

Optimisation. CS7GV3 Real-time Rendering

Optimisation. CS7GV3 Real-time Rendering Optimisation CS7GV3 Real-time Rendering Introduction Talk about lower-level optimization Higher-level optimization is better algorithms Example: not using a spatial data structure vs. using one After that

More information

Basics of GPU-Based Programming

Basics of GPU-Based Programming Module 1: Introduction to GPU-Based Methods Basics of GPU-Based Programming Overview Rendering pipeline on current GPUs Low-level languages Vertex programming Fragment programming High-level shading languages

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring

More information

Feeding the Beast: How to Satiate Your GoForce While Differentiating Your Game

Feeding the Beast: How to Satiate Your GoForce While Differentiating Your Game GDC Europe 2005 Feeding the Beast: How to Satiate Your GoForce While Differentiating Your Game Lars M. Bishop NVIDIA Embedded Developer Technology 1 Agenda GoForce 3D capabilities Strengths and weaknesses

More information

Working with Metal Overview

Working with Metal Overview Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

Dynamic Texturing. Mark Harris NVIDIA Corporation

Dynamic Texturing. Mark Harris NVIDIA Corporation Dynamic Texturing Mark Harris NVIDIA Corporation What is Dynamic Texturing? The creation of texture maps on the fly for use in real time. A simplified view: Loop: Render an image. Create a texture from

More information

MAXIS-mizing Darkspore*: A Case Study of Graphic Analysis and Optimizations in Maxis Deferred Renderer

MAXIS-mizing Darkspore*: A Case Study of Graphic Analysis and Optimizations in Maxis Deferred Renderer MAXIS-mizing Darkspore*: A Case Study of Graphic Analysis and Optimizations in Maxis Deferred Renderer A New Gaming Experience Made Possible With Processor Graphics Released in early 2011, the 2nd Generation

More information

Shaders in Eve Online Páll Ragnar Pálsson

Shaders in Eve Online Páll Ragnar Pálsson Shaders in Eve Online Páll Ragnar Pálsson EVE Online Eve Online Trinity First released 2003 Proprietary graphics engine DirectX 9 (DX11 on its way) Shader Model 3 (4 & 5 in development) HLSL Turning this

More information

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. 1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,

More information

Introduction to Shaders.

Introduction to Shaders. Introduction to Shaders Marco Benvegnù hiforce@gmx.it www.benve.org Summer 2005 Overview Rendering pipeline Shaders concepts Shading Languages Shading Tools Effects showcase Setup of a Shader in OpenGL

More information

ATI RenderMonkey IDE Version 1.62

ATI RenderMonkey IDE Version 1.62 ATI RenderMonkey IDE Version 1.62 Introduction... 5 What s New... 6 Overview of New Features in RenderMonkey 1.62... 7 Shader Editor...7 DirectX / OpenGL Preview Window...7 DirectX Preview Window...7 FX

More information

Programming Graphics Hardware

Programming Graphics Hardware Tutorial 5 Programming Graphics Hardware Randy Fernando, Mark Harris, Matthias Wloka, Cyril Zeller Overview of the Tutorial: Morning 8:30 9:30 10:15 10:45 Introduction to the Hardware Graphics Pipeline

More information

Texturing Theory. Overview. All it takes is for the rendered image to look right. -Jim Blinn 11/10/2018

Texturing Theory. Overview. All it takes is for the rendered image to look right. -Jim Blinn 11/10/2018 References: Real-Time Rendering 3 rd Edition Chapter 6 Texturing Theory All it takes is for the rendered image to look right. -Jim Blinn Overview Introduction The Texturing Pipeline Example The Projector

More information

Optimizing Direct3D for the GeForce 256 Douglas H. Rogers Please send me your comments/questions/suggestions

Optimizing Direct3D for the GeForce 256 Douglas H. Rogers Please send me your comments/questions/suggestions Optimizing Direct3D for the GeForce 256 Douglas H. Rogers Please send me your comments/questions/suggestions drogers@nvidia.com Transform and Lighting (T&L) Acceleration under Direct3D To enable hardware

More information

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology Graphics Performance Optimisation John Spitzer Director of European Developer Technology Overview Understand the stages of the graphics pipeline Cherchez la bottleneck Once found, either eliminate or balance

More information

3D buzzwords. Adding programmability to the pipeline 6/7/16. Bandwidth Gravity of modern computer systems

3D buzzwords. Adding programmability to the pipeline 6/7/16. Bandwidth Gravity of modern computer systems Bandwidth Gravity of modern computer systems GPUs Under the Hood Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology The bandwidth between key components

More information

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Shadow Buffer Theory Observation:

More information

Deferred Rendering Due: Wednesday November 15 at 10pm

Deferred 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 information

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center 3D Computer Games Technology and History VRVis Research Center Lecture Outline Overview of the last ten years A look at seminal 3D computer games Most important techniques employed Graphics research and

More information

Adding Spherical Harmonic Lighting to the Sushi Engine. Chris Oat 3D Application Research Group. ATI Research, Inc.

Adding Spherical Harmonic Lighting to the Sushi Engine. Chris Oat 3D Application Research Group. ATI Research, Inc. Adding Spherical Harmonic Lighting to the Sushi Engine Chris Oat 3D Application Research Group ATI Research, Inc. Overview Introduction & Motivation Quick Review of PRT Case Study : ATI s demo engine Sushi

More information

Profiling and Debugging Games on Mobile Platforms

Profiling and Debugging Games on Mobile Platforms Profiling and Debugging Games on Mobile Platforms Lorenzo Dal Col Senior Software Engineer, Graphics Tools Gamelab 2013, Barcelona 26 th June 2013 Agenda Introduction to Performance Analysis with ARM DS-5

More information

Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons. Abstract. 2. Related studies. 1.

Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons. Abstract. 2. Related studies. 1. Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons sub047 Abstract BTF has been studied extensively and much progress has been done for measurements, compression

More information

Rendering Objects. Need to transform all geometry then

Rendering Objects. Need to transform all geometry then Intro to OpenGL Rendering Objects Object has internal geometry (Model) Object relative to other objects (World) Object relative to camera (View) Object relative to screen (Projection) Need to transform

More information

Realistic and Fast Cloud Rendering in Computer Games. Niniane Wang Software Engineer Microsoft Flight Simulator (now at Google Inc) Intro Video

Realistic and Fast Cloud Rendering in Computer Games. Niniane Wang Software Engineer Microsoft Flight Simulator (now at Google Inc) Intro Video Realistic and Fast Cloud Rendering in Computer Games Niniane Wang Software Engineer Microsoft Flight Simulator (now at Google Inc) Intro Video 1 Agenda Previous Work 3-D Modeling + Art Pipeline Performance

More information

DirectX10 Effects. Sarah Tariq

DirectX10 Effects. Sarah Tariq DirectX10 Effects Sarah Tariq Motivation Direct3D 10 is Microsoft s next graphics API Driving the feature set of next generation GPUs New driver model Improved performance Many new features New programmability,

More information

How to Work on Next Gen Effects Now: Bridging DX10 and DX9. Guennadi Riguer ATI Technologies

How to Work on Next Gen Effects Now: Bridging DX10 and DX9. Guennadi Riguer ATI Technologies How to Work on Next Gen Effects Now: Bridging DX10 and DX9 Guennadi Riguer ATI Technologies Overview New pipeline and new cool things Simulating some DX10 features in DX9 Experimental techniques Why This

More information

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Overview Games Yesterday & Today Game Components PC Platform & WGF 2.0 Game Trends Big Challenges

More information

CS 4620 Program 3: Pipeline

CS 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 information

Shader Programming CgFX, OpenGL 2.0. Michael Haller 2003

Shader Programming CgFX, OpenGL 2.0. Michael Haller 2003 Shader Programming CgFX, OpenGL 2.0 Michael Haller 2003 Outline What is CgFX? CgFX runtime Production pipeline with CgFX CgFX Tools set OpenGL 2.0 What is CgFX? CgFX (C for Graphics Effekt File) Supports

More information

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games Bringing AAA graphics to mobile platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Platform team at Epic Games Unreal Engine 15 years in the industry 30 years of programming

More information

Monday Morning. Graphics Hardware

Monday Morning. Graphics Hardware Monday Morning Department of Computer Engineering Graphics Hardware Ulf Assarsson Skärmen består av massa pixlar 3D-Rendering Objects are often made of triangles x,y,z- coordinate for each vertex Y X Z

More information

Sign up for crits! Announcments

Sign up for crits! Announcments Sign up for crits! Announcments Reading for Next Week FvD 16.1-16.3 local lighting models GL 5 lighting GL 9 (skim) texture mapping Modern Game Techniques CS248 Lecture Nov 13 Andrew Adams Overview The

More information

Ruby: Dangerous Curves Effects Breakdown: How d they do that? Dan Ginsburg 3D Application Research Group

Ruby: Dangerous Curves Effects Breakdown: How d they do that? Dan Ginsburg 3D Application Research Group Ruby: Dangerous Curves Effects Breakdown: How d they do that? Dan Ginsburg 3D Application Research Group Overview > RhinoFX/ATI relationship > Ruby shot-by-shot breakdown > Glows > Motion Blur > Reflections

More information

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc.

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc. OpenGL ES 2.0 : Start Developing Now Dan Ginsburg Advanced Micro Devices, Inc. Agenda OpenGL ES 2.0 Brief Overview Tools OpenGL ES 2.0 Emulator RenderMonkey w/ OES 2.0 Support OpenGL ES 2.0 3D Engine Case

More information

AGDC Per-Pixel Shading. Sim Dietrich

AGDC Per-Pixel Shading. Sim Dietrich AGDC Per-Pixel Shading Sim Dietrich Goal Of This Talk The new features of Dx8 and the next generation of HW make huge strides in the area of Per-Pixel Shading Most developers have yet to adopt Per-Pixel

More information

printf Debugging Examples

printf Debugging Examples Programming Soap Box Developer Tools Tim Purcell NVIDIA Successful programming systems require at least three tools High level language compiler Cg, HLSL, GLSL, RTSL, Brook Debugger Profiler Debugging

More information

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Mali Developer Resources. Kevin Ho ARM Taiwan FAE Mali Developer Resources Kevin Ho ARM Taiwan FAE ARM Mali Developer Tools Software Development SDKs for OpenGL ES & OpenCL OpenGL ES Emulators Shader Development Studio Shader Library Asset Creation Texture

More information

Canonical Shaders for Optimal Performance. Sébastien Dominé Manager of Developer Technology Tools

Canonical Shaders for Optimal Performance. Sébastien Dominé Manager of Developer Technology Tools Canonical Shaders for Optimal Performance Sébastien Dominé Manager of Developer Technology Tools Agenda Introduction FX Composer 1.0 High Performance Shaders Basics Vertex versus Pixel Talk to your compiler

More information

GCN Performance Tweets AMD Developer Relations

GCN Performance Tweets AMD Developer Relations AMD Developer Relations Overview This document lists all GCN ( Graphics Core Next ) performance tweets that were released on Twitter during the first few months of 2013. Each performance tweet in this

More information

Baback Elmieh, Software Lead James Ritts, Profiler Lead Qualcomm Incorporated Advanced Content Group

Baback Elmieh, Software Lead James Ritts, Profiler Lead Qualcomm Incorporated Advanced Content Group Introduction ti to Adreno Tools Baback Elmieh, Software Lead James Ritts, Profiler Lead Qualcomm Incorporated Advanced Content Group Qualcomm HW Accelerated 3D: Adreno Moving content-quality forward requires

More information

NVIDIA Tools for Artists

NVIDIA Tools for Artists NVIDIA Tools for Artists GPU Jackpot October 2004 Will Ramey Why Do We Do This? Investing in Developers Worldwide Powerful tools for building games Software Development Content Creation Performance Analysis

More information

Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics. Sean Ellis Consultant Graphics Engineer ARM, Maidenhead

Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics. Sean Ellis Consultant Graphics Engineer ARM, Maidenhead Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics Sean Ellis Consultant Graphics Engineer ARM, Maidenhead Introduction M3G 1.x Recap ARM M3G Integration M3G 2.0 Update

More information

Lecture 25: Board Notes: Threads and GPUs

Lecture 25: Board Notes: Threads and GPUs Lecture 25: Board Notes: Threads and GPUs Announcements: - Reminder: HW 7 due today - Reminder: Submit project idea via (plain text) email by 11/24 Recap: - Slide 4: Lecture 23: Introduction to Parallel

More information

Hardware-Assisted Relief Texture Mapping

Hardware-Assisted Relief Texture Mapping EUROGRAPHICS 0x / N.N. and N.N. Short Presentations Hardware-Assisted Relief Texture Mapping Masahiro Fujita and Takashi Kanai Keio University Shonan-Fujisawa Campus, Fujisawa, Kanagawa, Japan Abstract

More information

GPU Memory Model. Adapted from:

GPU Memory Model. Adapted from: GPU Memory Model Adapted from: Aaron Lefohn University of California, Davis With updates from slides by Suresh Venkatasubramanian, University of Pennsylvania Updates performed by Gary J. Katz, University

More information

Game Architecture. 2/19/16: Rasterization

Game Architecture. 2/19/16: Rasterization Game Architecture 2/19/16: Rasterization Viewing To render a scene, need to know Where am I and What am I looking at The view transform is the matrix that does this Maps a standard view space into world

More information

Soft Particles. Tristan Lorach

Soft Particles. Tristan Lorach Soft Particles Tristan Lorach tlorach@nvidia.com January 2007 Document Change History Version Date Responsible Reason for Change 1 01/17/07 Tristan Lorach Initial release January 2007 ii Abstract Before:

More information

EDAF80 Introduction to Computer Graphics. Seminar 3. Shaders. Michael Doggett. Slides by Carl Johan Gribel,

EDAF80 Introduction to Computer Graphics. Seminar 3. Shaders. Michael Doggett. Slides by Carl Johan Gribel, EDAF80 Introduction to Computer Graphics Seminar 3 Shaders Michael Doggett 2017 Slides by Carl Johan Gribel, 2010-13 Today OpenGL Shader Language (GLSL) Shading theory Assignment 3: (you guessed it) writing

More information

Shading Languages for Graphics Hardware

Shading Languages for Graphics Hardware Shading Languages for Graphics Hardware Bill Mark and Kekoa Proudfoot Stanford University Collaborators: Pat Hanrahan, Svetoslav Tzvetkov, Pradeep Sen, Ren Ng Sponsors: ATI, NVIDIA, SGI, SONY, Sun, 3dfx,

More information

NVIDIA Developer Toolkit. March 2005

NVIDIA Developer Toolkit. March 2005 NVIDIA Developer Toolkit March 2005 1 Why Do We Do This? Investing in Developers Worldwide Powerful tools for building games Performance Analysis Content Creation Software Development Practical SDK with

More information

Interactive Cloth Simulation. Matthias Wloka NVIDIA Corporation

Interactive Cloth Simulation. Matthias Wloka NVIDIA Corporation Interactive Cloth Simulation Matthias Wloka NVIDIA Corporation MWloka@nvidia.com Overview Higher-order surfaces Vertex-shader deformations Lighting modes Per-vertex diffuse Per-pixel diffuse with bump-map

More information

Shaders (some slides taken from David M. course)

Shaders (some slides taken from David M. course) Shaders (some slides taken from David M. course) Doron Nussbaum Doron Nussbaum COMP 3501 - Shaders 1 Traditional Rendering Pipeline Traditional pipeline (older graphics cards) restricts developer to texture

More information

Shading Shades. Frank Jargstorff. June 1, Abstract

Shading Shades. Frank Jargstorff. June 1, Abstract Shading Shades Frank Jargstorff fjargstorff@nvidia.com June 1, 2004 Abstract Procedural material shaders continue to pop up since the advent of fragment programmability. Most of these shaders concentrate

More information

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques Jonathan Zarge, Team Lead Performance Tools Richard Huddy, European Developer Relations Manager ATI

More information

Real-Time Hair Simulation and Rendering on the GPU. Louis Bavoil

Real-Time Hair Simulation and Rendering on the GPU. Louis Bavoil Real-Time Hair Simulation and Rendering on the GPU Sarah Tariq Louis Bavoil Results 166 simulated strands 0.99 Million triangles Stationary: 64 fps Moving: 41 fps 8800GTX, 1920x1200, 8XMSAA Results 166

More information

Lesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117

Lesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117 Table of Contents Project 01 Lesson 01 Polygon Basics 17 Lesson 02 Modeling a Body 27 Lesson 03 Modeling a Head 63 Lesson 04 Polygon Texturing 87 Project 02 Lesson 05 NURBS Basics 117 Lesson 06 Modeling

More information

CS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL

CS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL CS4621/5621 Fall 2015 Computer Graphics Practicum Intro to OpenGL/GLSL Professor: Kavita Bala Instructor: Nicolas Savva with slides from Balazs Kovacs, Eston Schweickart, Daniel Schroeder, Jiang Huang

More information

Mattan Erez. The University of Texas at Austin

Mattan Erez. The University of Texas at Austin EE382V (17325): Principles in Computer Architecture Parallelism and Locality Fall 2007 Lecture 11 The Graphics Processing Unit Mattan Erez The University of Texas at Austin Outline What is a GPU? Why should

More information

Introduction to the Direct3D 11 Graphics Pipeline

Introduction to the Direct3D 11 Graphics Pipeline Introduction to the Direct3D 11 Graphics Pipeline Kevin Gee - XNA Developer Connection Microsoft Corporation 2008 NVIDIA Corporation. Direct3D 11 focuses on Key Takeaways Increasing scalability, Improving

More information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

More information

Pump Up Your Pipeline

Pump Up Your Pipeline Pump Up Your Pipeline NVIDIA Developer Tools GPU Jackpot October 4004 Will Ramey Why Do We Do This? Investing in Developers Worldwide Powerful tools for building games Software Development Content Creation

More information

GPU Computation Strategies & Tricks. Ian Buck NVIDIA

GPU Computation Strategies & Tricks. Ian Buck NVIDIA GPU Computation Strategies & Tricks Ian Buck NVIDIA Recent Trends 2 Compute is Cheap parallelism to keep 100s of ALUs per chip busy shading is highly parallel millions of fragments per frame 0.5mm 64-bit

More information

3D Rendering Pipeline

3D Rendering Pipeline 3D Rendering Pipeline Reference: Real-Time Rendering 3 rd Edition Chapters 2 4 OpenGL SuperBible 6 th Edition Overview Rendering Pipeline Modern CG Inside a Desktop Architecture Shaders Tool Stage Asset

More information

Advanced Shading and Texturing

Advanced Shading and Texturing Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall Advanced Shading and Texturing 1 Topics Features Bump mapping Environment mapping Shadow

More information

character design pipeline) callum.html

character design pipeline)   callum.html References: http://3d.about.com/od/3d-101-the-basics/tp/introducing-the-computer-graphics- Pipeline.htm (character design pipeline) http://cpapworthpp.blogspot.co.uk/2012/12/animation-production-pipelinecallum.html

More information

Windowing System on a 3D Pipeline. February 2005

Windowing System on a 3D Pipeline. February 2005 Windowing System on a 3D Pipeline February 2005 Agenda 1.Overview of the 3D pipeline 2.NVIDIA software overview 3.Strengths and challenges with using the 3D pipeline GeForce 6800 220M Transistors April

More information

DirectX10 Effects and Performance. Bryan Dudash

DirectX10 Effects and Performance. Bryan Dudash DirectX10 Effects and Performance Bryan Dudash Today s sessions Now DX10のエフェクトとパフォーマンスならび使用法 Bryan Dudash NVIDIA 16:50 17:00 BREAK 17:00 18:30 NVIDIA GPUでの物理演算 Simon Green NVIDIA Motivation Direct3D 10

More information

Introduction to 3D Graphics

Introduction to 3D Graphics Graphics Without Polygons Volume Rendering May 11, 2010 So Far Volumetric Rendering Techniques Misc. So Far Extended the Fixed Function Pipeline with a Programmable Pipeline Programming the pipeline is

More information