Interactive Computer Graphics: a Top-Down Approach with Shader

Total Page:16

File Type:pdf, Size:1020Kb

Interactive Computer Graphics: a Top-Down Approach with Shader This page intentionally left blank INTERACTIVE COMPUTER GRAPHICS A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL® 6th Edition This page intentionally left blank INTERACTIVE COMPUTER GRAPHICS A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL® 6th Edition EDWARD ANGEL University of New Mexico • DAVE SHREINER ARM, Inc. Editorial Director: Marcia Horton Editor-in-Chief: Michael Hirsch Acquisitions Editor: Matt Goldstein Editorial Assistant: Chelsea Bell Vice President, Marketing: Patrice Jones Marketing Manager: Yezan Alayan Marketing Coordinator: Kathryn Ferranti Vice President, Production: Vince O’Brien Managing Editor: Jeff Holcomb Senior Production Project Manager: Marilyn Lloyd Senior Operations Supervisor: Alan Fischer Operations Specialist: Lisa McDowell Text Designer: Beth Paquin Cover Designer: Central Covers Cover Art: Hue Walker, Fulldome Project, University of New Mexico Media Editor: Daniel Sandin Media Project Manager: Wanda Rockwell Full-Service Project Management: Coventry Composition Composition: Coventry Composition, using ZzTEX Printer/Binder: Edwards Brothers Cover and Insert Printer: Lehigh-Phoenix Color Text Font: Minion Credits and acknowledgments borrowed from other sources and reproduced, with permission, in this textbook appear on appropriate page within text. Copyright © 2012, 2009, 2006, 2003, 2000 Pearson Education, Inc., publishing as Addison- Wesley. All rights reserved. Manufactured in the United States of America. This publication is protected by Copyright, and permission should be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. To obtain permission(s) to use material from this work, please submit a written request to Pearson Education, Inc., Permissions Department, 501 Boylston Street, Suite 900, Boston, Massachusetts 02116. Many of the designations by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed in initial caps or all caps. Library of Congress Cataloging-in-Publication Data Angel, Edward. Interactivecomputergraphics:atop-downapproachwithshader-based OpenGL / Edward Angel, David Shreiner. — 6th ed. p. cm. Includes bibliographical references and index. ISBN-13: 978-0-13-254523-5 (alk. paper) ISBN-10: 0-13-254523-3 (alk. paper) 1. Computer graphics. 2. OpenGL. I. Shreiner, Dave. II. Title. T385.A5133 2012 006.6—dc22 2011004742 10987654321—EB—15 14 13 12 11 Addison-Wesley is an imprint of ISBN 10: 0-13-254523-3 ISBN 13: 978-0-13-254523-5 To Rose Mary —E.A. To Vicki, Bonnie, Bob, and Phantom —D.S. This page intentionally left blank CONTENTS Preface xxi CHAPTER 1 GRAPHICS SYSTEMS AND MODELS 1 1.1 Applications of Computer Graphics 2 1.1.1 Display of Information 2 1.1.2 Design 3 1.1.3 Simulation and Animation 3 1.1.4 User Interfaces 4 1.2 A Graphics System 5 1.2.1 Pixels and the Frame Buffer 5 1.2.2 The CPU and the GPU 6 1.2.3 Output Devices 7 1.2.4 Input Devices 9 1.2.5 Physical Input Devices 10 1.2.6 Logical Devices 12 1.2.7 Input Modes 13 1.3 Images: Physical and Synthetic 15 1.3.1 Objects and Viewers 15 1.3.2 Light and Images 16 1.3.3 Imaging Models 18 1.4 Imaging Systems 20 1.4.1 The Pinhole Camera 20 1.4.2 The Human Visual System 22 1.5 The Synthetic-Camera Model 23 1.6 The Programmer’s Interface 25 1.6.1 The Pen-Plotter Model 27 1.6.2 Three-Dimensional APIs 28 1.6.3 A Sequence of Images 31 1.6.4 The Modeling–Rendering Paradigm 32 1.7 Graphics Architectures 33 1.7.1 Display Processors 34 1.7.2 Pipeline Architectures 34 vii viii Contents 1.7.3 The Graphics Pipeline 35 1.7.4 Vertex Processing 36 1.7.5 Clipping and Primitive Assembly 36 1.7.6 Rasterization 37 1.7.7 Fragment Processing 37 1.8 Programmable Pipelines 37 1.9 Performance Characteristics 38 Summary and Notes 39 Suggested Readings 40 Exercises 41 CHAPTER 2 GRAPHICS PROGRAMMING 43 2.1 The Sierpinski Gasket 43 2.2 Programming Two-Dimensional Applications 46 2.3 The OpenGL Application Programming Interface 50 2.3.1 Graphics Functions 51 2.3.2 The Graphics Pipeline and State Machines 53 2.3.3 The OpenGL Interface 53 2.3.4 Coordinate Systems 55 2.4 Primitives and Attributes 56 2.4.1 Polygon Basics 58 2.4.2 Polygons in OpenGL 59 2.4.3 Approximating a Sphere 60 2.4.4 Triangulation 62 2.4.5 Text 64 2.4.6 Curved Objects 65 2.4.7 Attributes 65 2.5 Color 67 2.5.1 RGB Color 69 2.5.2 Indexed Color 71 2.5.3 Setting of Color Attributes 72 2.6 Viewing 73 2.6.1 The Orthographic View 74 2.6.2 Two-Dimensional Viewing 77 2.7 Control Functions 78 2.7.1 Interaction with the Window System 78 2.7.2 Aspect Ratio and Viewports 79 2.7.3 The main, display, and init Functions 80 2.7.4 Program Structure 83 Contents ix 2.8 The Gasket Program 83 2.8.1 Rendering the Points 84 2.8.2 The Vertex Shader 85 2.8.3 The Fragment Shader 86 2.8.4 Combining the Parts 86 2.8.5 The initShader Function 86 2.9 Polygons and Recursion 88 2.10 The Three-Dimensional Gasket 91 2.10.1 Use of Three-Dimensional Points 91 2.10.2 Use of Polygons in Three Dimensions 92 2.10.3 Hidden-Surface Removal 96 2.11 Adding Interaction 98 2.11.1 Using the Pointing Device 98 2.11.2 Window Events 101 2.11.3 Keyboard Events 102 2.11.4 The Idle Callback 103 2.11.5 Double Buffering 105 2.11.6 Window Management 106 2.12 Menus 106 Summary and Notes 108 Suggested Readings 109 Exercises 110 CHAPTER 3 GEOMETRIC OBJECTS AND TRANSFORMATIONS 115 3.1 Scalars, Points, and Vectors 116 3.1.1 Geometric Objects 116 3.1.2 Coordinate-Free Geometry 117 3.1.3 The Mathematical View: Vector and Affine Spaces 118 3.1.4 The Computer Science View 119 3.1.5 Geometric ADTs 119 3.1.6 Lines 120 3.1.7 Affine Sums 121 3.1.8 Convexity 122 3.1.9 Dot and Cross Products 122 3.1.10 Planes 123 3.2 Three-Dimensional Primitives 125 3.3 Coordinate Systems and Frames 126 3.3.1 Representations and N-Tuples 128 3.3.2 Change of Coordinate Systems 129 3.3.3 Example Change of Representation 132 x Contents 3.3.4 Homogeneous Coordinates 133 3.3.5 Example Change in Frames 136 3.3.6 Working with Representations 137 3.4 Frames in OpenGL 139 3.5 Matrix and Vector Classes 144 3.6 Modeling a Colored Cube 146 3.6.1 Modeling the Faces 146 3.6.2 Inward- and Outward-Pointing Faces 146 3.6.3 Data Structures for Object Representation 147 3.6.4 The Color Cube 148 3.6.5 Interpolation 150 3.6.6 Displaying the Cube 151 3.7 Affine Transformations 152 3.8 Translation, Rotation, and Scaling 155 3.8.1 Translation 155 3.8.2 Rotation 156 3.8.3 Scaling 158 3.9 Transformations in Homogeneous Coordinates 159 3.9.1 Translation 160 3.9.2 Scaling 161 3.9.3 Rotation 162 3.9.4 Shear 163 3.10 Concatenation of Transformations 164 3.10.1 Rotation About a Fixed Point 165 3.10.2 General Rotation 167 3.10.3 The Instance Transformation 168 3.10.4 Rotation About an Arbitrary Axis 169 3.11 Transformation Matrices in OpenGL 172 3.11.1 Current Transformation Matrices 173 3.11.2 Rotation, Translation, and Scaling 174 3.11.3 Rotation About a Fixed Point 175 3.11.4 Order of Transformations 176 3.12 Spinning of the Cube 176 3.12.1 Updating in the Display Callback 177 3.12.2 Uniform Variables 178 3.13 Interfaces to Three-Dimensional Applications 180 3.13.1 Using Areas of the Screen 180 3.13.2 A Virtual Trackball 181 3.13.3 Smooth Rotations 184 3.13.4 Incremental Rotation 185 Contents xi 3.14 Quaternions 186 3.14.1 Complex Numbers and Quaternions 186 3.14.2 Quaternions and Rotation 187 Summary and Notes 190 Suggested Readings 190 Exercises 191 CHAPTER 4 VIEWING 195 4.1 Classical and Computer Viewing 195 4.1.1 Classical Viewing 197 4.1.2 Orthographic Projections 197 4.1.3 Axonometric Projections 198 4.1.4 Oblique Projections 200 4.1.5 Perspective Viewing 201 4.2 Viewing with a Computer 202 4.3 Positioning of the Camera 204 4.3.1 Positioning of the Camera Frame 204 4.3.2 Two Viewing APIs 209 4.3.3 The Look-At Function 212 4.3.4 Other Viewing APIs 214 4.4 Parallel Projections 215 4.4.1 Orthogonal Projections 215 4.4.2 Parallel Viewing with OpenGL 216 4.4.3 Projection Normalization 217 4.4.4 Orthogonal-Projection Matrices 219 4.4.5 Oblique Projections 220 4.4.6 An Interactive Viewer 224 4.5 Perspective Projections 226 4.5.1 Simple Perspective Projections 226 4.6 Perspective Projections with OpenGL 229 4.6.1 Perspective Functions 230 4.7 Perspective-Projection Matrices 232 4.7.1 Perspective Normalization 232 4.7.2 OpenGL Perspective Transformations 236 4.7.3 Perspective Example 238 4.8 Hidden-Surface Removal 238 4.8.1 Culling 241 4.9 Displaying Meshes 241 4.9.1 Displaying Meshes as a Surface 244 xii Contents 4.9.2 Polygon Offset 246 4.9.3 Walking Through a Scene 247 4.10 Projections and Shadows 249 Summary and Notes 253 Suggested Readings 254 Exercises 254 CHAPTER 5 LIGHTING AND SHADING 257 5.1 Light and Matter 258 5.2 Light Sources 261 5.2.1 Color Sources 262 5.2.2 Ambient Light 262 5.2.3 Point Sources 263 5.2.4 Spotlights 264 5.2.5 Distant Light Sources 264 5.3 The Phong Reflection Model 265 5.3.1 Ambient Reflection 267 5.3.2 Diffuse Reflection 267 5.3.3 Specular Reflection 269 5.3.4 The Modified Phong Model 270 5.4 Computation of Vectors 271 5.4.1 Normal Vectors 272 5.4.2 Angle of Reflection 274 5.5 Polygonal Shading 275 5.5.1 Flat Shading 276 5.5.2 Smooth and Gouraud Shading 277 5.5.3 Phong Shading 279 5.6 Approximation of a Sphere by Recursive Subdivision 280 5.7 Specifying Lighting Parameters 283 5.7.1 Light Sources 283 5.7.2 Materials 284 5.8 Implementing a Lighting Model 286 5.8.1 Applying
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]
  • 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]
  • Analysis of Geometric Primitives in Quantitative Structure Models of Tree Stems
    Remote Sens. 2015, 7, 4581-4603; doi:10.3390/rs70404581 OPEN ACCESS remote sensing ISSN 2072-4292 www.mdpi.com/journal/remotesensing Article Analysis of Geometric Primitives in Quantitative Structure Models of Tree Stems Markku Åkerblom 1;*, Pasi Raumonen 1, Mikko Kaasalainen 1 and Eric Casella 2 1 Department of Mathematics, Tampere University of Technology, P.O. Box 553, Tampere 33101, Finland; E-Mails: Pasi.Raumonen@tut.fi (P.R.); Mikko.Kaasalainen@tut.fi (M.K.) 2 Centre for Sustainable Forestry and Climate Change, Forest Research, Farnham GU10 4LH, UK; E-Mail: [email protected] * Author to whom correspondence should be addressed; E-Mail: markku.akerblom@tut.fi Academic Editors: Nicolas Baghdadi and Prasad S. Thenkabail Received: 3 February 2015 / Accepted: 3 April 2015 / Published: 16 April 2015 Abstract: One way to model a tree is to use a collection of geometric primitives to represent the surface and topology of the stem and branches of a tree. The circular cylinder is often used as the geometric primitive, but it is not the only possible choice. We investigate various geometric primitives and modelling schemes, discuss their properties and give practical estimates for expected modelling errors associated with the primitives. We find that the circular cylinder is the most robust primitive in the sense of a well-bounded volumetric modelling error, even with noise and gaps in the data. Its use does not cause errors significantly larger than those with more complex primitives, while the latter are much more sensitive to data quality. However, in some cases, a hybrid approach with more complex primitives for the stem is useful.
    [Show full text]
  • The Interplay of Compile-Time and Run-Time Options for Performance Prediction Luc Lesoil, Mathieu Acher, Xhevahire Tërnava, Arnaud Blouin, Jean-Marc Jézéquel
    The Interplay of Compile-time and Run-time Options for Performance Prediction Luc Lesoil, Mathieu Acher, Xhevahire Tërnava, Arnaud Blouin, Jean-Marc Jézéquel To cite this version: Luc Lesoil, Mathieu Acher, Xhevahire Tërnava, Arnaud Blouin, Jean-Marc Jézéquel. The Interplay of Compile-time and Run-time Options for Performance Prediction. SPLC 2021 - 25th ACM Inter- national Systems and Software Product Line Conference - Volume A, Sep 2021, Leicester, United Kingdom. pp.1-12, 10.1145/3461001.3471149. hal-03286127 HAL Id: hal-03286127 https://hal.archives-ouvertes.fr/hal-03286127 Submitted on 15 Jul 2021 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. The Interplay of Compile-time and Run-time Options for Performance Prediction Luc Lesoil, Mathieu Acher, Xhevahire Tërnava, Arnaud Blouin, Jean-Marc Jézéquel Univ Rennes, INSA Rennes, CNRS, Inria, IRISA Rennes, France [email protected] ABSTRACT Both compile-time and run-time options can be configured to reach Many software projects are configurable through compile-time op- specific functional and performance goals. tions (e.g., using ./configure) and also through run-time options (e.g., Existing studies consider either compile-time or run-time op- command-line parameters, fed to the software at execution time).
    [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]
  • Mashup Architecture for Connecting Graphical Linux Applications Using a Software Bus Mohamed-Ikbel Boulabiar, Gilles Coppin, Franck Poirier
    Mashup Architecture for Connecting Graphical Linux Applications Using a Software Bus Mohamed-Ikbel Boulabiar, Gilles Coppin, Franck Poirier To cite this version: Mohamed-Ikbel Boulabiar, Gilles Coppin, Franck Poirier. Mashup Architecture for Connecting Graph- ical Linux Applications Using a Software Bus. Interacción’14, Sep 2014, Puerto de la Cruz. Tenerife, Spain. 10.1145/2662253.2662298. hal-01141934 HAL Id: hal-01141934 https://hal.archives-ouvertes.fr/hal-01141934 Submitted on 14 Apr 2015 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Mashup Architecture for Connecting Graphical Linux Applications Using a Software Bus Mohamed-Ikbel Gilles Coppin Franck Poirier Boulabiar Lab-STICC Lab-STICC Lab-STICC Telecom Bretagne, France University of Bretagne-Sud, Telecom Bretagne, France gilles.coppin France mohamed.boulabiar @telecom-bretagne.eu franck.poirier @telecom-bretagne.eu @univ-ubs.fr ABSTRACT functionalities and with different and redundant implemen- Although UNIX commands are simple, they can be com- tations that forced special users as designers to use a huge bined to accomplish complex tasks by piping the output of list of tools in order to accomplish a bigger task. In this one command, into another's input.
    [Show full text]
  • Modeling of Hardware and Software for Specifying Hardware Abstraction
    Modeling of Hardware and Software for specifying Hardware Abstraction Layers Yves Bernard, Cédric Gava, Cédrik Besseyre, Bertrand Crouzet, Laurent Marliere, Pierre Moreau, Samuel Rochet To cite this version: Yves Bernard, Cédric Gava, Cédrik Besseyre, Bertrand Crouzet, Laurent Marliere, et al.. Modeling of Hardware and Software for specifying Hardware Abstraction Layers. Embedded Real Time Software and Systems (ERTS2014), Feb 2014, Toulouse, France. hal-02272457 HAL Id: hal-02272457 https://hal.archives-ouvertes.fr/hal-02272457 Submitted on 27 Aug 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Modeling of Hardware and Software for specifying Hardware Abstraction Layers Yves BERNARD1, Cédric GAVA2, Cédrik BESSEYRE1, Bertrand CROUZET1, Laurent MARLIERE1, Pierre MOREAU1, Samuel ROCHET2 (1) Airbus Operations SAS (2) Subcontractor for Airbus Operations SAS Abstract In this paper we describe a practical approach for modeling low level interfaces between software and hardware parts based on SysML operations. This method is intended to be applied for the development of drivers involved on what is classically called the “hardware abstraction layer” or the “basic software” which provide high level services for resources management on the top of a bare hardware platform.
    [Show full text]
  • Webgl™ Optimizations for Mobile
    WebGL™ Optimizations for Mobile Lorenzo Dal Col Senior Software Engineer, ARM 1 Agenda 1. Introduction to WebGL™ on mobile . Rendering Pipeline . Locate the bottleneck 2. Performance analysis and debugging tools for WebGL . Generic optimization tips 3. PlayCanvas experience . WebGL Inspector 4. Use case: PlayCanvas Swooop . ARM® DS-5 Streamline . ARM Mali™ Graphics Debugger 5. Q & A 2 Bring the Power of OpenGL® ES to Mobile Browsers What is WebGL™? Why WebGL? . A cross-platform, royalty free web . It brings plug-in free 3D to the web, standard implemented right into the browser. Low-level 3D graphics API . Major browser vendors are members of . Based on OpenGL® ES 2.0 the WebGL Working Group: . A shader based API using GLSL . Apple (Safari® browser) . Mozilla (Firefox® browser) (OpenGL Shading Language) . Google (Chrome™ browser) . Opera (Opera™ browser) . Some concessions made to JavaScript™ (memory management) 3 Introduction to WebGL™ . How does it fit in a web browser? . You use JavaScript™ to control it. Your JavaScript is embedded in HTML5 and uses its Canvas element to draw on. What do you need to start creating graphics? . Obtain WebGLrenderingContext object for a given HTMLCanvasElement. It creates a drawing buffer into which the API calls are rendered. For example: var canvas = document.getElementById('canvas1'); var gl = canvas.getContext('webgl'); canvas.width = newWidth; canvas.height = newHeight; gl.viewport(0, 0, canvas.width, canvas.height); 4 WebGL™ Stack What is happening when a WebGL page is loaded . User enters URL . HTTP stack requests the HTML page Browser . Additional requests will be necessary to get Space User JavaScript™ code and other resources WebKit JavaScript Engine .
    [Show full text]
  • Opengl Shading Languag 2Nd Edition (Orange Book)
    OpenGL® Shading Language, Second Edition By Randi J. Rost ............................................... Publisher: Addison Wesley Professional Pub Date: January 25, 2006 Print ISBN-10: 0-321-33489-2 Print ISBN-13: 978-0-321-33489-3 Pages: 800 Table of Contents | Index "As the 'Red Book' is known to be the gold standard for OpenGL, the 'Orange Book' is considered to be the gold standard for the OpenGL Shading Language. With Randi's extensive knowledge of OpenGL and GLSL, you can be assured you will be learning from a graphics industry veteran. Within the pages of the second edition you can find topics from beginning shader development to advanced topics such as the spherical harmonic lighting model and more." David Tommeraasen, CEO/Programmer, Plasma Software "This will be the definitive guide for OpenGL shaders; no other book goes into this detail. Rost has done an excellent job at setting the stage for shader development, what the purpose is, how to do it, and how it all fits together. The book includes great examples and details, and good additional coverage of 2.0 changes!" Jeffery Galinovsky, Director of Emerging Market Platform Development, Intel Corporation "The coverage in this new edition of the book is pitched just right to help many new shader- writers get started, but with enough deep information for the 'old hands.'" Marc Olano, Assistant Professor, University of Maryland "This is a really great book on GLSLwell written and organized, very accessible, and with good real-world examples and sample code. The topics flow naturally and easily, explanatory code fragments are inserted in very logical places to illustrate concepts, and all in all, this book makes an excellent tutorial as well as a reference." John Carey, Chief Technology Officer, C.O.R.E.
    [Show full text]
  • Opengl 4.0 Shading Language Cookbook
    OpenGL 4.0 Shading Language Cookbook Over 60 highly focused, practical recipes to maximize your use of the OpenGL Shading Language David Wolff BIRMINGHAM - MUMBAI OpenGL 4.0 Shading Language Cookbook Copyright © 2011 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: July 2011 Production Reference: 1180711 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-849514-76-7 www.packtpub.com Cover Image by Fillipo ([email protected]) Credits Author Project Coordinator David Wolff Srimoyee Ghoshal Reviewers Proofreader Martin Christen Bernadette Watkins Nicolas Delalondre Indexer Markus Pabst Hemangini Bari Brandon Whitley Graphics Acquisition Editor Nilesh Mohite Usha Iyer Valentina J. D’silva Development Editor Production Coordinators Chris Rodrigues Kruthika Bangera Technical Editors Adline Swetha Jesuthas Kavita Iyer Cover Work Azharuddin Sheikh Kruthika Bangera Copy Editor Neha Shetty About the Author David Wolff is an associate professor in the Computer Science and Computer Engineering Department at Pacific Lutheran University (PLU).
    [Show full text]