Tessellation Shader Detail Implementation for Simple Surfaces Using Opengl

Total Page:16

File Type:pdf, Size:1020Kb

Tessellation Shader Detail Implementation for Simple Surfaces Using Opengl TESSELLATION SHADER DETAIL IMPLEMENTATION FOR SIMPLE SURFACES USING OPENGL A Project Presented to the faculty of the Department of Computer Science California State University, Sacramento Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in Computer Science by Matthew Thomas Anderson SPRING 2020 © 2020 Matthew Thomas Anderson ALL RIGHTS RESERVED ii TESSELLATION SHADER DETAIL IMPLEMENTATION FOR SIMPLE SURFACES USING OPENGL A Project by Matthew Thomas Anderson Approved by: __________________________________, Committee Chair Dr. V. Scott Gordon __________________________________, Second Reader Dr. Pinar Muyan-Ozcelik ____________________________ Date iii Student: Matthew Thomas Anderson I certify that this student has met the requirements for format contained in the University format manual, and this project is suitable for electronic submission to the library and credit is to be awarded for the project. __________________________, Graduate Coordinator ___________________ Dr. Jinsong Ouyang Date Department of Computer Science iv Abstract of TESSELLATION SHADER DETAIL IMPLEMENTATION FOR SIMPLE SURFACES USING OPENGL by Matthew Thomas Anderson Shader-based graphics programming can be utilized to create a standard, re-usable method of applying surface detail to a simple shape using tessellation. There is a need for instructional resources outlining how this is accomplished for arbitrary graphics models. The tessellation evaluation shader handles tasks such as vertex position modifications and perspective matrix processing. This implementation also demonstrates how to calculate texture coordinates for the vertices that are generated by the tessellator. The models used are a pyramid with distinct flat surfaces, and a sphere with a continuous curved surface. The benefit of additional surface detail is demonstrated by applying a height map to the models during the tessellation stage. With comparable polygon counts, the RAM usage and GPU usage are both lower with tessellation compared to without tessellation for dense models. The strength of this implementation is that it may be applied universally to pyramids and spheres to add additional surface detail through tessellation. This implementation can also be expanded by applying more performance enhancing tessellation techniques or realistic effects such as noise functions. __________________________________, Committee Chair Dr. V. Scott Gordon ____________________________ Date v ACKNOWLEDGEMENTS I would like to thank Dr. Scott Gordon and Dr. Pinar Muyan-Ozcelik for their time and support for this project. When I returned to CSU, Sacramento for my graduate career, Dr. Muyan-Ozcelik suggested I ask Dr. Gordon to be my faculty advisor for my project. I am very thankful to Dr. Gordon for agreeing to this role and for giving me the idea for this project. His authored book on computer graphics programming has been an invaluable resource in completing this project. vi TABLE OF CONTENTS Page Acknowledgements ................................................................................................................... vi List of Tables ............................................................................................................................ ix List of Figures ............................................................................................................................ x Chapters 1. INTRODUCTION ............................................................................................................. 1 2. BACKGROUND ............................................................................................................... 3 2.1 Graphics pipeline ...................................................................................................... 3 2.2 OpenGL..................................................................................................................... 3 2.3 Models ...................................................................................................................... 4 2.4 Texture mapping ....................................................................................................... 4 2.5 Height mapping ......................................................................................................... 5 2.6 Tessellation ............................................................................................................... 6 3. IMPLEMENTATION ....................................................................................................... 8 3.1 Graphics program overview ...................................................................................... 8 3.2 Defining vertices, texture coordinates, and normal vectors ...................................... 9 3.3 Tessellated vertex positioning and texture mapping ............................................... 11 3.4 Tessellated height mapping ..................................................................................... 14 3.5 Differences between pyramid and sphere implementations .................................... 15 4. RESULTS ....................................................................................................................... 17 4.1 Rendered results ...................................................................................................... 17 4.2 System performance ................................................................................................ 26 5. CONCLUSIONS ............................................................................................................. 29 vii 6. FUTURE WORK ............................................................................................................ 31 Appendix A. Source Code ....................................................................................................... 33 src/code/Code.java – JOGL program ............................................................................ 33 src/code/GLSLOptions.java – Holds runtime variables ................................................ 40 src/code/Camera.java – Simple move/rotate camera implementation .......................... 42 src/code/Mouse.java – Simple click and drag mouse implementation ......................... 43 src/code/Utils.java – Helper class for JOGL calls ........................................................ 44 src/code/shaders/generic_vertShader.glsl – Vertex shader for pyramid and sphere ..... 51 src/code/shaders/pyramid_tessCShader.glsl – Pyramid tessellation control shader ..... 52 src/code/shaders/pyramid_tessEShader.glsl – Pyramid tessellation evaluation shader 53 src/code/shaders/sphere_tessCShader.glsl – Sphere tessellation control shader .......... 54 src/code/shaders/sphere_tessEShader.glsl – Sphere tessellation evaluation shader ..... 55 src/code/shaders/generic_fragShader.glsl – Fragment shader for pyramid and sphere 56 src/models/Pyramid.java – Pyramid model .................................................................. 57 src/models/Sphere.java – Sphere model ....................................................................... 59 src/eventcommands/cmdMoveCamera.java – Move the camera .................................. 62 src/eventcommands/cmdRotateCamera.java – Rotate the camera ................................ 63 src/eventcommands/cmdCloseWindow.java – Close the window ................................ 64 src/eventcommands/cmdSwitchModel.java – Toggle pyramid or sphere model ......... 65 src/eventcommands/cmdCycleTexture.java – Cycle through texture list ..................... 66 src/eventcommands/cmdToggleDrawMode.java – Toggle polygon mode ................... 67 Appendix B. System Specifications ......................................................................................... 68 References ................................................................................................................................ 69 viii LIST OF TABLES Tables Page 1. Performance results with wireframe rendering and no animation ................................. 27 2. Performance results with wireframe rendering and constant Y-axis rotation ................ 27 3. Performance results with painted rendering and no animation ...................................... 28 4. Performance results with painted rendering and constant Y-axis rotation .................... 28 ix LIST OF FIGURES Figures Page 1. Pyramid vertices definition .............................................................................................. 9 2. Pyramid normal vectors calculations ............................................................................. 10 3. Sphere vertices definition .............................................................................................. 10 4. Tessellation level definition ........................................................................................... 11 5. Calculate tessellated vertex position .............................................................................. 12 6. Calculate tessellated texture coordinate ......................................................................... 12 7. Renders of: Pyramid without tessellation (top-left), Pyramid with tessellation (top-right), Sphere without tessellation (bottom-left), Sphere with tessellation (bottom-right) ....... 13 8. Calculate tessellated normal vectors .............................................................................. 14 9. Exploded pyramid .........................................................................................................
Recommended publications
  • Overview: Graphics Processing Units
    Overview: Graphics Processing Units l advent of GPUs l GPU architecture n the NVIDIA Fermi processor l the CUDA programming model n simple example, threads organization, memory model n case study: matrix multiply using shared memory n memories, thread synchronization, scheduling n case study: reductions n performance considerations: bandwidth, scheduling, resource conflicts, instruction mix u host-device data transfer: multiple GPUs, NVLink, Unified Memory, APUs l the OpenCL programming model l directive-based programming models refs: Lin & Snyder Ch 10, CUDA Toolkit Documentation, An Even Easier Introduction to CUDA (tutorial); NCI NF GPU page, Programming Massively Parallel Processors, Kirk & Hwu, Morgan-Kaufman, 2010; Cuda By Example, by Sanders and Kandrot; OpenCL web page, OpenCL in Action, by Matthew Scarpino COMP4300/8300 L18,19: Graphics Processing Units 2021 JJJ • III × 1 Advent of General-purpose Graphics Processing Units l many applications have massive amounts of mostly independent calculations n e.g. ray tracing, image rendering, matrix computations, molecular simulations, HDTV n can be largely expressed in terms of SIMD operations u implementable with minimal control logic & caches, simple instruction sets l design point: maximize number of ALUs & FPUs and memory bandwidth to take advantage of Moore’s’ Law (shown here) n put this on a co-processor (GPU); have a normal CPU to co-ordinate, run the operating system, launch applications, etc l architecture/infrastructure development requires a massive economic base for its development (the gaming industry!) n pre 2006: only specialized graphics operations (integer & float data) n 2006: ‘General Purpose’ (GPGPU): general computations but only through a graphics library (e.g.
    [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]
  • Comparison of Technologies for General-Purpose Computing on Graphics Processing Units
    Master of Science Thesis in Information Coding Department of Electrical Engineering, Linköping University, 2016 Comparison of Technologies for General-Purpose Computing on Graphics Processing Units Torbjörn Sörman Master of Science Thesis in Information Coding Comparison of Technologies for General-Purpose Computing on Graphics Processing Units Torbjörn Sörman LiTH-ISY-EX–16/4923–SE Supervisor: Robert Forchheimer isy, Linköpings universitet Åsa Detterfelt MindRoad AB Examiner: Ingemar Ragnemalm isy, Linköpings universitet Organisatorisk avdelning Department of Electrical Engineering Linköping University SE-581 83 Linköping, Sweden Copyright © 2016 Torbjörn Sörman Abstract The computational capacity of graphics cards for general-purpose computing have progressed fast over the last decade. A major reason is computational heavy computer games, where standard of performance and high quality graphics con- stantly rise. Another reason is better suitable technologies for programming the graphics cards. Combined, the product is high raw performance devices and means to access that performance. This thesis investigates some of the current technologies for general-purpose computing on graphics processing units. Tech- nologies are primarily compared by means of benchmarking performance and secondarily by factors concerning programming and implementation. The choice of technology can have a large impact on performance. The benchmark applica- tion found the difference in execution time of the fastest technology, CUDA, com- pared to the slowest, OpenCL, to be twice a factor of two. The benchmark applica- tion also found out that the older technologies, OpenGL and DirectX, are compet- itive with CUDA and OpenCL in terms of resulting raw performance. iii Acknowledgments I would like to thank Åsa Detterfelt for the opportunity to make this thesis work at MindRoad AB.
    [Show full text]
  • Gscale: Scaling up GPU Virtualization with Dynamic Sharing of Graphics
    gScale: Scaling up GPU Virtualization with Dynamic Sharing of Graphics Memory Space Mochi Xue, Shanghai Jiao Tong University and Intel Corporation; Kun Tian, Intel Corporation; Yaozu Dong, Shanghai Jiao Tong University and Intel Corporation; Jiacheng Ma, Jiajun Wang, and Zhengwei Qi, Shanghai Jiao Tong University; Bingsheng He, National University of Singapore; Haibing Guan, Shanghai Jiao Tong University https://www.usenix.org/conference/atc16/technical-sessions/presentation/xue This paper is included in the Proceedings of the 2016 USENIX Annual Technical Conference (USENIX ATC ’16). June 22–24, 2016 • Denver, CO, USA 978-1-931971-30-0 Open access to the Proceedings of the 2016 USENIX Annual Technical Conference (USENIX ATC ’16) is sponsored by USENIX. gScale: Scaling up GPU Virtualization with Dynamic Sharing of Graphics Memory Space Mochi Xue1,2, Kun Tian2, Yaozu Dong1,2, Jiacheng Ma1, Jiajun Wang1, Zhengwei Qi1, Bingsheng He3, Haibing Guan1 {xuemochi, mjc0608, jiajunwang, qizhenwei, hbguan}@sjtu.edu.cn {kevin.tian, eddie.dong}@intel.com [email protected] 1Shanghai Jiao Tong University, 2Intel Corporation, 3National University of Singapore Abstract As one of the key enabling technologies of GPU cloud, GPU virtualization is intended to provide flexible and With increasing GPU-intensive workloads deployed on scalable GPU resources for multiple instances with high cloud, the cloud service providers are seeking for practi- performance. To achieve such a challenging goal, sev- cal and efficient GPU virtualization solutions. However, eral GPU virtualization solutions were introduced, i.e., the cutting-edge GPU virtualization techniques such as GPUvm [28] and gVirt [30]. gVirt, also known as GVT- gVirt still suffer from the restriction of scalability, which g, is a full virtualization solution with mediated pass- constrains the number of guest virtual GPU instances.
    [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]
  • 3D Graphics on the ADS512101 Board Using Opengl ES By: Francisco Sandoval Zazueta Infotainment Multimedia and Telematics (IMT)
    Freescale Semiconductor Document Number: AN3793 Application Note Rev. 0, 12/2008 3D Graphics on the ADS512101 Board Using OpenGL ES by: Francisco Sandoval Zazueta Infotainment Multimedia and Telematics (IMT) 1 Introduction Contents 1 Introduction . 1 OpenGL is one of the most widely used graphic standard 2 Preparing the Environment . 2 2.1 Assumptions on the Environment . 2 specifications available. OpenGL ES is a reduced 2.2 Linux Target Image Builder (LTIB) . 2 adaptation of OpenGL that offers a powerful yet limited 2.3 Installing PowerVR Software Development Kit . 4 3 The PowerVR SDK . 5 version for embedded systems. 3.1 Introduction to SDK . 5 3.2 PVRShell . 5 One of the main features of the MPC5121e is its graphics 3.3 PVRtools . 6 co-processor, the MBX core. It is a wide spread standard 4 Developing Example Application . 6 of mobile 3D graphics acceleration for mobile solutions. 4.1 3D Model Loader. 6 5 Conclusion. 9 Together with Imagination Technologies OpenGL ES 1.1 6 References . 9 SDK, the ADS512101 board can be used to produce 7 Glossary . 10 Appendix A eye-catching graphics. This document is an introduction, Applying DIU Patches to the Kernel . 11 after the development environment is ready, it is up to the A.1 Applying the MBXpatch2.patch . 11 developer’s skills to exploit the board’s graphics A.2 byte_flip Application. 11 Appendix B capabilities. Brief Introduction to OpenGL ES . 12 B.1 OpenGL ES . 12 B.2 Main Differences Between OGLES 1.1 and . 12 B.3 Obtaining Frustum Numbers . 13 B.4 glFrustum.
    [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]
  • Performance Analysis of Intel Gen9.5 Integrated GPU Architecture
    Performance Analysis of Intel Gen9.5 Integrated GPU Architecture Helder Francisco Pereira Duarte Thesis to obtain the Master of Science Degree in Electrical and Computer Engineering Supervisor(s): Doctor Aleksandar Ilic Examination Committee Chairperson: Doctor António Manuel Raminhos Cordeiro Grilo Supervisor: Doctor Aleksandar Ilic Member of the Committee: Doctor Ricardo Jorge Fernandes Chaves June 2018 Declaration I declare that this document is an original work of my own authorship and that it fulfills all the require- ments of the Code of Conduct and Good Practices of the Universidade de Lisboa. Acknowledgments I would like to thank my family and friends, whose support was paramount to the completion of this thesis, and to INESC-ID Lisboa, for providing the facilities in which this thesis was developed. In particular I would like to thank Diogo Marques for his tips that helped drive my research forward and, of course, to Prof. Aleksander for his incredible patience in dealing with me. i ii Resumo Recentemente os CPUs vemˆ equipados com placas graficas´ integradas. Este acoplamento tem o potencial de oferecer ganhos de desempenho consideraveis´ caso as ditas GPUs sejam usadas como aceleradores. No entanto, placas graficas´ integradas temˆ dificuldade em atingir os n´ıveis de desem- penho que placas discretas proporcionam devido ao menor numero´ de nucleos.´ Contudo, a sua prox- imidade com o CPU significa uma partilha de dados com menos sobrecargas associadas. Ademais, as vantagens de partilhar a hierarquia de memoria´ com o processador e o consumo de energia mais baixo que as placas discretas a` custa de desempenho permite atingir n´ıveis de eficienciaˆ energetica´ mais elevados.
    [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]