Game Programming for the PC and XBox

Size: px
Start display at page:

Download "Game Programming for the PC and XBox"

Transcription

1 Game Programming for the PC and XBox May Tutor: Dr Shovman Mark Student Name: Anastasios Giannakopoulos Student Number: Module No: AG1102A

2 Table of Contents Introduction... 2 Project goal... 2 Application usage and controls... 2 Player mode:... 2 Debug mode:... 2 Framework design and development... 3 SCTMath... 3 SCTCore... 3 SCTEngine... 4 Input Subsystem... 4 Scene Subsystem... 4 Resource Subsystem... 5 Render Subsystem... 5 PCG Subsystem... 6 Third-Party libraries... 6 Procedural Content Generation... 7 Terrain Generation... 7 Procedure... 7 Other functionality... 7 Usage... 8 Examples... 9 Vegetation Post Processing Depth of field References General references Source code Terrain PCG generation Random forest scattering Depth of field D models Third Party Libraries Appendix I: Project compilation Appendix II: Known issues

3 Introduction Project goal The goal of this project is to research advanced techniques for procedural terrain and vegetation generation. Also ways to control the procedural generation are investigated, specifically the use of an image (elevation map) to control the height of the terrain in specific areas. Three algorithms have been implemented for terrain generation (Diamond square, faulting and advanced particle deposition), however only two are used due to problems of the advanced particle deposition algorithm. For vegetation generation, the random scattering technique has been researched, implemented and enhanced with ways to control the scattering (statistics of different vegetation entities and relationships between them). Also post processing visual effects have been investigated. Specifically a depth of field visual effect has been implemented, using a blurred version of the scene and the Z buffer to render the out of focus areas. Application usage and controls The result is a playable demo using a redesigned and re-implemented Directx 10 framework based on the material of the previous semester (SCTEngine). Player mode: W,A,S,D : Move Mouse: Look around Space: Jump Left Ctrl: Crouch Left mouse: Shoot Shift: Accelerate Debug mode: C: toggle camera between debug (free roaming) and player (First person). Initial state of the application is on the debug camera. In order to use the debug rendering features of the framework, the post processing needs to be disabled (H). B: render bounds, N: render normals, M: render wireframe, G: render debug texture, H: toggle post processing on/off, K: toggle statistics on/off. 2

4 Framework design and development The framework used for this project (SCTEngine v2) is based on previous semester s material. However the framework has been redesigned from scratch, to allow the use of advanced Directx 10 features with ease. All the Direct3D functionality has been abstracted with the use of interfaces. This way, the engine can be extended in the future to support other graphic API such as OpenGL. The SCTEngine v2 is composed of 3 libraries. The Math library (SCTMath), the Core library (SCTCore) and the main engine (SCTEngine). SCTMath The Math library, as the name suggests, contains the necessary math classes that are used throughout the engine. Most of the code for the library has been taken from the source code of the book Ultimate 3D Game Engine Design & Architecture [8] and the open source Ogre3D [7] graphics engine. The code has been adapted to the coding standards of SCTEngine v2. However the library is not complete, since only the elements that are used for this project are include, these are: Matrix4, Vector2, Vector3, BoundingBox (axis-aligned), Ray, Plane, ColorRGBA, Quaternion, Frustum. SCTCore The majority of the Core library has remained almost unchanged from the previous version. It has been reorganized and new functionality has been added. SCTStatistics: The SCTStatistics class encapsulates functions to calculate frame rate per second and CPU usage. SCTLogManager: The log manager enables a debug console (only for debug builds), and functions to print formatted messages to that console. Image 1: SCTCore library classs diagram SCTFileManager: File I/O SCTWindows: Handles the creation of the main render window and all the windows (Win32 API) callback functions. The configuration dialog from the previous version has been removed, however it can easily be re-implemented since the engine is designed in that way. 3

5 SCTImageLoader: This is a new class created for the needs of this project. It uses the DevIL (Developers Image Library) [3] to load the raw data of an image. SCTStringHelper: Contains functions to convert strings from Unicode to ASCII and vice-versa. of the engine s type definitions in SCTTypes.h, general engine SCTTime: High definition timer. The core library also includes most configuration in SCT.h and platform specific configuration in SCTPlatform.h. SCTEngine As mentioned previously, the engine has been redesigned to use the power of C++ interfaces to abstract the DirectX functionality. The following diagram shows the engine s subsystems. To access each subsystem easily, the manager classes are Singleton classes (SCTInputManager, SCTSceneManager, SCTRenderInterface, SCTResourceManager, SCTTerrain, SCTVegetation). Image 2: SCTEngine Subsystem diagram Input Subsystem SCTInputManager: handles and gives access to the keyboard and mouse interfaces. For the keyboard and mouse, only the win32 implementation has been included, using Microsoft s DirectInput8 library. Scene Subsystem SCTSceneManager: The scene manager handles and gives access to all the objects in the virtual world (scene). It uses a tree data structure, with a SCTSceneNode at each tree node. The scene manager contains only a pointer to the scenee root node, and through that node we can get access to every scene node. To access the scene nodes, a Depth-First tree traversal algorithm is used. In addition, a function to 4

6 check for intersection between a ray and all the triangles of a node s mesh is included (CheckIntersection function). This function returns a list with all the intersections of the ray with that mesh. The SCTSceneNode class contains a pointer to the data of that node (currently only SCTMesh), the local to world matrix of this node, which positions and orients the node in the scene. Also a list of all the children nodes of this node is included. Resource Subsystem SCTResourceManager: The resource manager handles all the resource loading and unloading, as well as resource double-checking. This way we make sure that every resource used in the game is only loaded once and gets correctly unloaded, without leaving memory leaks. It does that quite easily by keeping all the loaded resources in a std::map using as a key the filename. Since all the resources used are in the same directory (./Media/) we make sure that nothing has been loaded twice. In addition, the use of the map gives quick access to all the loaded resources (using a Handle instead of string as a key would be an optimization). The SCTShader, SCTMesh, SCTTexture classes are interfaces to abstract the use of the Direct3D api. The SCTMesh interface is divided into two interfaces, the submesh and the Mesh interfaces. The submesh interface contains all the geometry of the model (vertex buffer, index buffer), the material used by that submesh and an axis-aligned bounding box. The mesh class contains a list with all the submeshes that compose this model. To load a mesh the assimp [] library is being used. Assimp library is a great library to load many different 3D models, however after experimentation and loading a lot of different formats, the COLLADA format (Open Collada exporter in Autodesk Maya) has been found to work better (both mesh and material loading). The submesh D3D10 implementation uses plain ID3D10Buffer, instead of the ID3DXMesh interface used in the previous project. The SCTShader interface is a generic shader interface that handles the loading of shaders (only HLSL currently). Since the use of an elaborate shader management system is not in the scope of this project, every different shader that is used derives from the SCTShader interface (specifically SCTShaderD3D10 for Direct3D 10 implementation). The SCTShaderD3D10 contains all the generic code for the shaders (load from file, using specific input layouts, initializing the shader). In this project only four different shaders are used (SCTShaderD3D10Lighting, SCTShaderD3D10Wireframe, SCTShaderD3D10PostEffect and SCTShaderD3D10Skybox). Render Subsystem The render subsystem encapsulates all the functionality to render a submesh to the render window or a render target. It also contains functions to render debug objects (such as wireframe, normals and bounding boxes). The SCTRenderInterface as the name suggests is coded as an interfaces and only the direct implementation is included (SCTRenderInterfaceD3D10). 5

7 The SCTInputLayout contains different input layout descriptions used to correctly render geometry (shader and input assembler). The SCTRenderTarget is a simple 2D quad rendered with an orthographic projection to the screen, which allows us to render post effects to the screen. The SCTRenderTexture derives from SCTRenderTarget and contains a texture to where the scene or anything we would like to be rendered is rendered. This interface is being used for the post effects in the game. PCG Subsystem The Procedural Content Generation subsystem contains the two managers (SCTTerrain and SCTVegetation) that handle the advanced procedural content creating and placement in the game. Their functionality and usage will be described in the next section Third-Party libraries The following 3 rd party libraries have been used in the SCTEngine v2. Links for the libraries are provided in the References section. Assimp (version ): To load 3D models and its materials. Open collada (.dae) format is being used. DevIL (Developers Image Library version 1.7.8): To get the raw image data for the elevation map used to control the procedural generation of the terrain. Vld (Visual Leak Detector version 2.2.2): To locate memory leaks 6

8 Procedural Content Generation This project is mostly focused in advanced terrain generation and controlling it through an image (elevation map), and procedural placement of vegetation. Terrain Generation The SCTTerain class (PCG subsystem), handles completely the generation and control of the terrain. It encapsulates functions to generate the terrain (Fautling and Diamond square algorithms), to smooth the terrain, process the raw data of an image (elevation map) and convert them to displacement values used by the system to control the elevation. It also contains functions to generate the terrain normals, tangents and binormals (for use in lighting and bump mapping). Procedure The terrain manager always generates the terrain following the same procedure: First the grid is created using a quilt pattern (index buffer). Then the loaded image (elevation map) is converted to displacement values. This is done quite simply: the color Red is being converted to displacement values between [0.6, 0.8], green to [0, 0.1], and blue to [-0.4, -0.3]. These values have been selected after a lot of experimentation for specific elevation maps and are not necessary correct for every possible map. However they can easily be changed, if necessary. The next step of the algorithm is the actual generation of the terrain. For this step the Diamond square algorithm is used. The only modification of the algorithm is the use of the displacement values to weight the height of each pixel. Since the elevation map image is scaled to the size of the terrain, there is always one displacement value for every vertex in the grid. After the generation of the terrain with the diamond square algorithm, a few passes of the faulting algorithm is applied to the grid. Finally, up to five smooth passes can be applied to the terrain to smooth it out. The algorithm used here is a blur algorithm (left to right and top to bottom). Other functionality Some algorithms have not been fully developed and so, even thought the code is included they are not used by the system. One is an advanced particle deposition algorithm. The idea for this algorithm was to drop a particle in radius and make it drop down following random routes. This way realistic eroded terrain could have been generated, however because there were problems in visiting recursively only once all the neighbors in the radius of the dropped particle, the algorithm was abandoned. The function GetTerrainHeight() which should return the height of the terrain at a current position (x,z) using linear interpolation of the heights of the current terrain cell has also been abandoned since it didn t return the correct height. For this reason, ray casting against the terrain is being used to get the 7

9 current height, however is computationally more expensive, since it checks with all the triangles in the terrain. Usage Generating a terrain is as simple as filling a structure (PCG::SCTTerrainConfig) with all the necessary information and calling the GenerateTerrain() function of the terrain manager. Image 3: Terrain configuration structure Every step of the terrain generation algorithm can be configured through the SCTTerrainConfig structure. If an elevation map is not used, then the terrain is generated using a constant displacement value of one. The resulting terrain cannot be controlled to plains, mountains and sea. Using the elevation map, however, we can control up to some extend the way the terrain will look. An elevation map is composed of the tree basic colors (Red, Green and Blue). Red color defines high elevation (mountains), green, low (plains) and blue, negative elevation (sea, lakebeds). Sometimes the use of an elevation map produces artifacts because it is used with the diamond square algorithm, which they are not noticeable when the user walks on the terrain. 8

10 Examples The following images show the generation of different terrains using the terrain generation system. Four different elevation maps are used. Image 4: Elevation Map #1 Image 5: Result of elevation map 1 on Diamond square algorithm Image 4: Elevation Map #2 Image 5: Result of elevation map 2 on Diamond square algorithm 9

11 Image 8: Elevation Map #3 Image 9: Result of elevation map 3 on Diamond square algorithm Image 10: Elevation Map #4 Image 11: Result of elevation map 4 on Diamond square algorithm In the examples above we can see clearly that the algorithm doesn t cope well with negative elevations (sea). The Diamond square algorithm is not the best algorithm to use alongside an elevation map, due to its nature. The algorithm works by subdividing the grid in half the size and elevating the middle point averaging the heights of the square corners. It also elevates the middle points between the corners. Using an elevation map with this algorithm produces artifacts like the one in image 11 (straight line in the middle of the terrain). It also produces rough negative elevations (images 5, 9). However the overall terrain looks realistic, and most of the time in correlation with the elevation map. Also the artifacts mentioned above are not noticeable when the player walks on the terrain. 10

12 Vegetation The vegetation system is based on the random scattering algorithm using a radius and different entities as presented in [16]. The idea is to be able to populate a map with vegetation using a few 3D models, and a set of rules. Specifically in the SCTVegetation system, the user has the ability to create vegetation entities from loaded 3D models. Every vegetation entity has a type (tree, foliage or misc), a min and a max radius and a y offset. In order to create the vegetation, a patch of a terrain (or grid) is needed so the vegetation manager can place the entities on the correct height (using raycasting to get the terrain height). The y offset of each entity defines how far above or beyond the ground (height offset of terrain) that entity has to go. Before we explain the role of the min, max radius and the vegetation entity type, let s take a look at the configuration entity o the SCTVegetation system. The size variable defines the size of the terrain patch (in our demo same as the terrain). The iterations defines how many entities the system will try to place on the terrain, The rest variables define the percentage of each type of vegetation entities we want to place on our scene, if of course entities of the appropriate type are available. The last step of configuration for the vegetation system is a set of relationships between the existing Image 6: Vegetation configuration entities. These Image 7: Vegetation entities relationships relationships define which one of the two radiuses set (min, max) will be used to check the current entity against all the entities in the scene. Simply put, if two entities are related, the max radius will be used to distance them in the map, if they are not related, then the min radius can be used. In this way, we can put trees far away from each other, while keeping foliage as near as possible. Since foliage grows near trees, this is a more realistic result. The first three rules in image make sure that no trees, foliage or crates will overlap, while still foliage and crates can be placed near the trees. Before showing some examples of the system in use, it s important to note that the algorithm will not always place as many entities as requested. Let s consider the example of placing many trees in a small terrain patch with each tree using a big radius. After the placement of some entities, the algorithm would fall in an infinite loop trying to find an appropriate position to place the tree, without any luck. The vegetation system has been designed in a way to respect the predefined user statistics while placing as many entities as possible. This is done quite simply; the algorithm tries to place an entity, if it fails to find an appropriate position after 50 tries, it gives up and chooses a new type of entity. 11

13 In the following examples we can see the Vegetation system in use. Bound boxes are used to distinguish the different vegetation entities. Image 8: example 1, configuration Image 7: Example 1, Result (statistics) Image 8: Example 1, Result (top view with bounding boxes) In example 1 we can see that the system respected the predefined statistics (48 trees instead of 50), even though it could not place as many entities as the user wanted (98 instead of 100). Image 9: Example 2, configuration Image 0: Example 2, Result (statistics) Image 11: Example 2, Result (top view) 12

14 Post Processing Depth of field Depth of field is and advanced visual effect in which objects within some range from the camera appear in focus, and objects out of this range appear out of focus. There are various different implementations of this technique, such as Foreword-mapped and Reverse-mapped Z-buffer techniques. For this implementation we use a three step blur-buffer with depth checking technique. In this way, the scene if first rendered to a render target and the back buffer. Then the render target gets blurred with Gaussian blur and is rendered on top of the not blurred scene using the depth buffer values to define the alpha value of each pixel. Step 1: Render both the scene and the depth value to a SCTRenderTexture. Render the SCTRenderTexture of the scene to the back buffer (instead of rendering the scene twice) Step 2: Downscale the scene s SCTRenderTexture, pass the depth buffer to the shader and apply Horizontal and Vertical weighted Gaussian blur (the blur is weighted using depth buffer values). Step 3: With the original scene in the back buffer, pass the Depth values texture and the blurred texture to the shader and apply the depth of field post effect. The depth buffer values are modified using a near and far distance and a range. The fblurfactor below becomes the alpha value of the current pixel on the blurred texture. In this way, we partially render the blurred texture on top of the original scene. float fblurfactor = clamp(1, 0, (fdepth - neardist) / nearrange); Image 9: The scene blurred with 1 pass of weighted gaussian blur Image 10: Depth values, rendered to texture It is important to note that the depth buffer is generated by rendering the Z value of each pixel to a texture instead of using the actual Z buffer. We use the alpha values of each diffuse texture (example leaves) to discard pixels with alpha values. If this wasn t done, instead of individual leaves in the depth buffer, we would have quads (quads on which the leaves are rendered on), which would generate artifacts in the Depth of Field effect. 13

15 Image 12: Depth of field example Image 11: Depth of field example Image 13: Depth of field example 14

16 References General references [1] Sebastien St-Laurent (2004). Shaders for game programmers and artists. Boston, Ma.: Thomson/Course Technology. [2] Sebastien St-Laurent (2005). The Complete Effect and HLSL Guide. Redmond, WA: Paradoxal Press. [3] Eric Lengyel (2004). Mathematics for 3D game programming and computer graphics. 2nd ed. Hingham, Mass.: Charles River Media. [4] Eberly, David H. (2007). 3D game engine design : a practical approach to real-time computer graphics. London: Morgan Kaufmann, [5] Jason Gregory (2009). Game engine architecture. Wellesley, Mass.: A K Peters. [6] Allen Sherrod (2007). Ultimate 3D game engine design & architecture. Boston, Mass.: Charles River Media. Source code [7] Ogre3D source code, [8] Building Blogs engine, source code from book [6] Terrain PCG generation [9] DeLoura, Mark. (2000). Game programming gems. Charles River Media , articles by Shankel Jason and Guy W. Lecky-Thompson [10] Game programming Gems 5 advanced particle deposition [11] Gregory Snook (2003). Real-time 3D terrain engines using C++ and DirectX 9. Hingham, Mass.: Charles River Media. [12] Trent Polack (2003). Focus on 3d terrain programming. Cincinnati, Ohio: Premier Press. [13] Post by user Koder4Fun, Calculating generated terrain s tangent, [14] Calculating terrain normals, [15] Helpful posts by users in calculating terrain normals, calculate-terrain-normals/ Random forest scattering [16] Mick West. (2008). Random Scattering: Creating Realistic Landscapes. Available: 15

17 Depth of field [17] Joe Demers. (2004). Chapter 23. Depth of Field: A Survey of Techniques. Available: [18] Unknown author, Depth Of Field Sample. Available: [19] racoonacoon. (2011). Getting Direct Access to the DepthBuffer in DirectX10. Available: 3D models [20] All of the models used in the demo have been downloaded from and converted to COLLADA (.dae) format, using the Open collada exporter ( in Autodesk Maya Third Party Libraries [21]Assimp 3D model loading library, [22] DEVelopers Image Library, [23] Visual Leak Detector, 16

18 Appendix I: Project compilation Assimp library wasn t included in the submission of the final project because of its size. In order to compile the project, assimp version needs to be downloaded and placed under ThirdParty\assimp_ In assimp workspaces\vc9 directory the visual studio 2008 (assimp.sln) project needs to be converted to a visual studio 2010 project. For the project, the release-no-boost and debug-no-boost configurations are used. The final assimp.lib file needs to be copied from assimp_ \lib\assimp_debug-noboost-st_win32\ to assimp_ \lib\. For SCTEngine_v2 to be compiled, only the assimp solution needs to be compiled (no viewer or tools). Finally all the media from Release\Media\ needs to be copied in SCTApp\Media\. 17

19 Appendix II: Known issues Memory leaks because of issues in the material allocation and release of assimp. Weapon doesn t render correctly on top of all the geometry. The screenshot bellow demonstrates the issue. The weapon gets submerged into the terrain. 18

Rendering Grass with Instancing in DirectX* 10

Rendering Grass with Instancing in DirectX* 10 Rendering Grass with Instancing in DirectX* 10 By Anu Kalra Because of the geometric complexity, rendering realistic grass in real-time is difficult, especially on consumer graphics hardware. This article

More information

TSBK03 Screen-Space Ambient Occlusion

TSBK03 Screen-Space Ambient Occlusion TSBK03 Screen-Space Ambient Occlusion Joakim Gebart, Jimmy Liikala December 15, 2013 Contents 1 Abstract 1 2 History 2 2.1 Crysis method..................................... 2 3 Chosen method 2 3.1 Algorithm

More information

LOD and Occlusion Christian Miller CS Fall 2011

LOD and Occlusion Christian Miller CS Fall 2011 LOD and Occlusion Christian Miller CS 354 - Fall 2011 Problem You want to render an enormous island covered in dense vegetation in realtime [Crysis] Scene complexity Many billions of triangles Many gigabytes

More information

Advanced Lighting Techniques Due: Monday November 2 at 10pm

Advanced Lighting Techniques Due: Monday November 2 at 10pm CMSC 23700 Autumn 2015 Introduction to Computer Graphics Project 3 October 20, 2015 Advanced Lighting Techniques Due: Monday November 2 at 10pm 1 Introduction This assignment is the third and final part

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

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

Terrain rendering (part 1) Due: Monday, March 10, 10pm

Terrain rendering (part 1) Due: Monday, March 10, 10pm CMSC 3700 Winter 014 Introduction to Computer Graphics Project 4 February 5 Terrain rendering (part 1) Due: Monday, March 10, 10pm 1 Summary The final two projects involves rendering large-scale outdoor

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

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 1 Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 Table of Contents 1 I. Overview 2 II. Creation of the landscape using fractals 3 A.

More information

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models 3D Programming Concepts Outline 3D Concepts Displaying 3D Models 3D Programming CS 4390 3D Computer 1 2 3D Concepts 3D Model is a 3D simulation of an object. Coordinate Systems 3D Models 3D Shapes 3D Concepts

More information

Real-Time Rendering of a Scene With Many Pedestrians

Real-Time Rendering of a Scene With Many Pedestrians 2015 http://excel.fit.vutbr.cz Real-Time Rendering of a Scene With Many Pedestrians Va clav Pfudl Abstract The aim of this text was to describe implementation of software that would be able to simulate

More information

Terrain Rendering (Part 1) Due: Thursday November 30 at 10pm

Terrain Rendering (Part 1) Due: Thursday November 30 at 10pm CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 5 November 16, 2015 Terrain Rendering (Part 1) Due: Thursday November 30 at 10pm 1 Summary The final project involves rendering large-scale

More information

Computergrafik. Matthias Zwicker. Herbst 2010

Computergrafik. Matthias Zwicker. Herbst 2010 Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Bump mapping Shadows Shadow mapping Shadow mapping in OpenGL Bump mapping Surface detail is often the result of small perturbations in

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

Full Screen Layout. Main Menu Property-specific Options. Object Tools ( t ) Outliner. Object Properties ( n ) Properties Buttons

Full Screen Layout. Main Menu Property-specific Options. Object Tools ( t ) Outliner. Object Properties ( n ) Properties Buttons Object Tools ( t ) Full Screen Layout Main Menu Property-specific Options Object Properties ( n ) Properties Buttons Outliner 1 Animation Controls The Create and Add Menus 2 The Coordinate and Viewing

More information

Spring 2009 Prof. Hyesoon Kim

Spring 2009 Prof. Hyesoon Kim Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

Mia Round Corners Node

Mia Round Corners Node Mia Round Corners Node NAKHLE Georges - july 2007 This tutorial describes how to use the mental ray MIA Round Corners node. 1) Create a polygonal cube, and make sure that mental ray plug-in is loaded.

More information

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts MSc Computer Games and Entertainment Maths & Graphics II 2013 Lecturer(s): FFL (with Gareth Edwards) Fractal Terrain Based on

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

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

Applications of Explicit Early-Z Culling

Applications of Explicit Early-Z Culling Applications of Explicit Early-Z Culling Jason L. Mitchell ATI Research Pedro V. Sander ATI Research Introduction In past years, in the SIGGRAPH Real-Time Shading course, we have covered the details of

More information

Procedural modeling and shadow mapping. Computer Graphics CSE 167 Lecture 15

Procedural modeling and shadow mapping. Computer Graphics CSE 167 Lecture 15 Procedural modeling and shadow mapping Computer Graphics CSE 167 Lecture 15 CSE 167: Computer graphics Procedural modeling Height fields Fractals L systems Shape grammar Shadow mapping Based on slides

More information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

More information

Abstract. Introduction. Kevin Todisco

Abstract. Introduction. Kevin Todisco - Kevin Todisco Figure 1: A large scale example of the simulation. The leftmost image shows the beginning of the test case, and shows how the fluid refracts the environment around it. The middle image

More information

Shading and Texturing Due: Friday, Feb 17 at 6:00pm

Shading and Texturing Due: Friday, Feb 17 at 6:00pm CMSC 23700 Winter 2012 Introduction to Computer Graphics Project 2 Feb 2 Shading and Texturing Due: Friday, Feb 17 at 6:00pm (v1.0 Feb 2: initial version) 1 Summary You can complete this project in pairs

More information

Spring 2011 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim Spring 2011 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

Chapter 17: The Truth about Normals

Chapter 17: The Truth about Normals Chapter 17: The Truth about Normals What are Normals? When I first started with Blender I read about normals everywhere, but all I knew about them was: If there are weird black spots on your object, go

More information

Real-Time Volumetric Smoke using D3D10. Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology

Real-Time Volumetric Smoke using D3D10. Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology Real-Time Volumetric Smoke using D3D10 Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology Smoke in NVIDIA s DirectX10 SDK Sample Smoke in the game Hellgate London Talk outline: Why 3D fluid 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

Pipeline Operations. CS 4620 Lecture 14

Pipeline Operations. CS 4620 Lecture 14 Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except

More information

CS451Real-time Rendering Pipeline

CS451Real-time Rendering Pipeline 1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does

More information

COMP 175: Computer Graphics April 11, 2018

COMP 175: Computer Graphics April 11, 2018 Lecture n+1: Recursive Ray Tracer2: Advanced Techniques and Data Structures COMP 175: Computer Graphics April 11, 2018 1/49 Review } Ray Intersect (Assignment 4): questions / comments? } Review of Recursive

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

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

Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express

Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express Level: Intermediate Area: Graphics Programming Summary This document is an introduction to the series of samples,

More information

User Guide. Melody 1.2 Normal Map Creation & Multiple LOD Generation

User Guide. Melody 1.2 Normal Map Creation & Multiple LOD Generation User Guide Melody 1.2 Normal Map Creation & Multiple LOD Generation DA-01601-001-v01 November 2004 Table of Contents Introduction to Melody...1 Features... 1 Using Melody...1 Loading a Model... 1 Model

More information

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering

More information

Engineering Real- Time Applications with Wild Magic

Engineering Real- Time Applications with Wild Magic 3D GAME ENGINE ARCHITECTURE Engineering Real- Time Applications with Wild Magic DAVID H. EBERLY Geometric Tools, Inc. AMSTERDAM BOSTON HEIDELRERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE

More information

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Real-Time Universal Capture Facial Animation with GPU Skin Rendering Real-Time Universal Capture Facial Animation with GPU Skin Rendering Meng Yang mengyang@seas.upenn.edu PROJECT ABSTRACT The project implements the real-time skin rendering algorithm presented in [1], and

More information

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment Dominic Filion, Senior Engineer Blizzard Entertainment Rob McNaughton, Lead Technical Artist Blizzard Entertainment Screen-space techniques Deferred rendering Screen-space ambient occlusion Depth of Field

More information

Programming Game Engines ITP 485 (4 Units)

Programming Game Engines ITP 485 (4 Units) Programming Game Engines ITP 485 (4 Units) Objective This course provides students with an in-depth exploration of 3D game engine architecture. Students will learn state-of-the-art software architecture

More information

Deus Ex is in the Details

Deus Ex is in the Details Deus Ex is in the Details Augmenting the PC graphics of Deus Ex: Human Revolution using DirectX 11 technology Matthijs De Smedt Graphics Programmer, Nixxes Software Overview Introduction DirectX 11 implementation

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

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

2.11 Particle Systems

2.11 Particle Systems 2.11 Particle Systems 320491: Advanced Graphics - Chapter 2 152 Particle Systems Lagrangian method not mesh-based set of particles to model time-dependent phenomena such as snow fire smoke 320491: Advanced

More information

Hardware Displacement Mapping

Hardware Displacement Mapping Matrox's revolutionary new surface generation technology, (HDM), equates a giant leap in the pursuit of 3D realism. Matrox is the first to develop a hardware implementation of displacement mapping and

More information

Game Programming Lab 25th April 2016 Team 7: Luca Ardüser, Benjamin Bürgisser, Rastislav Starkov

Game Programming Lab 25th April 2016 Team 7: Luca Ardüser, Benjamin Bürgisser, Rastislav Starkov Game Programming Lab 25th April 2016 Team 7: Luca Ardüser, Benjamin Bürgisser, Rastislav Starkov Interim Report 1. Development Stage Currently, Team 7 has fully implemented functional minimum and nearly

More information

Practical 2: Ray Tracing

Practical 2: Ray Tracing 2017/2018, 4th quarter INFOGR: Graphics Practical 2: Ray Tracing Author: Jacco Bikker The assignment: The purpose of this assignment is to create a small Whitted-style ray tracer. The renderer should be

More information

Easy Decal Version Easy Decal. Operation Manual. &u - Assets

Easy Decal Version Easy Decal. Operation Manual. &u - Assets Easy Decal Operation Manual 1 All information provided in this document is subject to change without notice and does not represent a commitment on the part of &U ASSETS. The software described by this

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

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y. COMP 4801 Final Year Project Ray Tracing for Computer Graphics Final Project Report FYP 15014 by Runjing Liu Advised by Dr. L.Y. Wei 1 Abstract The goal of this project was to use ray tracing in a rendering

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

Rendering Subdivision Surfaces Efficiently on the GPU

Rendering Subdivision Surfaces Efficiently on the GPU Rendering Subdivision Surfaces Efficiently on the GPU Gy. Antal, L. Szirmay-Kalos and L. A. Jeni Department of Algorithms and their Applications, Faculty of Informatics, Eötvös Loránd Science University,

More information

A simple OpenGL animation Due: Wednesday, January 27 at 4pm

A simple OpenGL animation Due: Wednesday, January 27 at 4pm CMSC 23700 Winter 2010 Introduction to Computer Graphics Project 1 January 12 A simple OpenGL animation Due: Wednesday, January 27 at 4pm 1 Summary This project is the first part of a three-part project.

More information

Flowmap Generator Reference

Flowmap Generator Reference Flowmap Generator Reference Table of Contents Flowmap Overview... 3 What is a flowmap?... 3 Using a flowmap in a shader... 4 Performance... 4 Creating flowmaps by hand... 4 Creating flowmaps using Flowmap

More information

Direct Rendering of Trimmed NURBS Surfaces

Direct Rendering of Trimmed NURBS Surfaces Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended

More information

Transforming Objects and Components

Transforming Objects and Components 4 Transforming Objects and Components Arrow selection Lasso selection Paint selection Move Rotate Scale Universal Manipulator Soft Modification Show Manipulator Last tool used Figure 4.1 Maya s manipulation

More information

Computer Science 426 Midterm 3/11/04, 1:30PM-2:50PM

Computer Science 426 Midterm 3/11/04, 1:30PM-2:50PM NAME: Login name: Computer Science 46 Midterm 3//4, :3PM-:5PM This test is 5 questions, of equal weight. Do all of your work on these pages (use the back for scratch space), giving the answer in the space

More information

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1 X. GPU Programming 320491: Advanced Graphics - Chapter X 1 X.1 GPU Architecture 320491: Advanced Graphics - Chapter X 2 GPU Graphics Processing Unit Parallelized SIMD Architecture 112 processing cores

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

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz CS 563 Advanced Topics in Computer Graphics QSplat by Matt Maziarz Outline Previous work in area Background Overview In-depth look File structure Performance Future Point Rendering To save on setup and

More information

Introduction to the Graphics Module Framework

Introduction to the Graphics Module Framework Introduction to the Graphics Module Framework Introduction Unlike the C++ module, which required nothing beyond what you typed in, the graphics module examples rely on lots of extra files - shaders, textures,

More information

The Vegetation of Horizon Zero Dawn. Gilbert Sanders Principal Artist, Guerrilla Games

The Vegetation of Horizon Zero Dawn. Gilbert Sanders Principal Artist, Guerrilla Games The Vegetation of Horizon Zero Dawn Gilbert Sanders Principal Artist, Guerrilla Games Welcome Topics Simulation Shading Creation Shadow Casting Summary Introduction Our Renderer Artist Node-Based Shader

More information

Speeding up your game

Speeding up your game Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers (adapted by Marc Levoy from a lecture by Tomas Möller, using material

More information

There are many kinds of surface shaders, from those that affect basic surface color, to ones that apply bitmap textures and displacement.

There are many kinds of surface shaders, from those that affect basic surface color, to ones that apply bitmap textures and displacement. mental ray Overview Mental ray is a powerful renderer which is based on a scene description language. You can use it as a standalone renderer, or even better, integrated with 3D applications. In 3D applications,

More information

Graphics Hardware. Instructor Stephen J. Guy

Graphics Hardware. Instructor Stephen J. Guy Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!

More information

Intersection Acceleration

Intersection Acceleration Advanced Computer Graphics Intersection Acceleration Matthias Teschner Computer Science Department University of Freiburg Outline introduction bounding volume hierarchies uniform grids kd-trees octrees

More information

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling Motivation Culling Don t draw what you can t see! Thomas Larsson Mälardalen University April 7, 2016 Image correctness Rendering speed One day we will have enough processing power!? Goals of real-time

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

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes

More information

Shadow Techniques. Sim Dietrich NVIDIA Corporation

Shadow Techniques. Sim Dietrich NVIDIA Corporation Shadow Techniques Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Lighting & Shadows The shadowing solution you choose can greatly influence the engine decisions you make This talk will outline

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

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

Getting Started with ShowcaseChapter1:

Getting Started with ShowcaseChapter1: Chapter 1 Getting Started with ShowcaseChapter1: In this chapter, you learn the purpose of Autodesk Showcase, about its interface, and how to import geometry and adjust imported geometry. Objectives After

More information

Physically-Based Laser Simulation

Physically-Based Laser Simulation Physically-Based Laser Simulation Greg Reshko Carnegie Mellon University reshko@cs.cmu.edu Dave Mowatt Carnegie Mellon University dmowatt@andrew.cmu.edu Abstract In this paper, we describe our work on

More information

Computer Graphics Ray Casting. Matthias Teschner

Computer Graphics Ray Casting. Matthias Teschner Computer Graphics Ray Casting Matthias Teschner Outline Context Implicit surfaces Parametric surfaces Combined objects Triangles Axis-aligned boxes Iso-surfaces in grids Summary University of Freiburg

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

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

CGWAVE Analysis SURFACE WATER MODELING SYSTEM. 1 Introduction

CGWAVE Analysis SURFACE WATER MODELING SYSTEM. 1 Introduction SURFACE WATER MODELING SYSTEM CGWAVE Analysis 1 Introduction This lesson will teach you how to prepare a mesh for analysis and run a solution for CGWAVE. You will start with the data file indiana.xyz which

More information

The Terrain Rendering Pipeline. Stefan Roettger, Ingo Frick. VIS Group, University of Stuttgart. Massive Development, Mannheim

The Terrain Rendering Pipeline. Stefan Roettger, Ingo Frick. VIS Group, University of Stuttgart. Massive Development, Mannheim The Terrain Rendering Pipeline Stefan Roettger, Ingo Frick VIS Group, University of Stuttgart wwwvis.informatik.uni-stuttgart.de Massive Development, Mannheim www.massive.de Abstract: From a game developers

More information

Shadow Algorithms. CSE 781 Winter Han-Wei Shen

Shadow Algorithms. CSE 781 Winter Han-Wei Shen Shadow Algorithms CSE 781 Winter 2010 Han-Wei Shen Why Shadows? Makes 3D Graphics more believable Provides additional cues for the shapes and relative positions of objects in 3D What is shadow? Shadow:

More information

Animation Basics. Learning Objectives

Animation Basics. Learning Objectives Animation Basics Learning Objectives After completing this chapter, you will be able to: Work with the time slider Understand animation playback controls Understand animation and time controls Morph compound

More information

Tutorial 4: Texture Mapping Techniques

Tutorial 4: Texture Mapping Techniques Tutorial 4: Texture Mapping Techniques Completion time 40 minutes In the previous tutorial we learned how to create materials, and how to assign texture maps to those materials. In this tutorial we will

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

A Trip Down The (2011) Rasterization Pipeline

A Trip Down The (2011) Rasterization Pipeline A Trip Down The (2011) Rasterization Pipeline Aaron Lefohn - Intel / University of Washington Mike Houston AMD / Stanford 1 This talk Overview of the real-time rendering pipeline available in ~2011 corresponding

More information

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection

More information

Hello, Thanks for the introduction

Hello, Thanks for the introduction Hello, Thanks for the introduction 1 In this paper we suggest an efficient data-structure for precomputed shadows from point light or directional light-sources. Because, in fact, after more than four decades

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

Rasterization Overview

Rasterization Overview Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer

More information

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 3 due Monday Nov 13 th at

More information

Renderize Live Overview

Renderize Live Overview Renderize Live Overview The Renderize Live interface is designed to offer a comfortable, intuitive environment in which an operator can create projects. A project is a savable work session that contains

More information

Files Used in this Tutorial

Files Used in this Tutorial Generate Point Clouds and DSM Tutorial This tutorial shows how to generate point clouds and a digital surface model (DSM) from IKONOS satellite stereo imagery. You will view the resulting point clouds

More information

Programming projects. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer

Programming projects. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer Programming projects Rendering Algorithms Spring 2010 Matthias Zwicker Universität Bern Description of assignments on class webpage Use programming language and environment of your choice We recommend

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

What is Irr RPG Builder? What are the current features? (IRB Alpha 0.3)

What is Irr RPG Builder? What are the current features? (IRB Alpha 0.3) What is Irr RPG Builder? IrrRPG Builder or simply "IRB" is a simple and powerful tool designed to help people new to programming and/or players who want to create RPG (Role Playing Game) games without

More information

Analyze and Optimize Windows* Game Applications Using Intel INDE Graphics Performance Analyzers (GPA)

Analyze and Optimize Windows* Game Applications Using Intel INDE Graphics Performance Analyzers (GPA) Analyze and Optimize Windows* Game Applications Using Intel INDE Graphics Performance Analyzers (GPA) Intel INDE Graphics Performance Analyzers (GPA) are powerful, agile tools enabling game developers

More information

Heightmap Translator v1.0 User Guide. Document Version 1.0. Heightmap Translator V Sigrasoft, Inc.

Heightmap Translator v1.0 User Guide. Document Version 1.0. Heightmap Translator V Sigrasoft, Inc. Heightmap Translator v1.0 User Guide Document Version 1.0 This is a brief User Guide for the Heightmap Translator included with the WaxLab tool set. For information regarding installation, licensing or

More information