OpenGL Rendering Pipeline and Programmable Shaders

Size: px
Start display at page:

Download "OpenGL Rendering Pipeline and Programmable Shaders"

Transcription

1 h gpup Topics OpenGL Rendering Pipeline and Programmable s sh gpup Rendering Pipeline Types OpenGL Language Basics h gpup EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

2 h gpup 2 GPU/CPU Perormance Limiters sh gpup 2 GPU/CPU Perormance Limiters Perormance Limiter: A actor that limits the maximum perormance o a program on a system. A car s maximum speed is the perormance limiter on how long it takes to get somewhere. Perormance limiters are used to set expectations. Example: Program X on computer C runs in 2s. Based on the bandwidth limiter it should run 8s. Based on the computation limiter it should run.2s. Should we be satisied? Yes, 8 is close enough to 2 or us. h gpup 2 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

3 h gpup 3 Two Common Limiters: GPU/CPU Perormance Limiters sh gpup 3 Memory Bandwidth o some part o system. Computation Rate. h gpup 3 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

4 h gpup 4 GPU/CPU Perormance Limiters sh gpup 4 Memory Bandwidth Limiter Applies to some kind o boundary or bus: CPU/Memory Interace. PCIe (used between a motherboard and a plug-in card). Limiter oten gien in GB/s. Example: A program needs to read B o data. It runs on a system with a bandwidth limit o GB/s. Based on bandwidth limiter run time is 3 00 B GB/s = 30s. h gpup 4 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

5 h gpup 5 GPU/CPU Perormance Limiters sh gpup 5 Computation Rate Limiter Applies to rate o some kind o computation: Single-precision loating point operations. SP FLOP Double-precision loating point operations. DP FLOP Instruction execution. IPS Computation rate can apply to each core or all cores on a chip. h gpup 5 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 5

6 h gpup 6 GPU/CPU Perormance Limiters sh gpup 6 Computation Rate Limiter Example Each core o a 4-core processor can execute at 6GFLOP/s = FLOP/s The execution o a program perorms FP operations. What is the execution time bound imposed by the computation limit? I the program uses one core: 24 6 = 4s. I the program uses our cores: = s. h gpup 6 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 6

7 h gpup 7 GPU/CPU Perormance Limiters sh gpup 7 How Perormance Limiters Used Determine limits o hardware (oten rom product speciications). This is easy. Determine computation and communication needs o program. Easy or some programs, hard or others. Determine likeliness that these limits dominate perormance. Program oten must be careully written een or easy cases. Many small actors can push perormance down by 0 or more. h gpup 7 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 7

8 h gpup 8 GPU/CPU Perormance Limiters sh gpup 8 Typical GPU Organization 34. GB/s (i7-6700k) CPU memory interace 5.8 GB/s (PCIex6 3.0) GPU 2.6 SP GFLOP/s 057. GFLOP/s memory interace 480 GB/s Titan X CPU Memory GPU Memory h gpup 8 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 8

9 h gpup 9 Render Rate Limits GPU/CPU Perormance Limiters sh gpup 9 angles sources rom CPU. angles sourced rom buer object on GPU. h gpup 9 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 9

10 gpup 0 Rasterization sh gpup Rasterization: The process o inding the location o pixels coered by a primitie. Rasterization Input: Primitie s ertices. Primitie s attributes. Window-Space Coordinates = (4.,6.7) Rasterization Output: Coordinate o each pixel coered by primitie. Pixel Interpolated attributes or each pixel. ment: Inormation on a pixel coered by a primitie. gpup 0 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

11 gpup Rasterization Question Rasterization sh gpup By how much should pixel be coered by primitie? OpenGL s Answer or angles (Polygons) A ragment is generated i center o pixel is inside primitie. A special case applies i pixel center is on a shared edge. OpenGL has rules or other primities, and can apply antialiasing. 7 = (4.,6.7) For course, only consider triangles without antialiasing. gpup EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

12 gpup 2 Rasterization sh gpup Interpolation o Attributes ment includes attributes (associated data) interpolated rom primitie ertices. Types o Interpolation (OpenGL Language Terminology) smooth (Perspectie Correct) Interpolation: Attribute alue at point o triangle is linearly interpolated rom the attribute alue at each ertex based on object space coordinates. Computationally costly (requires diision), but correct. noperspectie Interpolation: Attribute alue at point o triangle is linearly interpolated rom the attribute alue at each ertex based on projected x and y coordinates (clip space or window space). lat (no) Interpolation: Attribute alue at point o triangle is the alue o the attribute o (the prooking ertex). Saes time when attributes are the same at all three ertices. gpup 2 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

13 gpup 3 Important Point Rasterization sh gpup One primitie can generate many ragments. ment usually carries: Window-space coordinates. (Exact position o pixels.) Interpolated lighted color. For writing to the rame buer. Interpolated z alue. Used to determine whether ragment is under or oer another ragment. gpup 3 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

14 gpup 4 sh gpup Pipeline: An organization or sotware and hardware which deines a ixed sequence o stages. Each stage carries out some operation, receiing its input data rom the prior stage and proiding its output data to the next stage. The order o data in the pipeline cannot change. Rendering Pipeline: An organization or the set o steps needed to conert a set o ertices into a rame buer image. The term rendering pipeline might be used generically or it might reer to something ery speciic. Clipping is the most tedious step in the rendering pipeline.. OpenGL Rendering Pipeline: The sequence o steps deined by OpenGL that start with a ertex and its attributes and usually result in the rame buer being written. Rendering Pass: The use o the rendering pipeline to render some set o primities. gpup 4 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

15 gpup 5 sh gpup Simpliied OpenGL Rendering Pipeline Rendering Pipeline Input (From CPU or Bu er Object) 3 2 Vertex Vtx Vertex Vtx 2 3 Rasterizer >> ment Frame Bu er Update Obj. Space Mat. Color 2 2 x o,y o,z o 3 r m,g m,b m 2 Clip Space Lighted Color 2 3 x c,y c,z c r l,g l,b l Interpolated between and x c,y c,z c r l,g l,b l Frame Bu er Normal x o,y o,z o gpup 5 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

16 gpup 6 sh gpup OpenGL Rendering Pipelines Deined by the OpenGL standard. Current is 4.5. gpup 6 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

17 gpup 7 sh gpup Deinitions Stage: A pipeline section. Programmable Stage (or Unit): An OpenGL RP stage which can perorm its operation by executing user-proided sotware. Fixed-Function Stage (or Unit): An OpenGL RP stage which cannot be programmed, it s unctionality is speciied by the standard and proided by the implementation. : A program set up to run in a programmable stage, or the programmable stage itsel. gpup 7 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

18 gpup 8 sh gpup Less Simpliied OpenGL Rendering Pipeline Programmable Unit Rendering Pipeline Input (From CPU or Buer Object) Vtx Vertex Vtx 2 3 Geometry >= Rasterizer >> Vertex Primitie () ment 0 or Frame Buer Update Fixed Function Unit Input Output ment gpup 8 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

19 gpup 9 Rendering Pass Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup glbegin(gl_triangle_strip); glcolor3(lsu_spirit_gold); or ( int i=0; i<size; i++ ) ment 0 or Frame Buer Update glnormal3(norms[i].x,norms[i].y,norms[i].z); glvertex3(coords[i].x,coords[i].y,coords[i].z); } glend(); The execution o glbegin starts a rendering pass. Commands such as gldraw also start rendering passes. The rendering pass is complete ater glend inishes. During the rendering pass the CPU sends ertices into the start o the rendering pipeline which results in the rame buering being updated at the RP end. gpup 9 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup

20 gpup 20 Vertex Inputs Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup 2 glbegin(gl_triangle_strip); glcolor3(lsu_spirit_gold); or ( int i=0; i<size; i++ ) ment 0 or Frame Buer Update glnormal3(norms[i].x,norms[i].y,norms[i].z); glvertex3(coords[i].x,coords[i].y,coords[i].z); } glend(); Each ertex in this example has the ollowing attributes: A coordinate (speciied by glvertex3). A normal (speciied by glnormal3). A color (speciied by glcolor3). Each execution o glvertex3 sends one ertex into the ertex shader. In the diagram a ertex, including all its attributes, shown as,, etc. gpup 20 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

21 gpup 2 The Vertex Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup 2 Input: One ertex. ment 0 or Frame Buer Update Output: One ertex. Historical Role: Compute lighted color o ertex. Conert object-space coordinates to clip space. Current Role: Proide data or geometry shader (completely user determined). I no geometry shader, output must include clip-space coordinates. gpup 2 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

22 gpup 22 The Geometry Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup 2 Input: One primitie. ment 0 or Frame Buer Update Output zero or more primities. Input primitie type must be compatible with primitie speciied by glbegin or gldraw. Input data is an array o ertex shader outputs the size o the array is determined by primitie type. Output primitie type can be reely chosen. Current Role: Must write clip-space coordinates to gl Position. Also writes whateer other data ragment shader needs. gpup 22 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

23 gpup 23 Rasterizer Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup 2 Input: One primitie (type determined by geometry shader). ment 0 or Frame Buer Update Output: Zero or more ragments one ragment or each pixel that the primitie coers. The data or each ragment is some combination o the data or each ertex in the input primitie. The rasterizer cannot be programmed. gpup 23 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

24 gpup 24 ment Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup 2 Input: One ragment. ment 0 or Frame Buer Update Output: Zero or one ragments. Typical Role: Read texels and blend with lighted color. gpup 24 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

25 gpup 25 Frame Buer Update Vtx Vertex Vtx Geometry >= 0 Rasterizer >> sh gpup 2 Input one ragment. Output: None. ment 0 or Frame Buer Update Typical Role Applies depth, stencil, and other tests to ragment. Blends or writes passing ragment to color plane o rame buer. Frame buer update is not programmable. gpup 25 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

26 gpup 26 Data Access by s Input One set or each ertex. Vertex One set or all ertices. sh gpup 2 Categories inputs and outputs. Uniorm ariables. Buer objects. Inputs and Outputs Vertex Normal Color MultiTexCoord0 my_s_input User-Deined Compatibility Proile-Deined Uniorm Vars glmodelviewmatrix, etc. Buer Object Position FrontColor TeXCoord[] my_s_out Data read and written by shader code. One set o data or each ertex, primitie, or ragment. To aoid waste, should not include alues common to all. For example, don t make color a shader input i all ertices are the same color, use a uniorm instead. gpup 26 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

27 gpup 27 Data Access by s Input One set or each ertex. Vertex One set or all ertices. sh gpup 2 Uniorm Variables One set o data shared by all. Read only. Size is limited, typically 64 kib. Vertex Normal Color MultiTexCoord0 my_s_input User-Deined Compatibility Proile-Deined Usually cached (especially i < 8 kib accessed). Uniorm Vars glmodelviewmatrix, etc. Buer Object Position FrontColor TeXCoord[] my_s_out Data read and written by shader code. gpup 27 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

28 gpup 28 Data Access by s Input One set or each ertex. Vertex One set or all ertices. sh gpup 2 Buer Objects Shared by all (ertices, primities, ragments). Can be read and written, typically as an array. Size is large. Vertex Normal Color MultiTexCoord0 my_s_input User-Deined Compatibility Proile-Deined Uniorm Vars glmodelviewmatrix, etc. Buer Object Position FrontColor TeXCoord[] my_s_out Data read and written by shader code. Usually not cached. gpup 28 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

29 gpup 29 OpenGL s sh gpup 2 Vertex Processor ment Processor Vertex Normal Color MultiTexCoord0 Position FrontColor TeXCoord[] Color TeXCoord[] Color Depth gpup 29 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 2

30 gpup 30 Preparation Major Rendering Pipeline Steps sh gpup 3 These actiities are perormed beore inoking pipeline. CPU speciies transorms, material properties, etc. Calling, say, gltranslate, helps set up pipeline but does not start it running or eed it data. Feed Data to Pipeline Data enters in a unit including a ertex and its attributes. This initiates the steps. gpup 30 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

31 gpup 3 sh gpup 3 Vertex Processing Steps (By GPU or each ertex.) Apply modeliew transorm to ertex. Main result is ertex coordinate in eye space. Compute lighted color o ertex. Main result is lighted color. Apply projection transorm to eye-space ertex. Result is ertex coordinate in clip space. gpup 3 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

32 gpup 32 sh gpup 3 Primitie Assembly Steps These steps operate on a primitie (a group o primities). Primitie Assembly (Group ertices into a primitie). Result is, say, a group o 3 describing a triangle. Clip (remoe) o-screen parts o primitie. Result is ewer and maybe dierent primities. Rasterize Result is the set o ragments (b locations) coered by primitie. gpup 32 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

33 gpup 33 sh gpup 3 ment Processing Steps These steps operate on a ragment. Fetch texels, ilter and blend. Result is a rame-buer ready color. Frame Buer Update I ragment passes depth and other tests, write or blend. gpup 33 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

34 gpup 34 Programmable Units sh gpup 3 Programmable Unit: Part o the pipeline that can be programmed (as deined by some API). Choice o what is and isn t programmable constrained by: Need to allow or parallel (multithreaded, SIMD, MIMD) execution. Simple memory access. gpup 34 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

35 gpup 35 sh gpup 3 Major OpenGL Programmable Units Vertex Processor: Transorm ertex and texture coordinates, compute lighting. Geometry Processor: Using a transormed primitie and its neighbors generates new primities. For example, replace one triangle with many triangles to more closely match a cured surace. ment Processor: Using interpolated coordinates, read iltered texels and combine with colors. gpup 35 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

36 gpup 36 Languages sh gpup 3 : A programmable part o a GPU. The name shader is now misleading but is still in common use. Language: An language or programming shaders. gpup 36 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

37 gpup 37 High-Leel Languages sh gpup 3 High-Leel Languages OpenGL Language OpenGL standard. Syntax ery similar to C. Language designed or ertex and ragment shaders. Cg Originated with ATI, adopted in Direct3D. Syntax ery similar to C. Language designed or stream programs geometry, ertex, and ragment programs can be in stream orm. gpup 37 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

38 gpup 38 OpenGL Language (OGSL) sh gpup 3 OpenGL Language Important Features C-like CPP-like preprocessor directies. Library o useul geometry unctions. Includes ector and matrix types and operators. gpup 38 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

39 gpup 39 Example OGSL Data Types Example sh gpup 3 ec4 ertex_e = gl_modelviewmatrix * o_point; ec3 norm_e = gl_normalmatrix * gl_normal; ec4 light_pos = gl_lightsource[].position; loat phase_light = dot(norm_e, normalize(light_pos - ertex_e).xyz); loat phase_user = dot(norm_e, -ertex_e.xyz); loat phase = sign(phase_light) == sign(phase_user)? abs(phase_light) : 0.0; gpup 39 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 3

40 gpup 40 Storage Qualiiers OGSL Storage Qualiiers sh gpup 4 Used in a ariable declaration, speciies where data stored. Below, in, uniorm, constant, and out are storage qualiiers. in ec4 orce; uniorm loat x; const int sides = 5; out ec2 nudge; // Input to this shader, dierent or each primitie. // Input to shader, alue rarely changed. // Can neer be changed. // Output o this shader (input to some other). gpup 40 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

41 gpup 4 sh gpup 4 Storage Qualiier Types uniorm: Read-only by shader. Written by client, change is time consuming. Typical use: transormation matrices. in: Input to shader. Read-only by shader that made the in declaration. Value is set either by client (using glvertexattrib and riends) or by a prior stage shader (by writing an out ariable. Typical uses: ertex material properties (color), normal. out: Output o shader. Value is written by shader in which out declaration appears and read by shader in subsequent stage. sampler: Read-only by ertex and ragment shader. A handle to a texture unit, used by texture access unctions. gpup 4 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

42 gpup 42 sh gpup 4 Interpolation Qualiiers Used or ragment shader inputs. Speciy how alue should be interpolated. lat: No interpolation. smooth: Perspectie-correct interpolation. noperspectie: Linear interpolation. gpup 42 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

43 gpup 43 sh gpup 4 Deprecated Storage Qualiiers. These were used in earlier ersions o OGSL. They hae been replaced by in and out. attribute: Deprecated. Like an in but only can be used or ertex shader. arying: Deprecated. When used in a ertex shader is the same as out, when used in a ragment shader is the same as in. gpup 43 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

44 gpup 44 sh gpup 4 Storage Qualiier Example // For ertex and ragment shaders: uniorm ec3 graity_orce; uniorm loat gs_constant; uniorm ec2 ball_size; // Vertex Only in loat step_last_time; in ec4 position_let, position_right, position_aboe, position_below; in ec3 ball_speed; out ec4 out_position; out ec3 out_elocity; // ment Only // in ec4 out_position; in ec3 out_elocity; gpup 44 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

45 gpup 45 Function Parameters OGSL Functions sh gpup 4 OpenGL Shading Language.30 Section 4.4 Call by alue. Parameter Qualiiers: in (deault) out inout Built In Functions See OpenGL Shading Language.30 Section 8 gpup 45 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

46 gpup 46 OpenGL Shading Language Use sh gpup 4 Steps or adding a typical shader to existing OpenGL code: Deine what the shader is supposed to do. Identiy appropriate programmable units (ertex, geometry, ragment, etc). Identiy data that shaders will use. I data rom client (CPU) determine whether attribute or uniorm. For attributes and uniorms, determine i pre-deined or user-deined. Write shader code. In CPU code ollow steps or installing shader. (E.g., use p). Get names o any new uniorms and attributes. As necessary, initialize uniorms and attributes. Turn shader on and o as necessary. gpup 46 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

47 gpup 47 Example Phong sh gpup 4 Phong : A lighting model in which the lighted color is computed at each ragment. (Otherwise the lighted color is computed at each ertex o a primitie and those lighted colors are interpolated across the ragments.) Phong Steps Deine what shader does. Computes lighting at ragment using interpolated normal... Identiy appropriate units. For computing lighting: ragment shader. For passing along normal and color ino, ertex shader. Identiy data that shaders use. VS: Lighting data, normal. (All pre-deined.) FS: Normal (interpolated), eye-space ertex coordinates. User de. gpup 47 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

48 gpup 48 sh gpup 4 OpenGL Calls, rom Initialization to Use (See OGL 4.3 Chapter 7) Create Program Object (Once) pobject = glcreateprogram() For Each (Vertex, Geometry, ment, etc.): Create Object sobject = glcreate(gl VERTEX SHADER) Proide Source Code to Object and Compile glsource(sobject,,&shader text lines,null); glcompile(sobject); Attach glattach(pobject,sobject); Link (Once) gllinkprogram(pobject); Use (Many Times, e.g., once per rame.) gluseprogram(pobject); gpup 48 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

49 gpup 49 OGSL Use sh gpup 4 Obtaining and Using Variable Reerences At run time ariables identiied by number. At Initialization get location (index) o attributes and uniorms: sal pinnacle = glgetattriblocation(pobject,name); sun ball size = glgetuniormlocation(pobject,name); During Render (Inrequently) Change Uniorm Value (Using location) gluniorm2(sun ball size,ball size,ball size sq); During Render (Per Vertex Okay) Change Attribute Value (Using location) glvertexattrib4(sal pinnacle,pinnacle.x,pinnacle.y,pinnacle.z,radius); Done beore each glvertex. Same options as ertex, such as client and buer object arrays. gpup 49 EE Lecture Transparency. Formatted 8:59, 29 September 206 rom rendering-pipeline. sh gpup 4

OpenGL Rendering Pipeline and Programmable Shaders

OpenGL Rendering Pipeline and Programmable Shaders h gpup Topics OpenGL Rendering Pipeline and Programmable s sh gpup Rendering Pipeline Types OpenGL Language Basics h gpup EE 4702- Lecture Transparency. Formatted 8:06, 7 December 205 rom rendering-pipeline.

More information

OpenGL Programmable Shaders

OpenGL Programmable Shaders h gpup 1 Topics Rendering Pipeline Shader Types OpenGL Programmable Shaders sh gpup 1 OpenGL Shader Language Basics h gpup 1 EE 4702-X Lecture Transparency. Formatted 9:03, 20 October 2014 from shaders2.

More information

Programmable GPUs Outline

Programmable GPUs Outline papi 1 Outline References Programmable Units Languages Programmable GPUs Outline papi 1 OpenGL Shading Language papi 1 EE 7700-1 Lecture Transparency. Formatted 11:30, 25 March 2009 from set-prog-api.

More information

12.2 Programmable Graphics Hardware

12.2 Programmable Graphics Hardware Fall 2018 CSCI 420: Computer Graphics 12.2 Programmable Graphics Hardware Kyle Morgenroth http://cs420.hao-li.com 1 Introduction Recent major advance in real time graphics is the programmable pipeline:

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

Supplement to Lecture 22

Supplement to Lecture 22 Supplement to Lecture 22 Programmable GPUs Programmable Pipelines Introduce programmable pipelines - Vertex shaders - Fragment shaders Introduce shading languages - Needed to describe shaders - RenderMan

More information

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1 Programmable GPUs Real Time Graphics Virtua Fighter 1995 (SEGA Corporation) NV1 Dead or Alive 3 2001 (Tecmo Corporation) Xbox (NV2A) Nalu 2004 (NVIDIA Corporation) GeForce 6 Human Head 2006 (NVIDIA Corporation)

More information

Programming shaders & GPUs Christian Miller CS Fall 2011

Programming shaders & GPUs Christian Miller CS Fall 2011 Programming shaders & GPUs Christian Miller CS 354 - Fall 2011 Fixed-function vs. programmable Up until 2001, graphics cards implemented the whole pipeline for you Fixed functionality but configurable

More information

Programmable Graphics Hardware

Programmable Graphics Hardware CSCI 480 Computer Graphics Lecture 14 Programmable Graphics Hardware [Ch. 9] March 2, 2011 Jernej Barbic University of Southern California OpenGL Extensions Shading Languages Vertex Program Fragment Program

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

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

The Transition from RenderMan to the OpenGL Shading Language (GLSL)

The Transition from RenderMan to the OpenGL Shading Language (GLSL) 1 The Transition from RenderMan to the OpenGL Shading Language (GLSL) Mike Bailey mjb@cs.oregonstate.edu This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4.0 International

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

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

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

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

More information

The Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL 1.10)!

The Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL 1.10)! ! The Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL 1.10)! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 4! stanford.edu/class/ee267/! Updates! for 24h lab access:

More information

Today. Rendering - III. Outline. Texturing: The 10,000m View. Texture Coordinates. Specifying Texture Coordinates in GL

Today. Rendering - III. Outline. Texturing: The 10,000m View. Texture Coordinates. Specifying Texture Coordinates in GL Today Rendering - III CS148, Summer 2010 Graphics Pipeline and Programmable Shaders Artist Workflow Siddhartha Chaudhuri 1 2 Outline Texturing: The 10,000m View Intro to textures The fixed-function graphics

More information

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

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

SHADER PROGRAMMING. Based on Jian Huang s lecture on Shader Programming

SHADER PROGRAMMING. Based on Jian Huang s lecture on Shader Programming SHADER PROGRAMMING Based on Jian Huang s lecture on Shader Programming What OpenGL 15 years ago could do http://www.neilturner.me.uk/shots/opengl-big.jpg What OpenGL can do now What s Changed? 15 years

More information

Shader Programs. Lecture 30 Subsections 2.8.2, Robb T. Koether. Hampden-Sydney College. Wed, Nov 16, 2011

Shader Programs. Lecture 30 Subsections 2.8.2, Robb T. Koether. Hampden-Sydney College. Wed, Nov 16, 2011 Shader Programs Lecture 30 Subsections 2.8.2, 2.8.3 Robb T. Koether Hampden-Sydney College Wed, Nov 16, 2011 Robb T. Koether (Hampden-Sydney College) Shader Programs Wed, Nov 16, 2011 1 / 43 Outline 1

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

Programmable Graphics Hardware

Programmable Graphics Hardware Programmable Graphics Hardware Outline 2/ 49 A brief Introduction into Programmable Graphics Hardware Hardware Graphics Pipeline Shading Languages Tools GPGPU Resources Hardware Graphics Pipeline 3/ 49

More information

Graphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal

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

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary Cornell University CS 569: Interactive Computer Graphics Introduction Lecture 1 [John C. Stone, UIUC] 2008 Steve Marschner 1 2008 Steve Marschner 2 NASA University of Calgary 2008 Steve Marschner 3 2008

More information

9. Reviewing Printed Circuit Board Schematics with the Quartus II Software

9. Reviewing Printed Circuit Board Schematics with the Quartus II Software November 2012 QII52019-12.1.0 9. Reviewing Printed Circuit Board Schematics with the Quartus II Sotware QII52019-12.1.0 This chapter provides guidelines or reviewing printed circuit board (PCB) schematics

More information

Information Coding / Computer Graphics, ISY, LiTH GLSL. OpenGL Shading Language. Language with syntax similar to C

Information Coding / Computer Graphics, ISY, LiTH GLSL. OpenGL Shading Language. Language with syntax similar to C GLSL OpenGL Shading Language Language with syntax similar to C Syntax somewhere between C och C++ No classes. Straight ans simple code. Remarkably understandable and obvious! Avoids most of the bad things

More information

Graphics Processing Unit Architecture (GPU Arch)

Graphics Processing Unit Architecture (GPU Arch) Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics

More information

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL Preview CS770/870 Spring 2017 Open GL Shader Language GLSL Review traditional graphics pipeline CPU/GPU mixed pipeline issues Shaders GLSL graphics pipeline Based on material from Angel and Shreiner, Interactive

More information

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL CS770/870 Spring 2017 Open GL Shader Language GLSL Based on material from Angel and Shreiner, Interactive Computer Graphics, 6 th Edition, Addison-Wesley, 2011 Bailey and Cunningham, Graphics Shaders 2

More information

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

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

More information

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

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

10. SOPC Builder Component Development Walkthrough

10. SOPC Builder Component Development Walkthrough 10. SOPC Builder Component Development Walkthrough QII54007-9.0.0 Introduction This chapter describes the parts o a custom SOPC Builder component and guides you through the process o creating an example

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

GLSL Introduction. Fu-Chung Huang. Thanks for materials from many other people

GLSL Introduction. Fu-Chung Huang. Thanks for materials from many other people GLSL Introduction Fu-Chung Huang Thanks for materials from many other people Shader Languages Currently 3 major shader languages Cg (Nvidia) HLSL (Microsoft) Derived from Cg GLSL (OpenGL) Main influences

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

Scanline Rendering 2 1/42

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

Mattan Erez. The University of Texas at Austin

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

More information

Current Trends in Computer Graphics Hardware

Current Trends in Computer Graphics Hardware Current Trends in Computer Graphics Hardware Dirk Reiners University of Louisiana Lafayette, LA Quick Introduction Assistant Professor in Computer Science at University of Louisiana, Lafayette (since 2006)

More information

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

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

An Efficient Mesh Simplification Method with Feature Detection for Unstructured Meshes and Web Graphics

An Efficient Mesh Simplification Method with Feature Detection for Unstructured Meshes and Web Graphics An Eicient Mesh Simpliication Method with Feature Detection or Unstructured Meshes and Web Graphics Bing-Yu Chen National Taiwan Uniersity robin@im.ntu.edu.tw Tomoyuki Nishita The Uniersity o Tokyo nis@is.s.u-tokyo.ac.jp

More information

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

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

More information

GPU Programming EE Final Examination

GPU Programming EE Final Examination Name GPU Programming EE 4702-1 Final Examination Tuesday, 9 December 2014 7:30 9:30 CST Alias Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Exam Total (20 pts) (15 pts) (20 pts) (20 pts) (25 pts) (100

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

Standard Graphics Pipeline

Standard Graphics Pipeline Graphics Architecture Software implementations of rendering are slow. OpenGL on Sparc workstations. Performance can be improved using sophisticated algorithms and faster machines. Real-time large-scale

More information

Lecture 2. Shaders, GLSL and GPGPU

Lecture 2. Shaders, GLSL and GPGPU Lecture 2 Shaders, GLSL and GPGPU Is it interesting to do GPU computing with graphics APIs today? Lecture overview Why care about shaders for computing? Shaders for graphics GLSL Computing with shaders

More information

Drawing Fast The Graphics Pipeline

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

Lecture 13: OpenGL Shading Language (GLSL)

Lecture 13: OpenGL Shading Language (GLSL) Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 18, 2018 1/56 Motivation } Last week, we discussed the many of the new tricks in Graphics require low-level access to the Graphics

More information

Evolution of GPUs Chris Seitz

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

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

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

More information

Some advantages come from the limited environment! No classes. Stranight ans simple code. Remarkably. Avoids most of the bad things with C/C++.

Some advantages come from the limited environment! No classes. Stranight ans simple code. Remarkably. Avoids most of the bad things with C/C++. GLSL OpenGL Shading Language Language with syntax similar to C Syntax somewhere between C och C++ No classes. Stranight ans simple code. Remarkably understandable and obvious! Avoids most of the bad things

More information

Today s Agenda. Basic design of a graphics system. Introduction to OpenGL

Today s Agenda. Basic design of a graphics system. Introduction to OpenGL Today s Agenda Basic design of a graphics system Introduction to OpenGL Image Compositing Compositing one image over another is most common choice can think of each image drawn on a transparent plastic

More information

Programming Graphics Hardware

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

More information

CS 130 Exam I. Fall 2015

CS 130 Exam I. Fall 2015 S 3 Exam I Fall 25 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

The Pixel-Planes Family of Graphics Architectures

The Pixel-Planes Family of Graphics Architectures The Pixel-Planes Family of Graphics Architectures Pixel-Planes Technology Processor Enhanced Memory processor and associated memory on same chip SIMD operation Each pixel has an associated processor Perform

More information

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Shaders I Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Objectives Shader Programming Basics Simple Shaders Vertex shader Fragment shaders

More information

Graphics Hardware. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 2/26/07 1

Graphics Hardware. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 2/26/07 1 Graphics Hardware Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/26/07 1 From last time Texture coordinates Uses of texture maps reflectance and other surface parameters lighting

More information

Introduction to Shaders for Visualization. The Basic Computer Graphics Pipeline

Introduction to Shaders for Visualization. The Basic Computer Graphics Pipeline Introduction to Shaders for Visualization Mike Bailey The Basic Computer Graphics Pipeline Model Transform View Transform Per-vertex Lighting Projection Transform Homogeneous Division Viewport Transform

More information

GPU Programming EE Final Examination

GPU Programming EE Final Examination Name GPU Programming EE 4702-1 Final Examination Tuesday, 5 December 2017 12:30 14:30 CST Alias Problem 1 Problem 2 Problem 3 Problem 4 Exam Total (15 pts) (20 pts) (30 pts) (35 pts) (100 pts) Good Luck!

More information

Reminder: Affine Transformations. Viewing and Projection. Shear Transformations. Transformation Matrices in OpenGL. Specification via Ratios

Reminder: Affine Transformations. Viewing and Projection. Shear Transformations. Transformation Matrices in OpenGL. Specification via Ratios CSCI 420 Computer Graphics Lecture 6 Viewing and Projection Jernej Barbic University o Southern Caliornia Shear Transormation Camera Positioning Simple Parallel Projections Simple Perspective Projections

More information

Efficient and Scalable Shading for Many Lights

Efficient and Scalable Shading for Many Lights Efficient and Scalable Shading for Many Lights 1. GPU Overview 2. Shading recap 3. Forward Shading 4. Deferred Shading 5. Tiled Deferred Shading 6. And more! First GPU Shaders Unified Shaders CUDA OpenCL

More information

Motivation Hardware Overview Programming model. GPU computing. Part 1: General introduction. Ch. Hoelbling. Wuppertal University

Motivation Hardware Overview Programming model. GPU computing. Part 1: General introduction. Ch. Hoelbling. Wuppertal University Part 1: General introduction Ch. Hoelbling Wuppertal University Lattice Practices 2011 Outline 1 Motivation 2 Hardware Overview History Present Capabilities 3 Programming model Past: OpenGL Present: CUDA

More information

Spring 2010 Prof. Hyesoon Kim. AMD presentations from Richard Huddy and Michael Doggett

Spring 2010 Prof. Hyesoon Kim. AMD presentations from Richard Huddy and Michael Doggett Spring 2010 Prof. Hyesoon Kim AMD presentations from Richard Huddy and Michael Doggett Radeon 2900 2600 2400 Stream Processors 320 120 40 SIMDs 4 3 2 Pipelines 16 8 4 Texture Units 16 8 4 Render Backens

More information

CS427 Multicore Architecture and Parallel Computing

CS427 Multicore Architecture and Parallel Computing CS427 Multicore Architecture and Parallel Computing Lecture 6 GPU Architecture Li Jiang 2014/10/9 1 GPU Scaling A quiet revolution and potential build-up Calculation: 936 GFLOPS vs. 102 GFLOPS Memory Bandwidth:

More information

CENG 477 Introduction to Computer Graphics. Graphics Hardware and OpenGL

CENG 477 Introduction to Computer Graphics. Graphics Hardware and OpenGL CENG 477 Introduction to Computer Graphics Graphics Hardware and OpenGL Introduction Until now, we focused on graphic algorithms rather than hardware and implementation details But graphics, without using

More information

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

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

More information

CSE4030 Introduction to Computer Graphics

CSE4030 Introduction to Computer Graphics CSE4030 Introduction to Computer Graphics Dongguk University Jeong-Mo Hong Timetable 00:00~00:10 Introduction (English) 00:10~00:50 Topic 1 (English) 00:50~00:60 Q&A (English, Korean) 01:00~01:40 Topic

More information

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

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

Shadow Casting with Stencil Buffer for Real-Time Rendering

Shadow Casting with Stencil Buffer for Real-Time Rendering 102 The International Arab Journal o Inormation Technology, Vol. 5, No. 4, October Shadow Casting with Stencil Buer or Real-Time Rendering Lee Weng, Daut Daman, and Mohd Rahim Faculty o Computer Science

More information

Structured Parallel Programming with Deterministic Patterns

Structured Parallel Programming with Deterministic Patterns Structured Parallel Programming with Deterministic Patterns May 14, 2010 USENIX HotPar 2010, Berkeley, Caliornia Michael McCool, Sotware Architect, Ct Technology Sotware and Services Group, Intel Corporation

More information

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

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

More information

GPU Programming EE Midterm Examination

GPU Programming EE Midterm Examination Name GPU Programming EE 4702- Midterm Examination Wednesday, 2 November 204 9:30 0:20 CST Alias Problem Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Exam Total (8 pts) (2 pts) (24 pts) (2 pts) (4

More information

Drawing Fast The Graphics Pipeline

Drawing Fast The Graphics Pipeline Drawing Fast The Graphics Pipeline CS559 Fall 2016 Lectures 10 & 11 October 10th & 12th, 2016 1. Put a 3D primitive in the World Modeling 2. Figure out what color it should be 3. Position relative to the

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

Optimizing DirectX Graphics. Richard Huddy European Developer Relations Manager

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

More information

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1

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

C 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. 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 information

Mattan Erez. The University of Texas at Austin

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

More information

Models and Architectures

Models and Architectures Models and Architectures Objectives Learn the basic design of a graphics system Introduce graphics pipeline architecture Examine software components for an interactive graphics system 1 Image Formation

More information

Sung-Eui Yoon ( 윤성의 )

Sung-Eui Yoon ( 윤성의 ) Introduction to Computer Graphics and OpenGL Graphics Hardware Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/etri_cg/ Class Objectives Understand how GPUs have been evolved Understand

More information

GPU Programming EE Midterm Examination

GPU Programming EE Midterm Examination Name Solution GPU Programming EE 4702- Midterm Examination Wednesday, 2 November 204 9:30 0:20 CST Alias Phylæ has landed! Problem Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Exam Total (8 pts) (2

More information

PROFESSIONAL. 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. 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 information

CS 130 Final. Fall 2015

CS 130 Final. Fall 2015 CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Rendering. 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 information

Drawing Fast The Graphics Pipeline

Drawing Fast The Graphics Pipeline Drawing Fast The Graphics Pipeline CS559 Spring 2016 Lecture 10 February 25, 2016 1. Put a 3D primitive in the World Modeling Get triangles 2. Figure out what color it should be Do ligh/ng 3. Position

More information

Programmable Graphics Hardware

Programmable Graphics Hardware Programmable Graphics Hardware Johan S. Seland Center of Mathematics for Applications University of Oslo INF3320 22. November 2006 Programmable Graphics Hardware Programmable Graphics Hardware = GPU (Graphical

More information

CS GPU and GPGPU Programming Lecture 3: GPU Architecture 2. Markus Hadwiger, KAUST

CS GPU and GPGPU Programming Lecture 3: GPU Architecture 2. Markus Hadwiger, KAUST CS 380 - GPU and GPGPU Programming Lecture 3: GPU Architecture 2 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 9) Read (required): GLSL book, chapter 4 (The OpenGL Programmable Pipeline) GPU

More information

INF3320 Computer Graphics and Discrete Geometry

INF3320 Computer Graphics and Discrete Geometry INF3320 Computer Graphics and Discrete Geometry The OpenGL pipeline Christopher Dyken and Martin Reimers 07.10.2009 Page 1 The OpenGL pipeline Real Time Rendering: The Graphics Processing Unit (GPU) (Chapter

More information

Windowing System on a 3D Pipeline. February 2005

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

More information

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL Grafica Computazionale: Lezione 30 Grafica Computazionale lezione30 Introduction to OpenGL Informatica e Automazione, "Roma Tre" May 20, 2010 OpenGL Shading Language Introduction to OpenGL OpenGL (Open

More information

Introduction to Computer Graphics with WebGL

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

CONSOLE ARCHITECTURE

CONSOLE ARCHITECTURE CONSOLE ARCHITECTURE Introduction Part 1 What is a console? Console components Differences between consoles and PCs Benefits of console development The development environment Console game design What

More information

General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing)

General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing) ME 290-R: General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing) Sara McMains Spring 2009 Performance: Bottlenecks Sources of bottlenecks CPU Transfer Processing Rasterizer

More information

Piecewise polynomial interpolation

Piecewise polynomial interpolation Chapter 2 Piecewise polynomial interpolation In ection.6., and in Lab, we learned that it is not a good idea to interpolate unctions by a highorder polynomials at equally spaced points. However, it transpires

More information

Threading Hardware in G80

Threading Hardware in G80 ing Hardware in G80 1 Sources Slides by ECE 498 AL : Programming Massively Parallel Processors : Wen-Mei Hwu John Nickolls, NVIDIA 2 3D 3D API: API: OpenGL OpenGL or or Direct3D Direct3D GPU Command &

More information

Introduction to the OpenGL Shading Language

Introduction to the OpenGL Shading Language Introduction to the OpenGL Shading Language Randi Rost Director of Developer Relations, 3Dlabs 08-Dec-2005 1 Why use graphics programmability? Graphics hardware has changed radically Fixed functionality

More information

OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL

OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL OpenGL: Open Graphics Library Introduction to OpenGL Part II CS 351-50 Graphics API ( Application Programming Interface) Software library Layer between programmer and graphics hardware (and other software

More information

GPU Memory Model. Adapted from:

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

More information

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Shaders I Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico 0 Objectives Shader Basics Simple Shaders Vertex shader Fragment shaders 1 Vertex

More information