The Graphics Pipeline

Total Page:16

File Type:pdf, Size:1020Kb

The Graphics Pipeline The graphics pipeline • The standard approach to object-order graphics • Many versions exist – Software, e.g., Pixar’s REYES architecture Pipeline and Rasterization • many options for quality and flexibility – Hardware, e.g., graphics cards in PCs • amazing performance: millions of triangles per frame CS4620 • We’ll focus on an abstract version of hardware pipeline (Shirley & Marschner, Chapter 8) • “Pipeline” because of the many stages – very parallelizable – leads to remarkable performance of graphics cards (many times the flops of the CPU at ~1/5 the clock speed) Cornell CS4620 Fall 2010 © 2010 Doug James • 1 Cornell CS4620 Fall 2010 © 2010 Doug James • 2 APPLICATION Primitives Pipeline you are here COMMAND STREAM • Points 3D transformations; shading VERTEX PROCESSING • Line segments TRANSFORMED GEOMETRY – and chains of connected line segments • Triangles conversion of primitives to pixels RASTERIZATION • And that’s all! FRAGMENTS – Curves? Approximate them with chains of line segments blending, compositing, shading FRAGMENT PROCESSING – Polygons? Break them up into triangles – Curved regions? Approximate them with triangles FRAMEBUFFER IMAGE • Trend has been toward minimal primitives user sees this DISPLAY – Simple, uniform, repetitive: good for parallelism Cornell CS4620 Fall 2010 © 2010 Doug James • 3 Cornell CS4620 Fall 2010 © 2010 Doug James • 4 Rasterization Rasterizing lines • First job: enumerate the pixels covered by a primitive • Define line as a – Simple, aliased definition: pixels whose centers fall inside rectangle • Second job: interpolate values across the primitive • Specify by two – e.g., colors computed at vertices endpoints – e.g., normals at vertices • Ideal image: black – will see applications later on inside, white outside Cornell CS4620 Fall 2010 © 2010 Doug James • 5 Cornell CS4620 Fall 2010 © 2010 Doug James • 6 Point sampling Point sampling in action • Approximate rectangle by drawing all pixels whose centers fall within the line • Problem: sometimes turns on adjacent pixels Cornell CS4620 Fall 2010 © 2010 Doug James • 7 Cornell CS4620 Fall 2010 © 2010 Doug James • 8 Bresenham lines (midpoint alg.) Midpoint algorithm in action • Point sampling unit width rectangle leads to uneven line width • Define line width parallel to pixel grid • That is, turn on the single nearest pixel in each column • Note that 45º lines are now thinner Cornell CS4620 Fall 2010 © 2010 Doug James • 9 Cornell CS4620 Fall 2010 © 2010 Doug James • 10 Algorithms for drawing lines Optimizing line drawing • line equation: • Multiplying and y = b + m x rounding is slow • Simple algorithm: • At each pixel the evaluate line only options are E equation per column and NE • W.l.o.g. x0 < x1; • d = m(x + 1) + b – y 0 ! m ! 1 • d > 0.5 decides between E and NE for x = ceil(x0) to floor(x1) y = b + m*x output(x, round(y)) y = 1.91 + 0.37 x Cornell CS4620 Fall 2010 © 2010 Doug James • 11 Cornell CS4620 Fall 2010 © 2010 Doug James • 12 Optimizing line drawing Midpoint line algorithm • d = m(x + 1) + b – y x = ceil(x0) • Only need to update y = round(m*x + b) d for integer steps in d = m*(x + 1) + b – y while x < floor(x1) x and y if d > 0.5 y += 1 • Do that with d –= 1 addition x += 1 d += m • Known as output(x, y) “DDA” (digital differential analyzer) Cornell CS4620 Fall 2010 © 2010 Doug James • 13 Cornell CS4620 Fall 2010 © 2010 Doug James • 14 Linear interpolation Linear interpolation • We often attach attributes to vertices • Pixels are not – e.g. computed diffuse color of a hair being drawn using lines exactly on the line – want color to vary smoothly along a chain of line segments • Define 2D function • Recall basic definition by projection on line – 1D: f(x) = (1 – !) y + " y 0 1 – this is linear in 2D – where ! = (x – x0) / (x1 – x0) – therefore can use • In the 2D case of a line segment, alpha is just the DDA to interpolate fraction of the distance from (x0, y0) to (x1, y1) Cornell CS4620 Fall 2010 © 2010 Doug James • 15 Cornell CS4620 Fall 2010 © 2010 Doug James • 16 Alternate interpretation Alternate interpretation • We are updating d and ! as we step from pixel to pixel • View loop as visiting – d tells us how far from the line we are all pixels the line ! tells us how far along the line we are passes through • So d and ! are coordinates in a coordinate system Interpolate d and ! for each pixel oriented to the line Only output frag. if pixel is in band • This makes linear interpolation the primary operation Cornell CS4620 Fall 2010 © 2010 Doug James • 17 Cornell CS4620 Fall 2010 © 2010 Doug James • 18 Pixel-walk line rasterization Rasterizing triangles • The most common case in most applications x = ceil(x0) y = round(m*x + b) – with good antialiasing can be the only case d = m*x + b – y – some systems render a line as two skinny triangles while x < floor(x1) if d > 0.5 • Triangle represented by three vertices y += 1; d –= 1; else • Simple way to think of algorithm follows the pixel-walk x += 1; d += m; interpretation of line rasterization if –0.5 < d ! 0.5 output(x, y) – walk from pixel to pixel over (at least) the polygon’s area – evaluate linear functions as you go – use those functions to decide which pixels are inside Cornell CS4620 Fall 2010 © 2010 Doug James • 19 Cornell CS4620 Fall 2010 © 2010 Doug James • 20 Rasterizing triangles Rasterizing triangles • Input: • Summary – three 2D points (the triangle’s vertices in pixel space) 1! evaluation of linear • (x , y ); (x , y ); (x , y ) functions on pixel 0 0 1 1 2 2 grid – parameter values at each vertex 2! functions defined by • q00, …, q0n; q10, …, q1n; q20, …, q2n parameter values at vertices • Output: a list of fragments, each with 3! using extra – the integer pixel coordinates (x, y) parameters to determine – interpolated parameter values q0, …, qn fragment set Cornell CS4620 Fall 2010 © 2010 Doug James • 21 Cornell CS4620 Fall 2010 © 2010 Doug James • 22 Incremental linear evaluation Incremental linear evaluation • A linear (affine, really) function on the plane is: linEval(xl, xh, yl, yh, cx, cy, ck) { // setup • Linear functions are efficient to evaluate on a grid: qRow = cx*xl + cy*yl + ck; // traversal for y = yl to yh { qPix = qRow; for x = xl to xh { output(x, y, qPix); qPix += cx; } qRow += cy; } } cx = .005; cy = .005; ck = 0 (image size 100x100) Cornell CS4620 Fall 2010 © 2010 Doug James • 23 Cornell CS4620 Fall 2010 © 2010 Doug James • 24 Rasterizing triangles Defining parameter functions • Summary • To interpolate parameters across a triangle we need to 1! evaluation of linear find the cx, cy, and ck that define the (unique) linear functions on pixel grid function that matches the given values at all 3 vertices – this is 3 constraints on 3 unknown coefficients: 2! functions defined by (each states that the function parameter values agrees with the given value at vertices at one vertex) 3! using extra parameters – leading to a 3x3 matrix equation for the coefficients: to determine fragment set (singular iff triangle is degenerate) Cornell CS4620 Fall 2010 © 2010 Doug James • 25 Cornell CS4620 Fall 2010 © 2010 Doug James • 26 Defining parameter functions Defining parameter functions • More efficient version: shift origin to (x , y ) linInterp(xl, xh, yl, yh, x0, y0, q0, 0 0 x1, y1, q1, x2, y2, q2) { q(x, y) = cx(x x0) + cy(y y0) + q0 − − // setup q = 0 q = 1 q(x1, y1) = cx(x1 x0) + cy(y1 y0) + q0 = q1 det = (x1-x0)*(y2-y0) - (x2-x0)*(y1-y0); − − cx = ((q1-q0)*(y2-y0) - (q2-q0)*(y1-y0)) / det; q(x2, y2) = cx(x2 x0) + cy(y2 y0) + q0 = q2 cy = ((q2-q0)*(x1-x0) - (q1-q0)*(x2-x0)) / det; − − qRow = cx*(xl-x0) + cy*(yl-y0) + q0; – now this is a 2x2 linear system (since q0 falls out): // traversal (same as before) for y = yl to yh { qPix = qRow; for x = xl to xh { output(x, y, qPix); – solve using Cramer’s rule (see Shirley): qPix += cx; q = 0 } qRow += cy; } } Cornell CS4620 Fall 2010 © 2010 Doug James • 27 Cornell CS4620 Fall 2010 © 2010 Doug James • 28 Interpolating several parameters Rasterizing triangles linInterp(xl, xh, yl, yh, n, x0, y0, q0[], • Summary x1, y1, q1[], x2, y2, q2[]) { 1! evaluation of linear // setup functions on pixel for k = 0 to n-1 // compute cx[k], cy[k], qRow[k] grid // from q0[k], q1[k], q2[k] 2! functions defined by // traversal parameter values for y = yl to yh { for k = 1 to n, qPix[k] = qRow[k]; at vertices for x = xl to xh { 3! using extra output(x, y, qPix); for k = 1 to n, qPix[k] += cx[k]; parameters } to determine for k = 1 to n, qRow[k] += cy[k]; } fragment set } Cornell CS4620 Fall 2010 © 2010 Doug James • 29 Cornell CS4620 Fall 2010 © 2010 Doug James • 30 Clipping to the triangle Barycentric coordinates • Interpolate three barycentric • A coordinate system for triangles coordinates across the – algebraic viewpoint: plane – each barycentric coord is 1 at one vert. and 0 at – geometric viewpoint (areas): the other two • Triangle interior test: • Output fragments only when all three are > 0. [Shirley 2000] Cornell CS4620 Fall 2010 © 2010 Doug James • 31 Cornell CS4620 Fall 2010 © 2010 Doug James • 32 Barycentric coordinates Barycentric coordinates • A coordinate system for triangles • Linear viewpoint: basis for the plane – geometric viewpoint: distances [Shirley 2000] – linear viewpoint: basis of edges – in this view, the triangle interior test is just Cornell CS4620 Fall 2010 © 2010 Doug James • 33 Cornell CS4620 Fall 2010 © 2010 Doug James • 34 Walking edge equations Pixel-walk (Pineda) rasterization • We need to update values of the three edge equations • Conservatively with single-pixel steps in x and y visit a superset of • Edge equation
Recommended publications
  • Real-Time Rendering Techniques with Hardware Tessellation
    Volume 34 (2015), Number x pp. 0–24 COMPUTER GRAPHICS forum Real-time Rendering Techniques with Hardware Tessellation M. Nießner1 and B. Keinert2 and M. Fisher1 and M. Stamminger2 and C. Loop3 and H. Schäfer2 1Stanford University 2University of Erlangen-Nuremberg 3Microsoft Research Abstract Graphics hardware has been progressively optimized to render more triangles with increasingly flexible shading. For highly detailed geometry, interactive applications restricted themselves to performing transforms on fixed geometry, since they could not incur the cost required to generate and transfer smooth or displaced geometry to the GPU at render time. As a result of recent advances in graphics hardware, in particular the GPU tessellation unit, complex geometry can now be generated on-the-fly within the GPU’s rendering pipeline. This has enabled the generation and displacement of smooth parametric surfaces in real-time applications. However, many well- established approaches in offline rendering are not directly transferable due to the limited tessellation patterns or the parallel execution model of the tessellation stage. In this survey, we provide an overview of recent work and challenges in this topic by summarizing, discussing, and comparing methods for the rendering of smooth and highly-detailed surfaces in real-time. 1. Introduction Hardware tessellation has attained widespread use in computer games for displaying highly-detailed, possibly an- Graphics hardware originated with the goal of efficiently imated, objects. In the animation industry, where displaced rendering geometric surfaces. GPUs achieve high perfor- subdivision surfaces are the typical modeling and rendering mance by using a pipeline where large components are per- primitive, hardware tessellation has also been identified as a formed independently and in parallel.
    [Show full text]
  • NVIDIA Quadro Technical Specifications
    NVIDIA Quadro Technical Specifications NVIDIA Quadro Workstation GPU High-resolution Antialiasing ° Dassault CATIA • Full 128-bit floating point precision • Up to 16x full-scene antialiasing (FSAA), ° ESRI ArcGIS pipeline at resolutions up to 1920 x 1200 ° ICEM Surf • 12-bit subpixel precision • 12-bit subpixel sampling precision ° MSC.Nastran, MSC.Patran • Hardware-accelerated antialiased enhances AA quality ° PTC Pro/ENGINEER Wildfire, points and lines • Rotated-grid FSAA significantly 3Dpaint, CDRS The NVIDIA Quadro® family of In addition to a full line up of 2D and • Hardware OpenGL overlay planes increases color accuracy and visual ° SolidWorks • Hardware-accelerated two-sided quality for edges, while maintaining ° UDS NX Series, I-deas, SolidEdge, professional solutions for workstations 3D workstation graphics solutions, the lighting performance3 Unigraphics, SDRC delivers the fastest application NVIDIA Quadro professional products • Hardware-accelerated clipping planes and many more… Memory performance and the highest quality include a set of specialty solutions that • Third-generation occlusion culling • Digital Content Creation (DCC) graphics. have been architected to meet the • 16 textures per pixel • High-speed memory (up to 512MB Alias Maya, MOTIONBUILDER needs of a wide range of industry • OpenGL quad-buffered stereo (3-pin GDDR3) ° NewTek Lightwave 3D Raw performance and quality are only sync connector) • Advanced lossless compression ° professionals. These specialty Autodesk Media and Entertainment the beginning. The NVIDIA
    [Show full text]
  • Extending the Graphics Pipeline with Adaptive, Multi-Rate Shading
    Extending the Graphics Pipeline with Adaptive, Multi-Rate Shading Yong He Yan Gu Kayvon Fatahalian Carnegie Mellon University Abstract compute capability as a primary mechanism for improving the qual- ity of real-time graphics. Simply put, to scale to more advanced Due to complex shaders and high-resolution displays (particularly rendering effects and to high-resolution outputs, future GPUs must on mobile graphics platforms), fragment shading often dominates adopt techniques that perform shading calculations more efficiently the cost of rendering in games. To improve the efficiency of shad- than the brute-force approaches used today. ing on GPUs, we extend the graphics pipeline to natively support techniques that adaptively sample components of the shading func- In this paper, we enable high-quality shading at reduced cost on tion more sparsely than per-pixel rates. We perform an extensive GPUs by extending the graphics pipeline’s fragment shading stage study of the challenges of integrating adaptive, multi-rate shading to natively support techniques that adaptively sample aspects of the into the graphics pipeline, and evaluate two- and three-rate imple- shading function more sparsely than per-pixel rates. Specifically, mentations that we believe are practical evolutions of modern GPU our extensions allow different components of the pipeline’s shad- designs. We design new shading language abstractions that sim- ing function to be evaluated at different screen-space rates and pro- plify development of shaders for this system, and design adaptive vide mechanisms for shader programs to dynamically determine (at techniques that use these mechanisms to reduce the number of in- fine screen granularity) which computations to perform at which structions performed during shading by more than a factor of three rates.
    [Show full text]
  • Graphics Pipeline and Rasterization
    Graphics Pipeline & Rasterization Image removed due to copyright restrictions. MIT EECS 6.837 – Matusik 1 How Do We Render Interactively? • Use graphics hardware, via OpenGL or DirectX – OpenGL is multi-platform, DirectX is MS only OpenGL rendering Our ray tracer © Khronos Group. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/. 2 How Do We Render Interactively? • Use graphics hardware, via OpenGL or DirectX – OpenGL is multi-platform, DirectX is MS only OpenGL rendering Our ray tracer © Khronos Group. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/. • Most global effects available in ray tracing will be sacrificed for speed, but some can be approximated 3 Ray Casting vs. GPUs for Triangles Ray Casting For each pixel (ray) For each triangle Does ray hit triangle? Keep closest hit Scene primitives Pixel raster 4 Ray Casting vs. GPUs for Triangles Ray Casting GPU For each pixel (ray) For each triangle For each triangle For each pixel Does ray hit triangle? Does triangle cover pixel? Keep closest hit Keep closest hit Scene primitives Pixel raster Scene primitives Pixel raster 5 Ray Casting vs. GPUs for Triangles Ray Casting GPU For each pixel (ray) For each triangle For each triangle For each pixel Does ray hit triangle? Does triangle cover pixel? Keep closest hit Keep closest hit Scene primitives It’s just a different orderPixel raster of the loops!
    [Show full text]
  • Graphics Pipeline
    Graphics Pipeline What is graphics API ? • A low-level interface to graphics hardware • OpenGL About 120 commands to specify 2D and 3D graphics Graphics API and Graphics Pipeline OS independent Efficient Rendering and Data transfer Event Driven Programming OpenGL What it isn’t: A windowing program or input driver because How many of you have programmed in OpenGL? How extensively? OpenGL GLUT: window management, keyboard, mouse, menue GLU: higher level library, complex objects How does it work? Primitives: drawing a polygon From the implementor’s perspective: geometric objects properties: color… pixels move camera and objects around graphics pipeline Primitives Build models in appropriate units (microns, meters, etc.). Primitives Rotate From simple shapes: triangles, polygons,… Is it Convert to + material Translate 3D to 2D visible? pixels properties Scale Primitives 1 Primitives: drawing a polygon Primitives: drawing a polygon • Put GL into draw-polygon state glBegin(GL_POLYGON); • Send it the points making up the polygon glVertex2f(x0, y0); glVertex2f(x1, y1); glVertex2f(x2, y2) ... • Tell it we’re finished glEnd(); Primitives Primitives Triangle Strips Polygon Restrictions Minimize number of vertices to be processed • OpenGL Polygons must be simple • OpenGL Polygons must be convex (a) simple, but not convex TR1 = p0, p1, p2 convex TR2 = p1, p2, p3 Strip = p0, p1, p2, p3, p4,… (b) non-simple 9 10 Material Properties: Color Primitives: Material Properties • glColor3f (r, g, b); Red, green & blue color model color, transparency, reflection
    [Show full text]
  • CPU-GPU Hybrid Real Time Ray Tracing Framework
    Volume 0 (1981), Number 0 pp. 1–8 CPU-GPU Hybrid Real Time Ray Tracing Framework S.Beck , A.-C. Bernstein , D. Danch and B. Fröhlich Lehrstuhl für Systeme der Virtuellen Realität, Bauhaus-Universität Weimar, Germany Abstract We present a new method in rendering complex 3D scenes at reasonable frame-rates targeting on Global Illumi- nation as provided by a Ray Tracing algorithm. Our approach is based on some new ideas on how to combine a CPU-based fast Ray Tracing algorithm with the capabilities of todays programmable GPUs and its powerful feed-forward-rendering algorithm. We call this approach CPU-GPU Hybrid Real Time Ray Tracing Framework. As we will show, a systematic analysis of the generations of rays of a Ray Tracer leads to different render-passes which map either to the GPU or to the CPU. Indeed all camera rays can be processed on the graphics card, and hardware accelerated shadow mapping can be used as a pre-step in calculating precise shadow boundaries within a Ray Tracer. Our arrangement of the resulting five specialized render-passes combines a fast Ray Tracer located on a multi-processing CPU with the capabilites of a modern graphics card in a new way and might be a starting point for further research. Categories and Subject Descriptors (according to ACM CCS): I.3.3 [Computer Graphics]: Ray Tracing, Global Illumination, OpenGL, Hybrid CPU GPU 1. Introduction Ray Tracer can compute every pixel of an image separately Within the last years prospects in computer-graphics are in parallel which is done in clusters and render-farms and growing and the aim of high-quality rendering and natural- shortens render time.
    [Show full text]
  • Powervr Hardware Architecture Overview for Developers
    Public Imagination Technologies PowerVR Hardware Architecture Overview for Developers Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind. Redistribution of this document is permitted with acknowledgement of the source. Filename : PowerVR Hardware.Architecture Overview for Developers Version : PowerVR SDK REL_18.2@5224491 External Issue Issue Date : 23 Nov 2018 Author : Imagination Technologies Limited PowerVR Hardware 1 Revision PowerVR SDK REL_18.2@5224491 Imagination Technologies Public Contents 1. Introduction ................................................................................................................................. 3 2. Overview of Modern 3D Graphics Architectures ..................................................................... 4 2.1. Single Instruction, Multiple Data ......................................................................................... 4 2.1.1. Parallelism ................................................................................................................ 4 2.2. Vector and Scalar Processing ............................................................................................ 5 2.2.1. Vector ....................................................................................................................... 5 2.2.2. Scalar ....................................................................................................................... 5 3. Overview of Graphics
    [Show full text]
  • Radeon GPU Profiler Documentation
    Radeon GPU Profiler Documentation Release 1.11.0 AMD Developer Tools Jul 21, 2021 Contents 1 Graphics APIs, RDNA and GCN hardware, and operating systems3 2 Compute APIs, RDNA and GCN hardware, and operating systems5 3 Radeon GPU Profiler - Quick Start7 3.1 How to generate a profile.........................................7 3.2 Starting the Radeon GPU Profiler....................................7 3.3 How to load a profile...........................................7 3.4 The Radeon GPU Profiler user interface................................. 10 4 Settings 13 4.1 General.................................................. 13 4.2 Themes and colors............................................ 13 4.3 Keyboard shortcuts............................................ 14 4.4 UI Navigation.............................................. 16 5 Overview Windows 17 5.1 Frame summary (DX12 and Vulkan).................................. 17 5.2 Profile summary (OpenCL)....................................... 20 5.3 Barriers.................................................. 22 5.4 Context rolls............................................... 25 5.5 Most expensive events.......................................... 28 5.6 Render/depth targets........................................... 28 5.7 Pipelines................................................. 30 5.8 Device configuration........................................... 33 6 Events Windows 35 6.1 Wavefront occupancy.......................................... 35 6.2 Event timing............................................... 48 6.3
    [Show full text]
  • GPU-Graphics Processing Unit Ramani Shrusti K., Desai Vaishali J., Karia Kruti K
    International Journal of Innovative Research in Computer Science & Technology (IJIRCST) ISSN: 2347-5552, Volume-3, Issue-1, January – 2015 GPU-Graphics Processing Unit Ramani Shrusti K., Desai Vaishali J., Karia Kruti K. Department of Computer Science, Saurashtra University Rajkot, Gujarat. Abstract— In this paper we describe GPU and its computing. multithreaded multiprocessor used for visual computing. GPU (Graphics Processing Unit) is an extremely multi-threaded It also provide real-time visual interaction with architecture and then is broadly used for graphical and now non- graphical computations. The main advantage of GPUs is their computed objects via graphics images, and video.GPU capability to perform significantly more floating point operations serves as both a programmable graphics processor and a (FLOPs) per unit time than a CPU. GPU computing increases scalable parallel computing platform. hardware capabilities and improves programmability. By giving Graphics Processing Unit is also called Visual a good price or performance benefit, core-GPU can be used as the best alternative and complementary solution to multi-core Processing Unit (VPU) is an electronic circuit designed servers. In fact, to perform network coding simultaneously, multi to quickly operate and alter memory to increase speed core CPUs and many-core GPUs can be used. It is also used in the creation of images in frame buffer intended for media streaming servers where hundreds of peers are served output to display. concurrently. GPU computing is the use of a GPU (graphics processing unit) together with a CPU to accelerate general- A. History : purpose scientific and engineering applications. GPU was first manufactured by NVIDIA.
    [Show full text]
  • The Graphics Pipeline and Opengl I: Transformations
    The Graphics Pipeline and OpenGL I: Transformations Gordon Wetzstein Stanford University EE 267 Virtual Reality Lecture 2 stanford.edu/class/ee267/ Albrecht Dürer, “Underweysung der Messung mit dem Zirckel und Richtscheyt”, 1525 Lecture Overview • what is computer graphics? • the graphics pipeline • primitives: vertices, edges, triangles! • model transforms: translations, rotations, scaling • view transform • perspective transform • window transform blender.org Modeling 3D Geometry Courtesy of H.G. Animations https://www.youtube.com/watch?v=fewbFvA5oGk blender.org What is Computer Graphics? • at the most basic level: conversion from 3D scene description to 2D image • what do you need to describe a static scene? • 3D geometry and transformations • lights • material properties • most common geometry primitives in graphics: • vertices (3D points) and normals (unit-length vector associated with vertex) • triangles (set of 3 vertices, high-resolution 3D models have M or B of triangles) The Graphics Pipeline blender.org • geometry + transformations • cameras and viewing • lighting and shading • rasterization • texturing Some History • Stanford startup in 1981 • computer graphics goes hardware • based on Jim Clark’s geometry engine Some History The Graphics Pipeline • monolithic graphics workstations of the 80s have been replaced by modular GPUs (graphics processing units); major companies: NVIDIA, AMD, Intel • early versions of these GPUs implemented fixed-function rendering pipeline in hardware • GPUs have become programmable starting in the
    [Show full text]
  • Realtime–Rendering with Opengl the Graphics Pipeline
    Realtime{Rendering with OpenGL The Graphics Pipeline Francesco Andreussi Bauhaus{Universit¨atWeimar 14 November 2019 F. Andreussi (BUW) Realtime{Rendering with OpenGL 14 November 2019 1 / 16 Basic Information • Class every second week, 11:00{12:30 in this room, every change will be communicate to you as soon as possible via mail • Every time will be presented an assignment regarding the arguments covered by Prof. W¨uthrichand me to fulfil for the following class. It is possible (and also suggested) to work in couples • The submissions are to be done through push requests on Github and the work has to be presented in person scheduling an appointment with me Delays in the submissions and cheats (e.g. code copied from the Internet or other groups) WILL NOT be accepted! If you find code online DO NOT COPY IT but adapt and comment it, otherwise I have to consider it cheating and you will be rewarded with a 5.0 For any question you can write me at francesco.andreussi@uni{weimar.de F. Andreussi (BUW) Realtime{Rendering with OpenGL 14 November 2019 2 / 16 Graphics Processors & OpenGL A 3D scene is made of primitive shapes (i.e. points, lines and simple polygons), that are processed by the GPU asynchronously w.r.t. the CPU. OpenGL is a rendering library that exposes some functionality to the \Application level" and translates the commands for the GPU driver, which \speaks" forwards our directives to the graphic chip. Fig. 1: Communications between CPU and GPU F. Andreussi (BUW) Realtime{Rendering with OpenGL 14 November 2019 3 / 16 OpenGL OpenGL is an open standard and cross-platform API.
    [Show full text]
  • Interactive Computer Graphics Stanford CS248, Winter 2020 All Q
    Lecture 18: Parallelizing and Optimizing Rasterization on Modern (Mobile) GPUs Interactive Computer Graphics Stanford CS248, Winter 2020 all Q. What is a big concern in mobile computing? Stanford CS248, Winter 2020 A. Power Stanford CS248, Winter 2020 Two reasons to save power Run at higher performance Power = heat for a fxed amount of time. If a chip gets too hot, it must be clocked down to cool off Run at sufficient performance Power = battery Long battery life is a desirable for a longer amount of time. feature in mobile devices Stanford CS248, Winter 2020 Mobile phone examples Samsung Galaxy s9 Apple iPhone 8 11.5 Watt hours 7 Watt hours Stanford CS248, Winter 2020 Graphics processors (GPUs) in these mobile phones Samsung Galaxy s9 Apple iPhone 8 (non US version) ARM Mali Custom Apple GPU G72MP18 in A11 Processor Stanford CS248, Winter 2020 Ways to conserve power ▪ Compute less - Reduce the amount of work required to render a picture - Less computation = less power ▪ Read less data - Data movement has high energy cost Stanford CS248, Winter 2020 Early depth culling (“Early Z”) Stanford CS248, Winter 2020 Depth testing as we’ve described it Rasterization Fragment Processing Graphics pipeline Frame-Buffer Ops abstraction specifes that depth test is Pipeline generates, shades, and depth performed here! tests orange triangle fragments in this region although they do not contribute to fnal image. (they are occluded by the blue triangle) Stanford CS248, Winter 2020 Early Z culling ▪ Implemented by all modern GPUs, not just mobile GPUs ▪ Application needs to sort geometry to make early Z most effective.
    [Show full text]