Double-click on CS470_Lab09.zip and extract the contents of the archive into a subdirectory called CS470_Lab09
|
|
- Abigayle Hicks
- 6 years ago
- Views:
Transcription
1 Lab 9: Blending CS 470 Labs Lab 9 In our application thus far, we have used effects such as timers, user interaction, lighting, and textures. In this lab, we will combine all of these and introduce the effect of blending as well. Blending deals with giving surfaces a degree of transparency. For this lab, we will create transparent water that travels through a terrain map. This lab can also be referenced in Frank Luna s book, starting at Chapter 5, and adds additional effects in the following chapters. 0. Getting Started Download CS470_Lab09.zip, saving it into the labs directory. Double-click on CS470_Lab09.zip and extract the contents of the archive into a subdirectory called CS470_Lab09 Navigate into the CS470_Lab09 directory and double-click on CS470_Lab09.sln (the file with the little Visual Studio icon with the 10 on it) which should immediately open Visual Studio with the project. If the Header Files, Resource Files and Source Files folders in the Solution Explorer pane are not expanded, expand each by double clicking on them and double-click on BlendingApp.cpp, fog.fx, 1. The Blending Equation Recalling from CS 370, Blending is used to create transparency effects. This is done by combining the pixels that we are currently rasterizing (source pixels) with the pixels that have already been rasterized to the back buffer (destination pixels). With this technique, it is possible to create objects such as water or glass (objects with semi-transparent surfaces). Direct3D uses the following equation to blend source and destination pixels. C src corresponds to the color of a pixel that we are currently rasterizing (source pixel). C dst is the color of the pixel already on the back buffer (destination pixel). If blending is turned off, C src would simply just overwrite C dst. The colors F src (source blend factor) and F dst (destination blend factor) may have a variety of values, based on the needs of the program. The source color is multiplied with its blend factor and performs and operation to the product of the destination color and its blend factor.
2 The blending equation is used for only the RGB components of the colors. The alpha component is actually taken care of with its own equation. These two equations are handled independently so that the RGB and alpha components can be processed differently if need be. The alpha blending equation is as follows: The operator used in the above blending equations may be one of the following: typedef enum D3D10_BLEND_OP D3D10_BLEND_OP_ADD = 1, // D3D10_BLEND_OP_SUBTRACT = 2, // D3D10_BLEND_OP_REV_SUBTRACT = 3, // D3D10_BLEND_OP_MIN = 4, // D3D10_BLEND_OP_MAX = 5, // } D3D10_BLEND_OP; Operations include addition, subtraction, reverse subtraction, min( ), and max( ). Please refer to the above commented code beside each operation to see what technique is used to blend the source and destination pixels. 2. Blend Factors and Blend State Dozens of blending effects can be achieved by selecting different blend factors for the source and destination colors. The following is a list of commonly used blend factors: Let C src = (r s, g s, b s ) F = (resulting blend factor) A src = a s C dst = (r d, g d, b d ) A dst = a d List of common Blend Factors: D3D10_BLEND_ZERO F = (0, 0, 0) D3D10_BLEND_ONE F = (1, 1, 1) D3D10_BLEND_SRC_COLOR F = (r s, g s, b s ) D3D10_BLEND_INV_SRC_COLOR F = (1 - r s, 1 - g s, 1 - b s ) D3D10_BLEND_SRC_ALPHA F = (a s, a s, a s ) D3D10_BLEND_INV_SRC_ALPHA F = (1 - a s, 1 - a s, 1 - a s )
3 D3D10_BLEND_DEST_ALPHA F = (a d, a d, a d ) D3D10_BLEND_INV_DEST_ALPHA F = (1 - a d, 1 - a d, 1 - a d ) D3D10_BLEND_DEST_COLOR F = (r d, g d, b d ) D3D10_BLEND_INV_DEST_COLOR F = (1 - r d, 1 - g d, 1 - b d ) D3D10_BLEND_SRC_ALPHA_SAT F = (a, a, a ) * D3D10_BLEND_BLEND_FACTOR F = (r, g, b) ** D3D10_BLEND_INV_BLEND_FACTOR F = (1 - r, 1 - g, 1 - b) ** * where a = clamp(a s, 0, 1). The clamp function is ** where the color (r, g, b, a) is supplied by the second parameter of the OMSetBlendState method. This allows you to directly specify the desired blend factor. However, it is constant until the blend state is changed. Now that we have looked at different blend operations and blend factors, we can now set them in Directx. The blend settings are managed by the ID3D10BlendState interface. To create this interface, a D3D10_BLEND_DESC structure must be filled out and the method ID3D10Device::CreateBlendState must be called. Add the following code to the initapp method in BlendingApp.cpp. /* Create new ID3D10BlendState interface*/ // Create blending description structure D3D10_BLEND_DESC blenddesc = 0 blenddesc.alphatocoverageenable = false; blenddesc.blendenable[0] = true; blenddesc.srcblend = D3D10_BLEND_SRC_ALPHA; blenddesc.destblend = D3D10_BLEND_INV_SRC_ALPHA; blenddesc.blendop = D3D10_BLEND_OP_ADD; blenddesc.srcblendalpha = D3D10_BLEND_ONE; blenddesc.destblendalpha = D3D10_BLEND_ZERO; blenddesc.blendopalpha = D3D10_BLEND_OP_ADD; blenddesc.rendertargetwritemask[0] = D3D10_COLOR_WRITE_ENABLE_ALL; // Create new blend state from description structure HR(md3dDevice->CreateBlendState(&blendDesc, &mtransparentbs)); The above code creates a blending description structure, which defines all the variables used in both blending equations. The following table describes the blending attributes that are set in the above code. Attribute Description
4 AlphaToCoverageEnable BlendEnable SrcBlend DestBlend BlendOp SrcBlendAlpha DestBlendAlpha BlendOpAlpha RenderTargetWriteMask Enables or disables a multisampling technique that is useful for rendering foliage or wire fence textures. Enables or disables blending. Specifies the source blend factor for RGB blending. Specifies the destination blend factor for RGB blending. Specifies the blending operation for RGB blending. Specifies the source blend factor for alpha blending. Specifies the destination blend factor for alpha blending. Specifies the blending operation for alpha blending. Sets certain flags that control which color channels in the back buffer are written to after blending. 3. Transparent Water If the application could be compiled and run as of now, the scene would be drawn with mountains, water (no semi-transparency), and a wire fence textured crate. To make the water semi-transparent, as it should be, add the following code segments to enable blending effects. Now we simply need to enable blending with the transparency blend factors before the water is drawn. Add the following code to BlendingApp.cpp in the drawscene function. Notice we set the blend state before we draw the water via the function OMSetBlendState. // // Set water specific constants. // mwvp = mwavesworld*mview*mproj; mfxwvpvar->setmatrix((float*)&mwvp); mfxworldvar->setmatrix((float*)&mwavesworld); mfxtexmtxvar->setmatrix((float*)&watertexmtx); mfxdiffusemapvar->setresource(mwatermaprv); mfxspecmapvar->setresource(mdefaultspecmaprv); pass->apply(0); md3ddevice->omsetblendstate(mtransparentbs, blendfactor, 0xffffffff); mwaves.draw(); Once we have everything we need in the application, let s create the shader. Add the following code to blending.fx. In this code, the texture of an object is sampled twice. That is once using the transformed texture coordinates to get the tiled RGB color and then again using the unmodified texture coordinates in the range [0,1] to get the alpha component. This creates the sense of water depth in the scene while maintaining a tiled texture that is transformed to create the sense of moving water. #include "lighthelper.fx" cbuffer cbperframe
5 Light glight; float3 geyeposw; cbuffer cbperobject float4x4 gworld; float4x4 gwvp; float4x4 gtexmtx; cbuffer cbfixed // Nonnumeric values cannot be added to a cbuffer. Texture2D gdiffusemap; Texture2D gspecmap; SamplerState gtrilinearsam Filter = MIN_MAG_MIP_LINEAR; AddressU = Wrap; AddressV = Wrap; struct VS_IN float3 posl : POSITION; float3 normall : NORMAL; float2 texc : TEXCOORD; struct VS_OUT float4 posh : SV_POSITION; float3 posw : POSITION; float3 normalw : NORMAL; float2 texc0 : TEXCOORD0; float2 texc1 : TEXCOORD1; VS_OUT VS(VS_IN vin) VS_OUT vout; // Transform to world space space.
6 vout.posw = mul(float4(vin.posl, 1.0f), gworld); vout.normalw = mul(float4(vin.normall, 0.0f), gworld); // Transform to homogeneous clip space. vout.posh = mul(float4(vin.posl, 1.0f), gwvp); // Output vertex attributes for interpolation across triangle. vout.texc0 = vin.texc; vout.texc1 = mul(float4(vin.texc, 0.0f, 1.0f), gtexmtx); } return vout; float4 PS(VS_OUT pin) : SV_Target // Get materials from texture maps. float alpha = gdiffusemap.sample( gtrilinearsam, pin.texc0 ).a; // Discard pixel if texture alpha < 0.1. Note that we do this // test as soon as possible so that we can potentially exit the shader // early, thereby skipping the rest of the shader code. clip(alpha - 0.1f); float4 diffuse = gdiffusemap.sample( gtrilinearsam, pin.texc1 ); float4 spec = gspecmap.sample( gtrilinearsam, pin.texc1 ); // Map [0,1] --> [0,256] spec.a *= 256.0f; // Interpolating normal can make it not be of unit length so normalize it. float3 normalw = normalize(pin.normalw); // Compute the lit color for this pixel. SurfaceInfo v = pin.posw, normalw, diffuse, spec float3 litcolor = ParallelLight(v, glight, geyeposw); } return float4(litcolor, alpha); technique10 BlendingTech pass P0 SetVertexShader( CompileShader( vs_4_0, VS() ) ); SetGeometryShader( NULL ); SetPixelShader( CompileShader( ps_4_0, PS() ) ); } }
7 4. Fog If the program could compile and run as of now, we would have transparent water. Another nice effect associated with blending is fog. Adding fog to a 3D world has two main large benefits: 1.) Fog prevents popping, which is when an object that is beyond the far clipping plane is drawn as it comes closer and enters. 2.) Fog simulates an atmosphere perspective. Even on a clear day, a small amount of fog will make mountains look less visible because they re farther away. To create fog, we must specify three variables. This includes a fog color, a fog start distance from the camera, and a fog range (the range that exists between the fog start distance to where an object is completely hidden by the fog). The final pixel is calculated using the following fog equation, where litcolor is the usual color of an object: Add the following code to blending.fx in the specified functions. These additions will allow the shader to incorporate a fog effect. Add the following code to cbuffer cbfixed structure in blending.fx. The three values discussed above for the creation of fog in a 3D world. float gfogstart = 5.0f; float gfogrange = 140.0f; float3 gfogcolor = 0.7f, 0.7f, 0.7f Add the following code to the VS_OUT structure in blending.fx. This attribute will hold the fog color for a given pixel. float foglerp : FOG; Add the following code to the VS_OUT VS(VS_IN vin) structure in blending.fx. This calculates the appearance and degree of fog at a given vertex. float d = distance(vout.posw, geyeposw); vout.foglerp = saturate( (d - gfogstart) / gfogrange );
8 Add the following code to float4 PS(VS_OUT pin) : SV_Target in blending.fx. the function lerp is a function in the d3dutil.h header file that simply combines the usual color (litcolor) and the calculated fog color (gfogcolor). // Blend the fog color and the lit color. float3 foggedcolor = lerp(litcolor, gfogcolor, pin.foglerp); return float4(foggedcolor, alpha); 5. Compiling and running the program Once you have completed typing in the code, you can build and run the program in one of two ways: Click the small green arrow in the middle of the top toolbar Hit F5 (or Ctrl-F5) The output should look similar to below
Blending. To blend (combine) the pixels. To render semi-transparent objects. Currently Rasterizing. Previous on the Back Buffer.
Blending 4 th Week, 2009 Blending To blend (combine) the pixels To render semi-transparent objects Source Pixel p ij Currently Rasterizing Destination Pixel b ij Previous on the Back Buffer Opaque Teapot
More informationParallax Occlusion in Direct3D 11
Parallax Occlusion in Direct3D 11 Frank Luna February 11, 2012 www.d3dcoder.net Introduction to 3D Game Programming with DirectX 11 has a chapter explaining normal mapping and displacement mapping (implemented
More informationDeferred 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 informationShaders (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 informationOrder Independent Transparency with Dual Depth Peeling. Louis Bavoil, Kevin Myers
Order Independent Transparency with Dual Depth Peeling Louis Bavoil, Kevin Myers Document Change History Version Date Responsible Reason for Change 1.0 February 9 2008 Louis Bavoil Initial release Abstract
More informationCould 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 informationBlending Equation Blend Factors & Mode Transparency Creating an Alpha Channel Using DX Tex Tool Render Semi-Transparent Objects.
Overview Blending Blend Factors & Mode Transparency Creating an Alpha Channel Using DX Tex Tool Render Semi-Transparent Objects 305890 Spring 2014 5/27/2014 Kyoung Shin Park Blending Allows us to blend
More informationLab 3 Shadow Mapping. Giuseppe Maggiore
Lab 3 Shadow Giuseppe Maggiore Adding Shadows to the Scene First we need to declare a very useful helper object that will allow us to draw textures to the screen without creating a quad vertex buffer //
More informationShaders 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 informationThe 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 informationCS4620/5620: Lecture 14 Pipeline
CS4620/5620: Lecture 14 Pipeline 1 Rasterizing triangles Summary 1! evaluation of linear functions on pixel grid 2! functions defined by parameter values at vertices 3! using extra parameters to determine
More informationCS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST
CS 380 - GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 17) Read (required): GLSL book, chapter 4 (The OpenGL Programmable
More informationUsing D3D10 Now. Kevin Myers NVIDIA
Using D3D10 Now Kevin Myers NVIDIA D3D10 Is Ready Hardware is available OS is shipping SDKs and tools are here Adoption has already begun Where few Devs have gone before Worked with several over last year
More informationHardware-driven visibility culling
Hardware-driven visibility culling I. Introduction 20073114 김정현 The goal of the 3D graphics is to generate a realistic and accurate 3D image. To achieve this, it needs to process not only large amount
More informationComputer Graphics. Lecture 02 Graphics Pipeline. Edirlei Soares de Lima.
Computer Graphics Lecture 02 Graphics Pipeline Edirlei Soares de Lima What is the graphics pipeline? The Graphics Pipeline is a special software/hardware subsystem
More informationGraphics 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 information1.2.3 The Graphics Hardware Pipeline
Figure 1-3. The Graphics Hardware Pipeline 1.2.3 The Graphics Hardware Pipeline A pipeline is a sequence of stages operating in parallel and in a fixed order. Each stage receives its input from the prior
More informationReal - 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 informationShadows in the graphics pipeline
Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects
More informationComputer 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 informationPipeline 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 informationE.Order of Operations
Appendix E E.Order of Operations This book describes all the performed between initial specification of vertices and final writing of fragments into the framebuffer. The chapters of this book are arranged
More informationRasterization 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 informationThe 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 informationChapter 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 informationCS 498 VR. Lecture 18-4/4/18. go.illinois.edu/vrlect18
CS 498 VR Lecture 18-4/4/18 go.illinois.edu/vrlect18 Review and Supplement for last lecture 1. What is aliasing? What is Screen Door Effect? 2. How image-order rendering works? 3. If there are several
More informationTextures. 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 informationProgramming 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 informationPipeline 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 informationgraphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1
graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time
More informationgraphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1
graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time
More informationSign 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 information3D 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 informationHardware-driven Visibility Culling Jeong Hyun Kim
Hardware-driven Visibility Culling Jeong Hyun Kim KAIST (Korea Advanced Institute of Science and Technology) Contents Introduction Background Clipping Culling Z-max (Z-min) Filter Programmable culling
More informationOpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.
OpenGl Pipeline Individual Vertices Transformed Vertices Commands Processor Per-vertex ops Primitive assembly triangles, lines, points, images Primitives Fragments Rasterization Texturing Per-fragment
More informationVolume Shadows Tutorial Nuclear / the Lab
Volume Shadows Tutorial Nuclear / the Lab Introduction As you probably know the most popular rendering technique, when speed is more important than quality (i.e. realtime rendering), is polygon rasterization.
More informationCSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018
CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be
More informationCS451Real-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 informationCS195V Week 9. GPU Architecture and Other Shading Languages
CS195V Week 9 GPU Architecture and Other Shading Languages GPU Architecture We will do a short overview of GPU hardware and architecture Relatively short journey into hardware, for more in depth information,
More informationShader 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 informationPROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.
PROFESSIONAL WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB Andreas Anyuru WILEY John Wiley & Sons, Ltd. INTRODUCTION xxl CHAPTER 1: INTRODUCING WEBGL 1 The Basics of WebGL 1 So Why Is WebGL So Great?
More informationGame Graphics Programmers
Graphics INTRODUCTION - A Glimpse into what Game Graphics Programmers do - System level view of Graphics Architectures & Pipeline - Intro to Commonly used Rendering Techniques in Games Game Graphics Programmers
More informationReal-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 informationModule Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1
UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series PG Examination 2013-14 COMPUTER GAMES DEVELOPMENT CMPSME27 Time allowed: 2 hours Answer any THREE questions. (40 marks each) Notes are
More informationCS 464 Review. Review of Computer Graphics for Final Exam
CS 464 Review Review of Computer Graphics for Final Exam Goal: Draw 3D Scenes on Display Device 3D Scene Abstract Model Framebuffer Matrix of Screen Pixels In Computer Graphics: If it looks right then
More informationThe Rasterizer Stage. Texturing, Lighting, Testing and Blending
1 The Rasterizer Stage Texturing, Lighting, Testing and Blending 2 Triangle Setup, Triangle Traversal and Back Face Culling From Primitives To Fragments Post Clipping 3 In the last stages of the geometry
More informationApproximating Refraction Kenneth Hurley Please send me comments/questions/suggestions
Approximating Refraction Kenneth Hurley Please send me comments/questions/suggestions khurley@nvidia.com Problem Statement Refraction is a phenomenon that simulates the bending of light rays through semi-transparent
More informationthe gamedesigninitiative at cornell university Lecture 17 Color and Textures
Lecture 7 Color and Textures Take Away For Today Image color and composition What is RGB model for images? What does alpha represent? How does alpha composition work? Graphics primitives How do primitives
More informationPipeline Operations. CS 4620 Lecture 10
Pipeline Operations CS 4620 Lecture 10 2008 Steve Marschner 1 Hidden surface elimination Goal is to figure out which color to make the pixels based on what s in front of what. Hidden surface elimination
More informationTutorial 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 informationPOWERVR MBX. Technology Overview
POWERVR MBX Technology Overview Copyright 2009, Imagination Technologies Ltd. All Rights Reserved. This publication contains proprietary information which is subject to change without notice and is supplied
More informationAdaptive 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 informationRender-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 informationOpaque. Flowmap Generator 3
Flowmap Shaders Table of Contents Opaque... 3 FlowmapGenerator/Opaque/Water... 4 FlowmapGenerator /Opaque/Water Foam... 6 FlowmapGenerator /Opaque/Solid... 8 Edge Fade... 9 Depth Fog... 12 Opaque The opaque
More informationComputer Graphics. Lecture 9 Environment mapping, Mirroring
Computer Graphics Lecture 9 Environment mapping, Mirroring Today Environment Mapping Introduction Cubic mapping Sphere mapping refractive mapping Mirroring Introduction reflection first stencil buffer
More informationRendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane
Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world
More informationEvolution of GPUs Chris Seitz
Evolution of GPUs Chris Seitz Overview Concepts: Real-time rendering Hardware graphics pipeline Evolution of the PC hardware graphics pipeline: 1995-1998: Texture mapping and z-buffer 1998: Multitexturing
More informationEECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing
EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate
More informationSoft 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 informationOptimizing 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 informationApplications 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 informationCS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008.
CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions The Midterm Exam was given in class on Thursday, October 23, 2008. 1. [4 pts] Drawing Where? Your instructor says that objects should always be
More informationIntel Core 4 DX11 Extensions Getting Kick Ass Visual Quality out of the Latest Intel GPUs
Intel Core 4 DX11 Extensions Getting Kick Ass Visual Quality out of the Latest Intel GPUs Steve Hughes: Senior Application Engineer - Intel www.intel.com/software/gdc Be Bold. Define the Future of Software.
More informationIntroduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico Models and Architectures
More informationCS 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 informationDeferred rendering using Compute shaders
Deferred rendering using Compute shaders A comparative study using shader model 4.0 and 5.0 Benjamin Golba 1 P a g e This thesis is submitted to the Department of Interaction and System Design at Blekinge
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Fall 2015 Lecture 9 October 1, 2015 What I was going to say last time How are the ideas we ve learned about implemented in hardware so they are fast. Important:
More informationReal - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský
Real - Time Rendering Graphics pipeline Michal Červeňanský Juraj Starinský Overview History of Graphics HW Rendering pipeline Shaders Debugging 2 History of Graphics HW First generation Second generation
More informationLast Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization
More informationReal-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!
Last Time? Real-Time Shadows Perspective-Correct Interpolation Texture Coordinates Procedural Solid Textures Other Mapping Bump Displacement Environment Lighting Textures can Alias Aliasing is the under-sampling
More informationSpring 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 informationGraphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal
Graphics Hardware, Graphics APIs, and Computation on GPUs Mark Segal Overview Graphics Pipeline Graphics Hardware Graphics APIs ATI s low-level interface for computation on GPUs 2 Graphics Hardware High
More informationEnabling immersive gaming experiences Intro to Ray Tracing
Enabling immersive gaming experiences Intro to Ray Tracing Overview What is Ray Tracing? Why Ray Tracing? PowerVR Wizard Architecture Example Content Unity Hybrid Rendering Demonstration 3 What is Ray
More informationGraphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics
Why GPU? Chapter 1 Graphics Hardware Graphics Processing Unit (GPU) is a Subsidiary hardware With massively multi-threaded many-core Dedicated to 2D and 3D graphics Special purpose low functionality, high
More informationComputer Graphics. Shadows
Computer Graphics Lecture 10 Shadows Taku Komura Today Shadows Overview Projective shadows Shadow texture Shadow volume Shadow map Soft shadows Why Shadows? Shadows tell us about the relative locations
More informationHARDWARE ACCELERATED 3D/2D RENDERING
HARDWARE ACCELERATED 3D/2D RENDERING Gergely Agnecz: agnegerg@gmail.com Norbert Zsolt Zentai: zenorbi@gmail.com Roland Takacs: rolland0208@hotmail.com WHERE WE CAME FROM HUNGARY (LOCATION) HUNGARY BUDAPEST,
More informationCEng 477 Introduction to Computer Graphics Fall 2007
Visible Surface Detection CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection Visible surface detection or hidden surface removal. Realistic scenes: closer objects occludes the
More informationRendering 17 Mixed Lighting
Catlike Coding Unity C# Tutorials Rendering 17 Mixed Lighting Bake only indirect light. Mix baked and realtime shadows. Deal with code changes and bugs. Support subtractive lighting. This is part 17 of
More informationModels and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Learn the basic design of a graphics system Introduce
More informationShader Programming and Graphics Hardware
Shader Programming and Graphics Hardware Marries van de Hoef Graphics 2012/2013, 4 th quarter 1 Practicals The first assignment was about the basics What is going on behind the XNA functions? The second
More informationScanline Rendering 2 1/42
Scanline Rendering 2 1/42 Review 1. Set up a Camera the viewing frustum has near and far clipping planes 2. Create some Geometry made out of triangles 3. Place the geometry in the scene using Transforms
More informationIntroduction to Visualization and Computer Graphics
Introduction to Visualization and Computer Graphics DH2320, Fall 2015 Prof. Dr. Tino Weinkauf Introduction to Visualization and Computer Graphics Visibility Shading 3D Rendering Geometric Model Color Perspective
More informationFor Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization
More informationCSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation
CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Project 2 due Friday, October 11
More informationX 2 -Toon: An Extended X-Toon Shader
X 2 -Toon: An Extended X-Toon Shader Robert Wolfe Spencer Elliott Abstract The X-toon shader [Barla et al. 2006] extended classic cel shading from 1D shading textures to 2D textures. The second dimension
More informationC P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev
C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image
More informationShaders Part II. Traditional Rendering Pipeline
Shaders Part II Doron Nussbaum Doron Nussbaum COMP 3501 - Shaders Part II 1 Traditional Rendering Pipeline Traditional pipeline (older graphics cards) restricts developer to texture and the 3-term lighting
More informationIntroduction to 3D Concepts
PART I Introduction to 3D Concepts Chapter 1 Scene... 3 Chapter 2 Rendering: OpenGL (OGL) and Adobe Ray Tracer (ART)...19 1 CHAPTER 1 Scene s0010 1.1. The 3D Scene p0010 A typical 3D scene has several
More informationCS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions. The Midterm Exam was given in class on Tuesday, October 16, 2012.
CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions The Midterm Exam was given in class on Tuesday, October 16, 2012. 1. [7 pts] Synthetic-Camera Model. Describe the Synthetic-Camera Model : how
More informationProjective Textures & Shadow Mapping. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology
Projective Textures & Shadow Mapping Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology What is projective texturing? An intuition for projective texturing
More informationOptimisation. 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 informationPowerVR Hardware. Architecture Overview for Developers
Public Imagination Technologies PowerVR Hardware Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.
More informationShaders. 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 informationDirectX Programming #4. Kang, Seongtae Computer Graphics, 2009 Spring
DirectX Programming #4 Kang, Seongtae Computer Graphics, 2009 Spring Programmable Shader For recent hardwares, vertex and pixel processing stage of the graphics pipeline is programmable Programmable Vertex
More informationImplementing Fog in Direct3D Douglas Rogers NVIDIA Corportaion
Implementing Fog in Direct3D Douglas Rogers NVIDIA Corportaion drogers@nvidia.com Fog is a special effect that is used to blend a scene into a predefined color to give the impression that "fog" is present
More informationOpenGL Status - November 2013 G-Truc Creation
OpenGL Status - November 2013 G-Truc Creation Vendor NVIDIA AMD Intel Windows Apple Release date 02/10/2013 08/11/2013 30/08/2013 22/10/2013 Drivers version 331.10 beta 13.11 beta 9.2 10.18.10.3325 MacOS
More informationComputer Graphics Coursework 1
Computer Graphics Coursework 1 Deadline Deadline: 4pm, 24/10/2016 4pm 23/10/2015 Outline The aim of the coursework is to modify the vertex and fragment shaders in the provided OpenGL framework to implement
More informationComputergrafik. 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 informationShadow 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 informationAdvanced 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