Computer Graphics Exercise – Jakob Wagner

Total Page:16

File Type:pdf, Size:1020Kb

Computer Graphics Exercise – Jakob Wagner Computer Graphics Exercise – Jakob Wagner Computer Graphics Exercise 7. Framebuffers & Offscreen Rendering Jakob Wagner for internal use only 7 – Framebuffers & Offscreen Rendering Computer Graphics Exercise – Jakob Wagner Fragment Submission Vertex Specification Vertex Processing Vertex Post-processing Primitive Assembly define vertex format & data in transform to clip space clipping, perspective divide, build points/lines/triangles model space viewport transform from vertices Vertex Shader Rasterisation Fragment Processing Fragment Submission scan-convert primitives to computer fragment properties testing and blending fragments, property transfer write to buffer Fragment Shader https://glumpy.github.io/modern-gl.html 7 – Framebuffers & Offscreen Rendering 2 Computer Graphics Exercise – Jakob Wagner Fragment Submission - happens after the fragment attribute computations - performed on each fragment submitted by the shader - defines if and how the fragment is applied to the drawing buffer - stages: a. pixel ownership test - check if display pixels are covered by other window b. scissor test - discard fragments outside specified rectangle c. stencil test - check if fragment fulfills custom condition d. depth test - check if fragment is occluded by buffer pixel e. blending - blend fragment with buffer pixel 7 – Framebuffers & Offscreen Rendering 3 Computer Graphics Exercise – Jakob Wagner color buffer Depth Test - necessary for occlusion culling - submitted fragment’s depth values are stored in a 1 channel Depth Buffer - depth value of fragment is compared with current value of the pixel at fragment position in Depth Buffer - smaller: fragment is closer to camera -> in front of pixel in buffer -> fragment passes - bigger: fragment further from camera -> occluded by pixel in buffer -> fragment fails depth buffer (linearized) fragment comparison value in buffer depth 0.7 0.3 ✗ 0.1 ✓ 7 – Framebuffers & Offscreen Rendering 4 Computer Graphics Exercise – Jakob Wagner Framebuffer - is the target of fragment submissions Framebuffer - can contain three types of attachments: - color_attachment: stores pixel color ColorColor Depth Stencil - depth_attachment: stores pixel depth AttachmentAttachment Attachment Attachment - stencil attachment: stores additional pixel value - attachments can be Textures and Renderbuffers - there are two types: - the default Framebuffer Texture/ Texture Renderbuffer Renderbuffer bind - Framebuffer Objects Object Object Object - there is always 1 active/bound Framebuffer - the bound Framebuffer is cleared using glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 7 – Framebuffers & Offscreen Rendering 5 Computer Graphics Exercise – Jakob Wagner Renderbuffers - are OpenGL objects similar to textures - used for depth and stencil buffer - specialized as render targets, no sampling support, no data initialisation possible - only usable when attached to a Framebuffer - can only be bound to the GL_RENDERBUFFER binding point - format is either depth or stencil with varying bit-depths or both combined creation: glGenRenderbuffers(1, &rb_handle) 1. generate Renderbuffer Object 2. bind RBO for formatting glBindRenderbuffer(GL_RENDERBUFFER, rb_handle) 3. specify RBO properties: glRenderbufferStorage(GL_RENDERBUFFER, - format, e.g. GL_DEPTH_COMPONENT24 format, - horizontal resolution width, - vertical resolution height) 7 – Framebuffers & Offscreen Rendering 6 Computer Graphics Exercise – Jakob Wagner Default Framebuffer scene objectobject - created with OpenGL context objectobject - configured during context creation render - index is 0, bound by default GL_BACK - content is what is visible on screen - automatically resized with window frame n - either single or double buffered: - single: objects rendered directly to screen swap - double: objects rendered to backbuffer, when finished, it is swapped with front buffer GL_FRONT - 1 buffer for mono, or 2 buffers for stereo rendering - no generic color attachments but specific buffers: GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK… frame n - 1 - only one active Draw Buffer possible 7 – Framebuffers & Offscreen Rendering 7 Computer Graphics Exercise – Jakob Wagner Framebuffer Object Context - is OpenGL object - created and configured by user at runtime GL_FRAMEBUFFER - can hold: n color attachment Textures DrawBuffer Framebuffer Object 1 depth attachment Texture/Renderbuffer ... 1 stencil attachment Renderbuffer GL_COLOR_ATTACHMENT1 GL_STENCIL_ATTACHMENT - color attachments specified as Draw Buffers will be targets of GL_COLOR_ATTACHMENTn GL_DEPTH_ATTACHMENT fragment submissions Texture Renderbuffer - all attachments must have the same dimensions Object Object Shader out vec4 out_Color; out float gl_FragDepth; 7 – Framebuffers & Offscreen Rendering 8 Computer Graphics Exercise – Jakob Wagner Framebuffer Specification define Framebuffer 1. generate Frame Buffer Object glGenFramebuffers(1, &fbo_handle) 2. bind FBO for configuration glBindFramebuffer(GL_FRAMEBUFFER, fbo_handle) define attachments glFramebufferTexture(GL_FRAMEBUFFER, 3. specify Texture Object attachments - to color or depth attachment GL_COLOR_ATTACHMENTi / GL_DEPTH_ATTACHMENT, - texture handle tex_handle, - highest level of texture (no mipmap) 0) 4. specify Renderbuffer Object attachments glFramebufferRenderbuffer(GL_FRAMEBUFFER, - to depth or stencil attachment GL_DEPTH_ATTACHMENT / GL_STENCIL_ATTACHMENT, - value must be GL_RENDERBUFFER GL_RENDERBUFFER - handle of RBO rb_handle) define draw buffers 5. create array containing enums representing color attachments GLenum draw_buffers[n] = {GL_COLOR_ATTACHMENT0, ...} 6. set these color attachments to receive fragments glDrawBuffers(n, draw_buffers) check validity GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER) 7. get the FBO status 8. compare return value with the valid status value if (status != GL_FRAMEBUFFER_COMPLETE) {/*output error*/} 7 – Framebuffers & Offscreen Rendering 9 Computer Graphics Exercise – Jakob Wagner Offscreen rendering - only the default Framebuffers content is visible on screen -> when rendering to a FBO, results are not visible - rendering results stored in an FBO must be transferred to default Framebuffer - direct pixel transfer by blitting is slow and not very convenient - indirect transfer through triangle rendering works best: render to the default Framebuffer a a quadrangle covering the screen, sample the FBOs color texture at each create fragment - allows post-processing with global knowledge (color values of neighbour pixels etc.) scene Framebuffer Object apply screen quad default Framebuffer render render color buffer depth buffer texture color buffer depth buffer 7 – Framebuffers & Offscreen Rendering 10 Computer Graphics Exercise – Jakob Wagner Screen quad - does not require any transformation - can be defined directly in normalized device space (window edges at 1.0 and -1.0) - vertices can be defined in order {v1, v2, v4, v3} and rendered as GL_TRIANGLE_STRIP -> only 4 vertices required - texture coordinates can be computed in the vertex shader - fragment shader has the FBO color texture as sampler - the pixel value of the color texture at the texture coordinate is sampled and assigned to out_Color v4 v3 pos (-1.0, 1.0, 0.0) pos (1.0, 1.0, 0.0) uv (0.0, 1.0) uv (1.0, 1.0) pos (-1.0, -1.0, 0.0) pos (1.0, -1.0, 0.0) uv (0.0, 0.0) v1 v2 uv (1.0, 0.0) 7 – Framebuffers & Offscreen Rendering 11 Computer Graphics Exercise – Jakob Wagner Post-processing Effects luminance preserving grayscale: channels are weighted because their perceived luminance is not uniform: luminance = 0.2126 ∙ cr + 0.7152 ∙ cg + 0.0722 ∙ cb mirroring: the texture coordinates are inverted (1 becomes 0 and 0 becomes 1) 1 / 16 1 / 8 1 / 16 Gaussian Blur: 1 / 8 1 / 4 1 / 8 the resulting color of the target pixel is the weighted sum of the neighbouring pixels target pixel 3x3 blurring kernel: 9 texture lookups per pixel 1 / 16 1 / 8 1 / 16 requires knowledge of pixel size in texture space to compute the offset of neighbours -> can be computed using pass_TexCoord (position in texture space) and gl_FragCoord (position in window space) -> relation: pass_TexCoord = pixel_size · gl_FragCoord 7 – Framebuffers & Offscreen Rendering 12 Computer Graphics Exercise – Jakob Wagner Assignment 5 – Offscreen Rendering Framebuffer creation - on startup, create a texture and a renderbuffer object - format these buffers in the update_projection() function (so that they are resized every time when window size changes) - create a FBO and attach the texture as color- and the renderbuffer as depth-attachment, specify the texture as draw buffer Screenquad creation - create a new model object for the screen quad as explained - create a new Shader Program for the quad, without any transformations in the vertex shader - upload the Texture Unit of the color texture as uniform sampler and do a texture lookup in the fragment shader Rendering - bind the new FBO and render the scene as usual - bind the default Framebuffer and render the screen quad - when everything works, there will be no visible difference between rendering to the FBO or directly to the default Framebuffer 7 – Framebuffers & Offscreen Rendering 13.
Recommended publications
  • POWERVR 3D Application Development Recommendations
    Imagination Technologies Copyright POWERVR 3D Application Development Recommendations Copyright © 2009, Imagination Technologies Ltd. All Rights Reserved. This publication contains proprietary information which is protected by copyright. The information contained in this publication is subject to change without notice and is supplied 'as is' without warranty of any kind. Imagination Technologies and the Imagination Technologies logo are trademarks or registered trademarks of Imagination Technologies Limited. All other logos, products, trademarks and registered trademarks are the property of their respective owners. Filename : POWERVR. 3D Application Development Recommendations.1.7f.External.doc Version : 1.7f External Issue (Package: POWERVR SDK 2.05.25.0804) Issue Date : 07 Jul 2009 Author : POWERVR POWERVR 1 Revision 1.7f Imagination Technologies Copyright Contents 1. Introduction .................................................................................................................................4 1. Golden Rules...............................................................................................................................5 1.1. Batching.........................................................................................................................5 1.1.1. API Overhead ................................................................................................................5 1.2. Opaque objects must be correctly flagged as opaque..................................................6 1.3. Avoid mixing
    [Show full text]
  • Rasterization & the Graphics Pipeline 15.1 Rasterization Basics
    1 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 15.1Rasterization Basics Rasterization & TheGraphics Pipeline Rasterization& -1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 In This Video • The Graphics Pipeline and how it processes triangles – Projection, rasterisation, shading, depth testing • DirectX12 and its stages 2 Modern Graphics Pipeline • Input – Geometric model • Triangle vertices, vertex normals, texture coordinates – Lighting/material model (shader) • Light source positions, colors, intensities, etc. • Texture maps, specular/diffuse coefficients, etc. – Viewpoint + projection plane – You know this, you’ve done it! • Output – Color (+depth) per pixel Colbert & Krivanek 3 The Graphics Pipeline • Project vertices to 2D (image) • Rasterize triangle: find which pixels should be lit • Compute per-pixel color • Test visibility (Z-buffer), update frame buffer color 4 The Graphics Pipeline • Project vertices to 2D (image) • Rasterize triangle: find which pixels should be lit – For each pixel, test 3 edge equations • if all pass, draw pixel • Compute per-pixel color • Test visibility (Z-buffer), update frame buffer color 5 The Graphics Pipeline • Perform projection of vertices • Rasterize triangle: find which pixels should be lit • Compute per-pixel color • Test visibility, update frame buffer color – Store minimum distance to camera for each pixel in “Z-buffer” • ~same as tmin in ray casting! – if new_z < zbuffer[x,y] zbuffer[x,y]=new_z framebuffer[x,y]=new_color frame buffer Z buffer 6 The Graphics Pipeline For each triangle transform into eye space (perform projection) setup 3 edge equations for each pixel x,y if passes all edge equations compute z if z<zbuffer[x,y] zbuffer[x,y]=z framebuffer[x,y]=shade() 7 (Simplified version) DirectX 12 Pipeline (Vulkan & Metal are highly similar) Vertex & Textures, index data etc.
    [Show full text]
  • Powervr Graphics - Latest Developments and Future Plans
    PowerVR Graphics - Latest Developments and Future Plans Latest Developments and Future Plans A brief introduction • Joe Davis • Lead Developer Support Engineer, PowerVR Graphics • With Imagination’s PowerVR Developer Technology team for ~6 years • PowerVR Developer Technology • SDK, tools, documentation and developer support/relations (e.g. this session ) facebook.com/imgtec @PowerVRInsider │ #idc15 2 Company overview About Imagination Multimedia, processors, communications and cloud IP Driving IP innovation with unrivalled portfolio . Recognised leader in graphics, GPU compute and video IP . #3 design IP company world-wide* Ensigma Communications PowerVR Processors Graphics & GPU Compute Processors SoC fabric PowerVR Video MIPS Processors General Processors PowerVR Vision Processors * source: Gartner facebook.com/imgtec @PowerVRInsider │ #idc15 4 About Imagination Our IP plus our partners’ know-how combine to drive and disrupt Smart WearablesGaming Security & VR/AR Advanced Automotive Wearables Retail eHealth Smart homes facebook.com/imgtec @PowerVRInsider │ #idc15 5 About Imagination Business model Licensees OEMs and ODMs Consumers facebook.com/imgtec @PowerVRInsider │ #idc15 6 About Imagination Our licensees and partners drive our business facebook.com/imgtec @PowerVRInsider │ #idc15 7 PowerVR Rogue Hardware PowerVR Rogue Recap . Tile-based deferred renderer . Building on technology proven over 5 previous generations . Formally announced at CES 2012 . USC - Universal Shading Cluster . New scalar SIMD shader core . General purpose compute is a first class citizen in the core … . … while not forgetting what makes a shader core great for graphics facebook.com/imgtec @PowerVRInsider │ #idc15 9 TBDR Tile-based . Tile-based . Split each render up into small tiles (32x32 for the most part) . Bin geometry after vertex shading into those tiles . Tile-based rasterisation and pixel shading .
    [Show full text]
  • Real-Time Ray Traced Ambient Occlusion and Animation Image Quality and Performance of Hardware- Accelerated Ray Traced Ambient Occlusion
    DEGREE PROJECTIN COMPUTER SCIENCE AND ENGINEERING, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2021 Real-time Ray Traced Ambient Occlusion and Animation Image quality and performance of hardware- accelerated ray traced ambient occlusion FABIAN WALDNER KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Real-time Ray Traced Ambient Occlusion and Animation Image quality and performance of hardware-accelerated ray traced ambient occlusion FABIAN Waldner Master’s Programme, Industrial Engineering and Management, 120 credits Date: June 2, 2021 Supervisor: Christopher Peters Examiner: Tino Weinkauf School of Electrical Engineering and Computer Science Swedish title: Strålspårad ambient ocklusion i realtid med animationer Swedish subtitle: Bildkvalité och prestanda av hårdvaruaccelererad, strålspårad ambient ocklusion © 2021 Fabian Waldner Abstract | i Abstract Recently, new hardware capabilities in GPUs has opened the possibility of ray tracing in real-time at interactive framerates. These new capabilities can be used for a range of ray tracing techniques - the focus of this thesis is on ray traced ambient occlusion (RTAO). This thesis evaluates real-time ray RTAO by comparing it with ground- truth ambient occlusion (GTAO), a state-of-the-art screen space ambient occlusion (SSAO) method. A contribution by this thesis is that the evaluation is made in scenarios that includes animated objects, both rigid-body animations and skinning animations. This approach has some advantages: it can emphasise visual artefacts that arise due to objects moving and animating. Furthermore, it makes the performance tests better approximate real-world applications such as video games and interactive visualisations. This is particularly true for RTAO, which gets more expensive as the number of objects in a scene increases and have additional costs from managing the ray tracing acceleration structures.
    [Show full text]
  • Michael Doggett Department of Computer Science Lund University Overview
    Graphics Architectures and OpenCL Michael Doggett Department of Computer Science Lund university Overview • Parallelism • Radeon 5870 • Tiled Graphics Architectures • Important when Memory and Bandwidth limited • Different to Tiled Rasterization! • Tessellation • OpenCL • Programming the GPU without Graphics © mmxii mcd “Only 10% of our pixels require lots of samples for soft shadows, but determining which 10% is slower than always doing the samples. ” by ID_AA_Carmack, Twitter, 111017 Parallelism • GPUs do a lot of work in parallel • Pipelining, SIMD and MIMD • What work are they doing? © mmxii mcd What’s running on 16 unifed shaders? 128 fragments in parallel 16 cores = 128 ALUs MIMD 16 simultaneous instruction streams 5 Slide courtesy Kayvon Fatahalian vertices/fragments primitives 128 [ OpenCL work items ] in parallel CUDA threads vertices primitives fragments 6 Slide courtesy Kayvon Fatahalian Unified Shader Architecture • Let’s take the ATI Radeon 5870 • From 2009 • What are the components of the modern graphics hardware pipeline? © mmxii mcd Unified Shader Architecture Grouper Rasterizer Unified shader Texture Z & Alpha FrameBuffer © mmxii mcd Unified Shader Architecture Grouper Rasterizer Unified Shader Texture Z & Alpha FrameBuffer ATI Radeon 5870 © mmxii mcd Shader Inputs Vertex Grouper Tessellator Geometry Grouper Rasterizer Unified Shader Thread Scheduler 64 KB GDS SIMD 32 KB LDS Shader Processor 5 32bit FP MulAdd Texture Sampler Texture 16 Shader Processors 256 KB GPRs 8 KB L1 Tex Cache 20 SIMD Engines Shader Export Z & Alpha 4
    [Show full text]
  • 3/4-Discrete Optimal Transport
    3 4-discrete optimal transport Fr´ed´ericde Gournay Jonas Kahn L´eoLebrat July 26, 2021 Abstract 3 This paper deals with the 4 -discrete 2-Wasserstein optimal transport between two measures, where one is supported by a set of segment and the other one is supported by a set of Dirac masses. We select the most suitable optimization procedure that computes the optimal transport and provide numerical examples of approximation of cloud data by segments. Introduction The numerical computation of optimal transport in the sense of the 2-Wasserstein distance has known several break- throughs in the last decade. One can distinguish three kinds of methods : The first method is based on underlying PDEs [2] and is only available when the measures are absolutely continuous with respect to the Lebesgue measure. The second method deals with discrete measures and is known as the Sinkhorn algorithm [7, 3]. The main idea of this method is to add an entropic regularization in the Kantorovitch formulation. The third method is known as semi- discrete [19, 18, 8] optimal transport and is limited to the case where one measure is atomic and the other is absolutely continuous. This method uses tools of computational geometry, the Laguerre tessellation which is an extension of the Voronoi diagram. The aim of this paper is to develop an efficient method to approximate a discrete measure (a point cloud) by a measure carried by a curve. This requires a novel way to compute an optimal transportation distance between two such measures, none of the methods quoted above comply fully to this framework.
    [Show full text]
  • Difi: Fast Distance Field Computation Using Graphics Hardware
    DiFi: Fast Distance Field Computation using Graphics Hardware Avneesh Sud Dinesh Manocha Department of Computer Science Univeristy of North Carolina Chapel Hill, NC 27599-3175 {sud,dm}@cs.unc.edu http://gamma.cs.unc.edu/DiFi Abstract Most practically efficient methods for computing the dis- tance fields in 2− or 3−space compute the distance field We present a novel algorithm for fast computation of dis- on a discrete grid. Essentially the methods fall into 2 cat- cretized distance fields using graphics hardware. Given a egories: methods based on front propagation and methods set of primitives and a distance metric, our algorithm com- based on Voronoi regions. putes the distance field along each slice of a uniform spatial Main Contributions: In this paper we present an ap- grid by rasterizing the distance functions. It uses bounds proach that computes discrete approximations of the 3D dis- on the spatial extent of Voronoi regions of each primitive as tance field and its application to medial axis computation well as spatial coherence between adjacent slices to cull the using the graphics hardware. Our contributions include: primitives. As a result, it can significantly reduce the load on the graphics pipeline. We have applied this technique 1. A novel site culling algorithm that uses Voronoi region to compute the Voronoi regions of large models composed properties to accelerate 3D distance field computation of tens of thousands of primitives. For a given grid size, 2. A technique for reducing the fill per slice using con- the culling efficiency increases with the model complexity. servative bounds on the Voronoi regions To demonstrate this technique, we compute the medial axis transform of a polyhedral model.
    [Show full text]
  • Dena Slothower
    Sketches & Applications 158 ComicDiary: Representing 176 Elastic Object Manipulation Using Chair Individual Experiences in Comics Coarse-to-fine Representation of Dena Slothower Style Mass-Spring Models 159 Compressing Large Polygonal 177 ELMO: A Head-Mounted Display Stanford University Models for Real-Time Image Synthesis 160 A Computationally Efficient 178 Elmo’s World: Digital Puppetry on Framework for Modeling Soft Body “Sesame Street” 140 Committee & Jury Impact 179 The Empathic Visualisation 141 Introduction 161 Computing 3D Geometry Directly Algorithm: Chernoff Faces from Range Images Revisited 142 “2001: An MR-Space Odyssey” 162 Computing Nearly Exact Visible 180 Enhanced Reality: A New Frontier Applying Mixed Reality Technology Sets within a Shaft with 4D for Computer Entertainment to VFX in Filmmaking Hierarchical Z-Buffering 181 Explicit Control of Topological 138 143 2D Shape Interpolation Using a 163 CONTIGRA: A High-Level XML- Evolution in 3D Mesh Morphing Hierarchical Approach Based Aprroach to Interactive 3D 182 Fair and Robust Curve Interpolation 144 3D Traffic Visualization in Real Components on the Sphere Time 164 Crashing Planes the Easy Way: 183 A Fast Simulating System for 145 ALVIN on the Web: Distributive Pearl Harbor Realistic Motion and Realistic Mission Rehearsal for a Deep 165 Creating Tools for PLAYSTA- Appearance of Fluids Submersible Vehicle TION2 Game Development 184 Fast-moving Water in DreamWorks’ 146 Analysis and Simulation of Facial 166 Creative Approaches to the “Spirit” Movements in Elicited and Posed
    [Show full text]
  • Integration of Ray-Tracing Methods Into the Rasterisation Process University of Dublin, Trinity College
    Integration of Ray-Tracing Methods into the Rasterisation Process by Shane Christopher, B.Sc. GMIT, B.Sc. DLIADT Dissertation Presented to the University of Dublin, Trinity College in fulfillment of the requirements for the Degree of MSc. Computer Science (Interactive Entertainment Technology) University of Dublin, Trinity College September 2010 Declaration I, the undersigned, declare that this work has not previously been submitted as an exercise for a degree at this, or any other University, and that unless otherwise stated, is my own work. Shane Christopher September 8, 2010 Permission to Lend and/or Copy I, the undersigned, agree that Trinity College Library may lend or copy this thesis upon request. Shane Christopher September 8, 2010 Acknowledgments I would like to thank my supervisor Michael Manzke as well as my course director John Dingliana for their help and guidance during this dissertation. I would also like to thank everyone who gave me support during the year and all my fellow members of the IET course for their friendship and the motivation they gave me. Shane Christopher University of Dublin, Trinity College September 2010 iv Integration of Ray-Tracing Methods into the Rasterisation Process Shane Christopher University of Dublin, Trinity College, 2010 Supervisor: Michael Manzke Visually realistic shadows in the field of computer games has been an area of constant research and development for many years. It is also considered one of the most costly in terms of performance when compared to other graphical processes. Most games today use shadow buffers which require rendering the scene multiple times for each light source.
    [Show full text]
  • Powervr Graphics Keynote
    PowerVR Graphics Keynote Rys Sommefeldt PowerVR Rogue Hardware PowerVR Rogue Recap Optional secondary message . Formally announced at CES 2012 . Tile-based deferred renderer . Building on technology proven over 5 previous generations . USC - Universal Shading Cluster . New scalar SIMD shader core . General purpose compute is a first class citizen in the core … . … while not forgetting what makes a shader core great for graphics facebook.com/imgtec @PowerVRInsider │ #idc15 3 TBDR Tile-based . Tile-based . Split each render up into small tiles (32x32 for the most part) . Bin geometry after vertex shading into those tiles . Tile-based rasterisation and pixel shading . Keep all data access for pixel shading on chip facebook.com/imgtec @PowerVRInsider │ #idc15 4 TBDR Deferred . Deferred rasterisation . Don’t actually get the GPU to do any pixel shading straight away . HW support for fully deferred rasterisation and then pixel shading . Rasterisation is pixel accurate facebook.com/imgtec @PowerVRInsider │ #idc15 5 End result . Bandwidth savings across all phases of rendering . Only fetch the geometry needed for the tile . Only process the visible pixels in the tile . Efficient processing . Maximise available computational resources . Do the best the hardware can with bandwidth facebook.com/imgtec @PowerVRInsider │ #idc15 6 Power . Maximising core efficiency . Lighting up the USC less often is always going to be a saving . Minimising bandwidth . Texturing less is a fantastic way to save power . Geometry fetch and binning is often more than 10% of per-frame bandwidth . Saves bandwidth for other parts of your render facebook.com/imgtec @PowerVRInsider │ #idc15 7 Rogue USC Architectural Building Block . Basic building block of the Rogue architecture .
    [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]
  • Performance Comparison on Rendering Methods for Voxel Data
    fl Performance comparison on rendering methods for voxel data Oskari Nousiainen School of Science Thesis submitted for examination for the degree of Master of Science in Technology. Espoo July 24, 2019 Supervisor Prof. Tapio Takala Advisor Dip.Ins. Jukka Larja Aalto University, P.O. BOX 11000, 00076 AALTO www.aalto.fi Abstract of the master’s thesis Author Oskari Nousiainen Title Performance comparison on rendering methods for voxel data Degree programme Master’s Programme in Computer, Communication and Information Sciences Major Computer Science Code of major SCI3042 Supervisor Prof. Tapio Takala Advisor Dip.Ins. Jukka Larja Date July 24, 2019 Number of pages 50 Language English Abstract There are multiple ways in which 3 dimensional objects can be presented and rendered to screen. Voxels are a representation of scene or object as cubes of equal dimensions, which are either full or empty and contain information about their enclosing space. They can be rendered to image by generating surface geometry and passing that to rendering pipeline or using ray casting to render the voxels directly. In this paper, these methods are compared to each other by using different octree structures for voxel storage. These methods are compared in different generated scenes to determine which factors affect their relative performance as measured in real time it takes to draw a single frame. These tests show that ray casting performs better when resolution of voxel model is high, but rasterisation is faster for low resolution voxel models. Rasterisation scales better with screen resolution and on higher screen resolutions most of the tested voxel resolutions where faster to render with with rasterisation.
    [Show full text]