Understanding the Graphics Pipeline

Total Page:16

File Type:pdf, Size:1020Kb

Understanding the Graphics Pipeline UnderstandingUnderstanding thethe graphicsgraphics pipelinepipeline LectureLecture 22 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider LectureLecture OutlineOutline ► AA historicalhistorical perspectiveperspective onon thethe graphicsgraphics pipelinepipeline Dimensions of innovation. Where we are today Fixed-function vs programmable pipelines ► AA closercloser looklook atat thethe fixedfixed functionfunction pipelinepipeline Walk thru the sequence of operations Reinterpret these as stream operations ► WeWe cancan programprogram thethe fixedfixed--functionfunction pipelinepipeline !! Some examples ► WhatWhat constitutesconstitutes datadata andand memory,memory, andand howhow accessaccess affectsaffects programprogram design.design. TheThe evolutionevolution ofof thethe pipelinepipeline Elements of the graphics pipeline: Parameters controlling design of the pipeline: 1. A scene description: vertices, triangles, colors, lighting 1. Where is the boundary between CPU and GPU ? 2. Transformations that map the scene to a camera viewpoint 2. What transfer method is used ? 3. “Effects”: texturing, shadow 3. What resources are provided mapping, lighting calculations at each step ? 4. Rasterizing: converting geometry 4. What units can access which into pixels GPU memory elements ? 5. Pixel processing: depth tests, stencil tests, and other per-pixel operations. GenerationGeneration I:I: 3dfx3dfx VoodooVoodoo (1996)(1996) • One of the first true 3D game cards • Worked by supplementing standard 2D video card. • Did not do vertex transformations: these were done in the CPU •Did dotexture mapping, z-buffering. http://accelenation.com/?ac.id.123.2 Rasterization Vertex Primitive Raster Frame Vertex Primitive and Frame Transforms Assembly Operations Buffer Transforms Assembly Interpolation Buffer CPU GPU PCI GenerationGeneration II:II: GeForce/RadeonGeForce/Radeon 75007500 (1998)(1998) • Main innovation: shifting the transformation and lighting calculations to the GPU • Allowed multi-texturing: giving bump maps, light maps, and others.. • Faster AGP bus instead of PCI http://accelenation.com/?ac.id.123.5 Rasterization Vertex Primitive Raster Frame Vertex Primitive and Frame Transforms Assembly Operations Buffer Transforms Assembly Interpolation Buffer GPU AGP GenerationGeneration III:III: GeForce3/RadeonGeForce3/Radeon 8500(2001)8500(2001) • For the first time, allowed limited amount of programmability in the vertex pipeline • Also allowed volume texturing and multi-sampling (for antialiasing) http://accelenation.com/?ac.id.123.7 Rasterization Vertex Primitive Raster Frame Vertex Primitive and Frame Transforms Assembly Operations Buffer Transforms Assembly Interpolation Buffer GPU AGP SmallSmall vertex vertex shadersshaders GenerationGeneration IV:IV: RadeonRadeon 9700/GeForce9700/GeForce FXFX (2002)(2002) • This generation is the first generation of fully-programmable graphics cards • Different versions have different resource limits on fragment/vertex programs http://accelenation.com/?ac.id.123.8 Rasterization Vertex Primitive Raster Frame Vertex Primitive and Frame Transforms Assembly Operations Buffer Transforms Assembly Interpolation Buffer AGP ProgrammableProgrammable ProgrammableProgrammable FragmentFragment VertexVertex shader shader ProcessorProcessor Texture Memory GenerationGeneration IV.V:IV.V: GeForce6/X800GeForce6/X800 (2004)(2004) Not exactly a quantum leap, but… ► Simultaneous rendering to multiple buffers ► True conditionals and loops ► Higher precision throughput in the pipeline (64 bits end-to-end, compared to 32 bits earlier.) ► PCIe bus ► More memory/program length/texture accesses ► Texture access by vertex shader Rasterization Vertex Primitive Raster Frame Vertex Primitive and Frame Transforms Assembly Operations Buffer Transforms Assembly Interpolation Buffer AGP ProgrammableProgrammable ProgrammableProgrammable FragmentFragment VertexVertex shader shader ProcessorProcessor Texture Memory Texture Memory GenerationGeneration V:V: GeForce8800/HD2900GeForce8800/HD2900 (2006)(2006) Complete quantum leap ► Ground-up rewrite of GPU ► Support for DirectX 10, and all it implies (more on this later) ► Geometry Shader ► Support for General GPU programming ► Shared Memory (NVIDIA only) Input Programmable ProgrammableProgrammable Input ProgrammableProgrammable Raster Assembler Geometry PixelPixel Assembler VertexVertex shader shader Operations Shader ShaderShader AGP Output Merger Fixed-function pipeline 3D API Commands 3D3D API: API: 3D3D OpenGLOpenGL or or ApplicationApplication Direct3DDirect3D OrOr Game Game CPU-GPU Boundary (AGP/PCIe) Data Stream Command & GPU Vertex Pixel Index Assembled Pixel Primitives Location Updates Stream Stream Rasterization GPU Primitive Raster Frame GPU Primitive and Frame Front End Assembly Operations Buffer Front End Assembly Interpolation Buffer Pre-transformed Pre-transformed Fragments Vertices ProgrammableProgrammable Vertices ProgrammableProgrammable Fragments Transformed VertexVertex FragmentFragment Transformed ProcessorProcessor ProcessorProcessor AA closercloser looklook atat thethe fixedfixed--functionfunction pipelinepipeline PipelinePipeline InputInput Vertex Image F(x,y) = (r,g,b,a) (x, y, z) (r, g, b,a) (Nx,Ny,Nz) (tx, ty,[tz]) (tx, ty) (tx, ty) Material properties* ModelViewModelView TransformationTransformation ►►VerticesVertices mappedmapped fromfrom objectobject spacespace toto worldworld spacespace ►►MM == modelmodel transformationtransformation (scene)(scene) ►►VV == viewview transformationtransformation (camera)(camera) Each matrix transform X’ X is applied to each vertex in the input Y Y’ stream. Think of this Z’ M * V * Z as a kernel operator. W’ 1 LightingLighting LightingLighting informationinformation isis combinedcombined withwith normalsnormals andand otherother parametersparameters atat eacheach vertexvertex inin orderorder toto createcreate newnew colors.colors. Color(v) = emissive + ambient + diffuse + specular Each term in the right hand side is a function of the vertex color, position, normal and material properties. Clipping/Projection/Viewport(3D)Clipping/Projection/Viewport(3D) ►►MoreMore matrixmatrix transformationstransformations thatthat operateoperate onon aa vertexvertex toto transformtransform itit intointo thethe viewportviewport space.space. ►►NoteNote thatthat aa vertexvertex maymay bebe eliminatedeliminated fromfrom thethe inputinput streamstream (if(if itit isis clipped).clipped). ►►TheThe viewportviewport isis twotwo--dimensional:dimensional: however,however, vertexvertex zz--valuevalue isis retainedretained forfor depthdepth testing.testing. Clip test is first example of a conditional in the pipeline. However, it is not a fully general conditional. Why ? Rasterizing+InterpolationRasterizing+Interpolation ►►AllAll primitivesprimitives areare nownow convertedconverted toto fragments.fragments. ►►DataData typetype changechange !! VerticesVertices toto fragmentsfragments Texture coordinates are interpolated from Fragment attributes: texture coordinates of vertices. (r,g,b,a) This gives us a linear interpolation operator (x,y,z,w) for free. VERY USEFUL ! (tx,ty), … PerPer--fragmentfragment operationsoperations ►►TheThe rasterizerrasterizer producesproduces aa streamstream ofof fragments.fragments. ►►EachEach fragmentfragment undergoesundergoes aa seriesseries ofof teststests withwith increasingincreasing complexity.complexity. Test 1: Scissor Scissor test is analogous to clipping If (fragment lies in fixed rectangle) operation in fragment space instead of let it pass else discard it vertex space. Test 2: Alpha Alpha test is a slightly more general If( fragment.a >= <constant> ) conditional. Why ? let it pass else discard it. PerPer--fragmentfragment operationsoperations ► StencilStencil test:test: S(xS(x,, y)y) isis stencilstencil bufferbuffer valuevalue forfor fragmentfragment withwith coordinatescoordinates ((x,yx,y)) ► IfIf f(S(x,yf(S(x,y)),)), letlet pixelpixel passpass elseelse killkill it.it. UpdateUpdate S(xS(x,, y)y) conditionallyconditionally dependingdepending onon f(S(x,yf(S(x,y)))) andand g(D(x,yg(D(x,y)).)). ► DepthDepth test:test: D(xD(x,, y)y) isis depthdepth bufferbuffer value.value. ► IfIf g(D(x,yg(D(x,y)))) letlet pixelpixel passpass elseelse killkill it.it. UpdateUpdate D(x,yD(x,y)) conditionally.conditionally. PerPer--fragmentfragment operationsoperations ► StencilStencil andand depthdepth teststests areare moremore generalgeneral conditionals.conditionals. WhyWhy ?? ► TheseThese areare thethe onlyonly teststests thatthat cancan changechange thethe statestate ofof internalinternal storagestorage (stencil(stencil buffer,buffer, depthdepth buffer).buffer). ► OneOne ofof thethe updateupdate operationsoperations forfor thethe stencilstencil bufferbuffer isis aa ““countcount”” operation.operation. RememberRemember this!this! ► Unfortunately,Unfortunately, stencilstencil andand depthdepth buffersbuffers havehave lowerlower precisionprecision (8,(8, 2424 bitsbits respresp.).) PostPost--processingprocessing ►►Blending:Blending: pixelspixels areare accumulatedaccumulated intointo finalfinal framebufferframebuffer storagestorage newnew--valval == oldold--valval opop pixelpixel--valuevalue IfIf opop isis +,+, wewe cancan sumsum allall thethe (say)(say) redred componentscomponents ofof pixelspixels thatthat passpass allall tests.tests. Problem:Problem: InIn generation<=generation<= IV,IV, blendingblending cancan onlyonly bebe donedone inin 88--bitbit channelschannels (the(the channelschannels sentsent toto thethe
Recommended publications
  • GLSL 4.50 Spec
    The OpenGL® Shading Language Language Version: 4.50 Document Revision: 7 09-May-2017 Editor: John Kessenich, Google Version 1.1 Authors: John Kessenich, Dave Baldwin, Randi Rost Copyright (c) 2008-2017 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to the Khronos Group, Inc. It or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast, or otherwise exploited in any manner without the express prior written permission of Khronos Group. You may use this specification for implementing the functionality therein, without altering or removing any trademark, copyright or other notice from the specification, but the receipt or possession of this specification does not convey any rights to reproduce, disclose, or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part. Khronos Group grants express permission to any current Promoter, Contributor or Adopter member of Khronos to copy and redistribute UNMODIFIED versions of this specification in any fashion, provided that NO CHARGE is made for the specification and the latest available update of the specification for any version of the API is used whenever possible. Such distributed specification may be reformatted AS LONG AS the contents of the specification are not changed in any way. The specification may be incorporated into a product that is sold as long as such product includes significant independent work developed by the seller. A link to the current version of this specification on the Khronos Group website should be included whenever possible with specification distributions.
    [Show full text]
  • Realizm Data Sheet200.Indd
    The Ultimate in Professional 3D Graphics Processing Welcome to a new kind of Realizm . where precision, speed, and your creativity are combined in ways you’ve only dreamed. 3Dlabs® puts the power of the industry’s most advanced visual processing right at your fingertips with Wildcat® Realizm™ 200. 3Dlabs’ AGP 8x-based graphics solution delivers all the performance, image fidelity, and features you’d expect from a professional graphics accelerator. So, whether you’re working on realistic animations, intricate CAD renderings, or complex scientific visualizations – if you can imagine it, you can make it real with Wildcat Realizm. Remove the boundaries to Remove the boundaries to your creativity. your productivity. With Wildcat Realizm 200’s no- Wildcat Realizm graphics compromise performance plus accelerators offer the highest levels the industry’s largest memory of image precision. You get quality resources, you’ll have more time and performance in one advanced to devote to your creativity. technology solution. Unmatched VPU Performance Extreme Geometry Performance • The most advanced Visual Processing Unit (VPU) available today • Manipulate the most complex models easily in real-time offering unparalleled levels of performance, programmability, • Wildcat Realizm’s VPU features full floating-point pipelines from With over 40 years of combined engineering talent, accuracy, and fidelity input vertices to displayed pixels to offer you unparalleled levels of 3Dlabs is the only graphics hardware developer 100% • Optimized floating-point precision across the entire pipeline performance, programmability, accuracy, and fidelity dedicated to building solutions designed specifically for The Most Memory Available on Any AGP Graphics Card – Image Quality graphics professionals. • Genuine real-time image manipulation and rendering using advanced 512 MB The Advanced Benefits of Wildcat Realizm 200 .
    [Show full text]
  • First Person Shooting (FPS) Game
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 05 Issue: 04 | Apr-2018 www.irjet.net p-ISSN: 2395-0072 Thunder Force - First Person Shooting (FPS) Game Swati Nadkarni1, Panjab Mane2, Prathamesh Raikar3, Saurabh Sawant4, Prasad Sawant5, Nitesh Kuwalekar6 1 Head of Department, Department of Information Technology, Shah & Anchor Kutchhi Engineering College 2 Assistant Professor, Department of Information Technology, Shah & Anchor Kutchhi Engineering College 3,4,5,6 B.E. student, Department of Information Technology, Shah & Anchor Kutchhi Engineering College ----------------------------------------------------------------***----------------------------------------------------------------- Abstract— It has been found in researches that there is an have challenged hardware development, and multiplayer association between playing first-person shooter video games gaming has been integral. First-person shooters are a type of and having superior mental flexibility. It was found that three-dimensional shooter game featuring a first-person people playing such games require a significantly shorter point of view with which the player sees the action through reaction time for switching between complex tasks, mainly the eyes of the player character. They are unlike third- because when playing fps games they require to rapidly react person shooters in which the player can see (usually from to fast moving visuals by developing a more responsive mind behind) the character they are controlling. The primary set and to shift back and forth between different sub-duties. design element is combat, mainly involving firearms. First person-shooter games are also of ten categorized as being The successful design of the FPS game with correct distinct from light gun shooters, a similar genre with a first- direction, attractive graphics and models will give the best person perspective which uses light gun peripherals, in experience to play the game.
    [Show full text]
  • Advanced Computer Graphics to Do Motivation Real-Time Rendering
    To Do Advanced Computer Graphics § Assignment 2 due Feb 19 § Should already be well on way. CSE 190 [Winter 2016], Lecture 12 § Contact us for difficulties etc. Ravi Ramamoorthi http://www.cs.ucsd.edu/~ravir Motivation Real-Time Rendering § Today, create photorealistic computer graphics § Goal: interactive rendering. Critical in many apps § Complex geometry, lighting, materials, shadows § Games, visualization, computer-aided design, … § Computer-generated movies/special effects (difficult or impossible to tell real from rendered…) § Until 10-15 years ago, focus on complex geometry § CSE 168 images from rendering competition (2011) § § But algorithms are very slow (hours to days) Chasm between interactivity, realism Evolution of 3D graphics rendering Offline 3D Graphics Rendering Interactive 3D graphics pipeline as in OpenGL Ray tracing, radiosity, photon mapping § Earliest SGI machines (Clark 82) to today § High realism (global illum, shadows, refraction, lighting,..) § Most of focus on more geometry, texture mapping § But historically very slow techniques § Some tweaks for realism (shadow mapping, accum. buffer) “So, while you and your children’s children are waiting for ray tracing to take over the world, what do you do in the meantime?” Real-Time Rendering SGI Reality Engine 93 (Kurt Akeley) Pictures courtesy Henrik Wann Jensen 1 New Trend: Acquired Data 15 years ago § Image-Based Rendering: Real/precomputed images as input § High quality rendering: ray tracing, global illumination § Little change in CSE 168 syllabus, from 2003 to
    [Show full text]
  • Developer Tools Showcase
    Developer Tools Showcase Randy Fernando Developer Tools Product Manager NVISION 2008 Software Content Creation Performance Education Development FX Composer Shader PerfKit Conference Presentations Debugger mental mill PerfHUD Whitepapers Artist Edition Direct3D SDK PerfSDK GPU Programming Guide NVIDIA OpenGL SDK Shader Library GLExpert Videos CUDA SDK NV PIX Plug‐in Photoshop Plug‐ins Books Cg Toolkit gDEBugger GPU Gems 3 Texture Tools NVSG GPU Gems 2 Melody PhysX SDK ShaderPerf GPU Gems PhysX Plug‐Ins PhysX VRD PhysX Tools The Cg Tutorial NVIDIA FX Composer 2.5 The World’s Most Advanced Shader Authoring Environment DirectX 10 Support NVIDIA Shader Debugger Support ShaderPerf 2.0 Integration Visual Models & Styles Particle Systems Improved User Interface Particle Systems All-New Start Page 350Z Sample Project Visual Models & Styles Other Major Features Shader Creation Wizard Code Editor Quickly create common shaders Full editor with assisted Shader Library code generation Hundreds of samples Properties Panel Texture Viewer HDR Color Picker Materials Panel View, organize, and apply textures Even More Features Automatic Light Binding Complete Scripting Support Support for DirectX 10 (Geometry Shaders, Stream Out, Texture Arrays) Support for COLLADA, .FBX, .OBJ, .3DS, .X Extensible Plug‐in Architecture with SDK Customizable Layouts Semantic and Annotation Remapping Vertex Attribute Packing Remote Control Capability New Sample Projects 350Z Visual Styles Atmospheric Scattering DirectX 10 PCSS Soft Shadows Materials Post‐Processing Simple Shadows
    [Show full text]
  • 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]
  • NVIDIA Quadro P620
    UNMATCHED POWER. UNMATCHED CREATIVE FREEDOM. NVIDIA® QUADRO® P620 Powerful Professional Graphics with FEATURES > Four Mini DisplayPort 1.4 Expansive 4K Visual Workspace Connectors1 > DisplayPort with Audio The NVIDIA Quadro P620 combines a 512 CUDA core > NVIDIA nView® Desktop Pascal GPU, large on-board memory and advanced Management Software display technologies to deliver amazing performance > HDCP 2.2 Support for a range of professional workflows. 2 GB of ultra- > NVIDIA Mosaic2 fast GPU memory enables the creation of complex 2D > Dedicated hardware video encode and decode engines3 and 3D models and a flexible single-slot, low-profile SPECIFICATIONS form factor makes it compatible with even the most GPU Memory 2 GB GDDR5 space and power-constrained chassis. Support for Memory Interface 128-bit up to four 4K displays (4096x2160 @ 60 Hz) with HDR Memory Bandwidth Up to 80 GB/s color gives you an expansive visual workspace to view NVIDIA CUDA® Cores 512 your creations in stunning detail. System Interface PCI Express 3.0 x16 Quadro cards are certified with a broad range of Max Power Consumption 40 W sophisticated professional applications, tested by Thermal Solution Active leading workstation manufacturers, and backed by Form Factor 2.713” H x 5.7” L, a global team of support specialists, giving you the Single Slot, Low Profile peace of mind to focus on doing your best work. Display Connectors 4x Mini DisplayPort 1.4 Whether you’re developing revolutionary products or Max Simultaneous 4 direct, 4x DisplayPort telling spectacularly vivid visual stories, Quadro gives Displays 1.4 Multi-Stream you the performance to do it brilliantly.
    [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]
  • Nvidia Quadro T1000
    NVIDIA professional laptop GPUs power the world’s most advanced thin and light mobile workstations and unique compact devices to meet the visual computing needs of professionals across a wide range of industries. The latest generation of NVIDIA RTX professional laptop GPUs, built on the NVIDIA Ampere architecture combine the latest advancements in real-time ray tracing, advanced shading, and AI-based capabilities to tackle the most demanding design and visualization workflows on the go. With the NVIDIA PROFESSIONAL latest graphics technology, enhanced performance, and added compute power, NVIDIA professional laptop GPUs give designers, scientists, and artists the tools they need to NVIDIA MOBILE GRAPHICS SOLUTIONS work efficiently from anywhere. LINE CARD GPU SPECIFICATIONS PERFORMANCE OPTIONS 2 1 ® / TXAA™ Anti- ® ™ 3 4 * 5 NVIDIA FXAA Aliasing Manager NVIDIA RTX Desktop Support Vulkan NVIDIA Optimus NVIDIA CUDA NVIDIA RT Cores Cores Tensor GPU Memory Memory Bandwidth* Peak Memory Type Memory Interface Consumption Max Power TGP DisplayPort Open GL Shader Model DirectX PCIe Generation Floating-Point Precision Single Peak)* (TFLOPS, Performance (TFLOPS, Performance Tensor Peak) Gen MAX-Q Technology 3rd NVENC / NVDEC Processing Cores Processing Laptop GPUs 48 (2nd 192 (3rd NVIDIA RTX A5000 6,144 16 GB 448 GB/s GDDR6 256-bit 80 - 165 W* 1.4 4.6 7.0 12 Ultimate 4 21.7 174.0 Gen) Gen) 40 (2nd 160 (3rd NVIDIA RTX A4000 5,120 8 GB 384 GB/s GDDR6 256-bit 80 - 140 W* 1.4 4.6 7.0 12 Ultimate 4 17.8 142.5 Gen) Gen) 32 (2nd 128 (3rd NVIDIA RTX A3000
    [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]