[PDF] [PDF] OpenGL 45 - Khronos Group

1 mai 2020 · pdf Khronos grants a con- ditional copyright license to use and reproduce the unmodified specification for any purpose, without fee or royalty, 



Previous PDF Next PDF





[PDF] OpenGL et GLUT Une introduction

Les transformations sont représentées dans OpenGL sous la forme de matrices Spécifier la transformation courante appliquée aux primitives avant la projection



[PDF] Introduction à OpenGL et GLUT

Le rendu des primitives dépend de nombreuses variables d'état (matrice de transformation, couleur, matériau, texture, éclairage, etc ) OpenGL ne sait pas ce que 



[PDF] Initiation à OpenGL

Nous parlerons de : - GLUT : un système simple de fenêtrage - Couleurs et primitives de tracé (lignes et polygones) - Transformations géométriques pour la  



[PDF] Introduction à OpenGL

Une API (bas niveau) en C permettant de tirer faisant l'interface entre le logiciel et le driver matériel Spécialisé pour le rendu réaliste 2D et 3D Des matrices 



[PDF] Programmation 3D en C++ avec OpenGL et GLSL - Rémy Malgouyres

Dans notre cas, la version d'OpenGL est 3 3 et la version de GLSL est 1 3 1 1 2 a Code C++ de création d'une fenêtre SDL pour OpenGL Voici le code 



[PDF] this OpenGL book - Learn OpenGL

OpenGL is mainly considered an API (an Application Programming Interface) that provides us with a large set of functions that we can use to manipulate graphics 



[PDF] OpenGL 45 - Khronos Group

1 mai 2020 · pdf Khronos grants a con- ditional copyright license to use and reproduce the unmodified specification for any purpose, without fee or royalty, 



[PDF] Chapitre I : Présentation dOpenGL - Positionnement 3D

OpenGL : qu'est ce que c'est ? Librairie pour la programmation 2D/3D (GL = Graphics Library) Alternative propriétaire : Direct3D de Microsoft Standard 



[PDF] An Interactive Introduction to OpenGL Programming

OpenGL is a rendering library available on almost any computer which supports a graphics monitor Today, we'll discuss the basic elements of OpenGL: rendering 



[PDF] OpenGL® Programming Guide - Department of Computing Sciences

Modern OpenGL is centered on the use of shaders, and this edition of the OpenGL programming guide : the official guide to learning OpenGL, version 4 3 /

[PDF] terminologie juridique français arabe gratuit

[PDF] repérage pavé droit exercices

[PDF] reperage espace 4eme

[PDF] oxydoréduction cuivre zinc

[PDF] motion blur photoshop traduction

[PDF] oxydoréduction pile

[PDF] la république expliquée ? ma fille extrait

[PDF] la république expliquée ? ma fille pdf

[PDF] la chose dans la clarté lunaire analyse

[PDF] autoportrait michel leiris

[PDF] les apports du judaïsme du christianisme et de l'islam ? la pensée occidentale

[PDF] gorgias platon résumé

[PDF] gorgias platon pdf

[PDF] animaux fables symbole

[PDF] quel est l'animal le plus souvent cité dans les fables de jean de la fontaine

The OpenGL

R

Graphics System:

A Specification(Version 4.5 (Core Profile) - June 29, 2017)

Mark Segal

Kurt Akeley

Editor (version 1.1): Chris Frazier

Editor (versions 1.2-4.5 ): Jon Leech

Editor (version 2.0): Pat Brown

Copyright

c

2006-2017 The Khronos Group Inc. All Rights Reserved.

This specification is protected by copyright laws and contains material proprietary to Khronos. Except as described by these terms, it or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcastorotherwise exploited in any manner without the express prior written permission of Khronos. This specification has been created under the Khronos Intellectual Property Rights Policy, which is Attachment A of the Khronos Group Membership Agreement available at www.khronos.org/files/memberagreement.pdf. Khronos grants a con- ditional copyright license to use and reproduce the unmodified specification for any purpose, without fee or royalty, EXCEPT no licenses to any patent, trade- mark or other intellectual property rights are granted under these terms. Parties desiring to implement the specification and make use of Khronos trademarks in relation to that implementation, and receive reciprocal patent license protection under the Khronos IP Policy must become Adopters and confirm the implementa- tion as conformant under the process defined by Khronos for this specification; see https://www.khronos.org/adopters. Khronos makes no, and expressly disclaims any, representations or warranties, ex- press or implied, regarding this specification, including, without limitation: mer- chantability, fitness for a particular purpose, non-infringement of any intellectual property, correctness, accuracy, completeness, timeliness, and reliability. Under no circumstances will Khronos, or any of its Promoters, Contributors or Members, or their respective partners, officers, directors, employees, agents or representatives be liable for any damages, whether direct, indirect, special or consequential damages for lost revenues, lost profits, or otherwise, arising from or in connection with these materials. Vulkan is a registered trademark and Khronos, WebGL, and EGL are trademarks of The Khronos Group Inc. ASTC is a trademark of ARM Holdings PLC, OpenCL is a trademark of Apple Inc. and OpenGL is a registered trademark and the OpenGL ES and OpenGL SC logos are trademarks of Silicon Graphics International used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.

Contents

1 Introduction

1

1.1 Formatting of the OpenGL Specification . . . . . . . . . . . . . .

1

1.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2 What is the OpenGL Graphics System? . . . . . . . . . . . . . .

2

1.2.1 Programmer"s View of OpenGL . . . . . . . . . . . . . .

2

1.2.2 Implementor"s View of OpenGL . . . . . . . . . . . . . .

2

1.2.3 Our View . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.2.4 Fixed-function Hardware and the Compatibility Profile . .

3

1.2.5 The Deprecation Model . . . . . . . . . . . . . . . . . .

3

1.3 Related APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.1 OpenGL Shading Language . . . . . . . . . . . . . . . .

4

1.3.2 OpenGL ES . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.3 OpenGL ES Shading Language . . . . . . . . . . . . . .

5

1.3.4 WebGL . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.3.5 Window System Bindings . . . . . . . . . . . . . . . . .

6

1.3.6 OpenCL . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.4 Filing Bug Reports . . . . . . . . . . . . . . . . . . . . . . . . .

7

2 OpenGL Fundamentals

8

2.1 Execution Model . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.2 Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.2.1 Data Conversion For State-Setting Commands . . . . . .

12

2.2.2 Data Conversions For State Query Commands . . . . . .

14

2.3 Command Execution . . . . . . . . . . . . . . . . . . . . . . . .

15

2.3.1 Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.3.2 Graphics Reset Recovery . . . . . . . . . . . . . . . . . .

18

2.3.3 Flush and Finish . . . . . . . . . . . . . . . . . . . . . .

20

2.3.4 Numeric Representation and Computation . . . . . . . . .

20 i

CONTENTSii

2.3.5 Fixed-Point Data Conversions . . . . . . . . . . . . . . .

24

2.4 Rendering Commands . . . . . . . . . . . . . . . . . . . . . . .

26

2.5 Context State . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

2.5.1 Generic Context State Queries . . . . . . . . . . . . . . .

27

2.6 Objects and the Object Model . . . . . . . . . . . . . . . . . . .

27

2.6.1 Object Management . . . . . . . . . . . . . . . . . . . .

27

2.6.2 Buffer Objects . . . . . . . . . . . . . . . . . . . . . . .

29

2.6.3 Shader Objects . . . . . . . . . . . . . . . . . . . . . . .

29

2.6.4 Program Objects . . . . . . . . . . . . . . . . . . . . . .

29

2.6.5 Program Pipeline Objects . . . . . . . . . . . . . . . . .

29

2.6.6 Texture Objects . . . . . . . . . . . . . . . . . . . . . . .

29

2.6.7 Sampler Objects . . . . . . . . . . . . . . . . . . . . . .

30

2.6.8 Renderbuffer Objects . . . . . . . . . . . . . . . . . . . .

30

2.6.9 Framebuffer Objects . . . . . . . . . . . . . . . . . . . .

30

2.6.10 Vertex Array Objects . . . . . . . . . . . . . . . . . . . .

31

2.6.11 Transform Feedback Objects . . . . . . . . . . . . . . . .

31

2.6.12 Query Objects . . . . . . . . . . . . . . . . . . . . . . .

31

2.6.13 Sync Objects . . . . . . . . . . . . . . . . . . . . . . . .

31

2.6.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3 Dataflow Model

33

4 Event Model

36

4.1 Sync Objects and Fences . . . . . . . . . . . . . . . . . . . . . .

36

4.1.1 Waiting for Sync Objects . . . . . . . . . . . . . . . . . .

38

4.1.2 Signaling . . . . . . . . . . . . . . . . . . . . . . . . . .

40

4.1.3 Sync Object Queries . . . . . . . . . . . . . . . . . . . .

41

4.2 Query Objects and Asynchronous Queries . . . . . . . . . . . . .

42

4.2.1 Query Object Queries . . . . . . . . . . . . . . . . . . .

46

4.3 Time Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

5 Shared Objects and Multiple Contexts

51

5.1 Object Deletion Behavior . . . . . . . . . . . . . . . . . . . . . .

52

5.1.1 Side Effects of Shared Context Destruction . . . . . . . .

52

5.1.2 Automatic Unbinding of Deleted Objects . . . . . . . . .

52

5.1.3 Deleted Object and Object Name Lifetimes . . . . . . . .

52

5.2 Sync Objects and Multiple Contexts . . . . . . . . . . . . . . . .

53

5.3 Propagating Changes to Objects . . . . . . . . . . . . . . . . . .

53

5.3.1 Determining Completion of Changes to an object . . . . .

54

5.3.2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . .

55

OpenGL 4.5 (Core Profile) - June 29, 2017

CONTENTSiii

5.3.3 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

6 Buffer Objects

57

6.1 Creating and Binding Buffer Objects . . . . . . . . . . . . . . . .

58

6.1.1 Binding Buffer Objects to Indexed Targets . . . . . . . . .

60

6.2 Creating and Modifying Buffer Object Data Stores . . . . . . . .

63

6.2.1 Clearing Buffer Object Data Stores . . . . . . . . . . . .

69

6.3 Mapping and Unmapping Buffer Data . . . . . . . . . . . . . . .

71

6.3.1 Unmapping Buffers . . . . . . . . . . . . . . . . . . . . .

76

6.3.2 Effects of Mapping Buffers on Other GL Commands . . .

77

6.4 Effects of Accessing Outside Buffer Bounds . . . . . . . . . . . .

77

6.5 Invalidating Buffer Data . . . . . . . . . . . . . . . . . . . . . .

77

6.6 Copying Between Buffers . . . . . . . . . . . . . . . . . . . . . .

78

6.7 Buffer Object Queries . . . . . . . . . . . . . . . . . . . . . . . .

79

6.7.1 Indexed Buffer Object Limits and Binding Queries . . . .

81

6.8 Buffer Object State . . . . . . . . . . . . . . . . . . . . . . . . .

83

7 Programs and Shaders

84

7.1 Shader Objects . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

7.2 Shader Binaries . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

7.3 Program Objects . . . . . . . . . . . . . . . . . . . . . . . . . .

89

7.3.1 Program Interfaces . . . . . . . . . . . . . . . . . . . . .

96

7.4 Program Pipeline Objects . . . . . . . . . . . . . . . . . . . . . .

115

7.4.1 Shader Interface Matching . . . . . . . . . . . . . . . . .

119

7.4.2 Program Pipeline Object State . . . . . . . . . . . . . . .

122

7.5 Program Binaries . . . . . . . . . . . . . . . . . . . . . . . . . .

122

7.6 Uniform Variables . . . . . . . . . . . . . . . . . . . . . . . . . .

125

7.6.1 Loading Uniform Variables In The Default Uniform Block

132

7.6.2 Uniform Blocks . . . . . . . . . . . . . . . . . . . . . . .

136

7.6.3 Uniform Buffer Object Bindings . . . . . . . . . . . . . .

139

7.7 Atomic Counter Buffers . . . . . . . . . . . . . . . . . . . . . . .

140

7.7.1 Atomic Counter Buffer Object Storage . . . . . . . . . .

141

7.7.2 Atomic Counter Buffer Bindings . . . . . . . . . . . . . .

141

7.8 Shader Buffer Variables and Shader Storage Blocks . . . . . . . .

142

7.9 Subroutine Uniform Variables . . . . . . . . . . . . . . . . . . .

144

7.10 Samplers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

148

7.11 Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

149

7.12 Shader Memory Access . . . . . . . . . . . . . . . . . . . . . . .

149

7.12.1 Shader Memory Access Ordering . . . . . . . . . . . . .

150

7.12.2 Shader Memory Access Synchronization . . . . . . . . .

152

OpenGL 4.5 (Core Profile) - June 29, 2017

CONTENTSiv

7.13 Shader, Program, and Program Pipeline Queries . . . . . . . . . .

157

7.14 Required State . . . . . . . . . . . . . . . . . . . . . . . . . . . .

166

8 Textures and Samplers

168

8.1 Texture Objects . . . . . . . . . . . . . . . . . . . . . . . . . . .

169

8.2 Sampler Objects . . . . . . . . . . . . . . . . . . . . . . . . . . .

173

8.3 Sampler Object Queries . . . . . . . . . . . . . . . . . . . . . . .

178

8.4 Pixel Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . .

178

8.4.1 Pixel Storage Modes and Pixel Buffer Objects . . . . . . .

179

8.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

180

8.4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

180

8.4.4 Transfer of Pixel Rectangles . . . . . . . . . . . . . . . .

180

8.4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

193

8.5 Texture Image Specification . . . . . . . . . . . . . . . . . . . .

193

8.5.1 Required Texture Formats . . . . . . . . . . . . . . . . .

196

8.5.2 Encoding of Special Internal Formats . . . . . . . . . . .

197

8.5.3 Texture Image Structure . . . . . . . . . . . . . . . . . .

201

8.6 Alternate Texture Image Specification Commands . . . . . . . . .

208

8.6.1 Texture Copying Feedback Loops . . . . . . . . . . . . .

215

8.7 Compressed Texture Images . . . . . . . . . . . . . . . . . . . .

215

8.8 Multisample Textures . . . . . . . . . . . . . . . . . . . . . . . .

223

8.9 Buffer Textures . . . . . . . . . . . . . . . . . . . . . . . . . . .

224

8.10 Texture Parameters . . . . . . . . . . . . . . . . . . . . . . . . .

228

8.11 Texture Queries . . . . . . . . . . . . . . . . . . . . . . . . . . .

231

8.11.1 Active Texture . . . . . . . . . . . . . . . . . . . . . . .

231

8.11.2 Texture Parameter Queries . . . . . . . . . . . . . . . . .

231

8.11.3 Texture Level Parameter Queries . . . . . . . . . . . . . .

233

8.11.4 Texture Image Queries . . . . . . . . . . . . . . . . . . .

235

8.12 Depth Component Textures . . . . . . . . . . . . . . . . . . . . .

241

8.13 Cube Map Texture Selection . . . . . . . . . . . . . . . . . . . .

242

8.13.1 Seamless Cube Map Filtering . . . . . . . . . . . . . . .

242

8.14 Texture Minification . . . . . . . . . . . . . . . . . . . . . . . .

243

8.14.1 Scale Factor and Level of Detail . . . . . . . . . . . . . .

243

8.14.2 Coordinate Wrapping and Texel Selection . . . . . . . . .

246

8.14.3 Mipmapping . . . . . . . . . . . . . . . . . . . . . . . .

251

8.14.4 Manual Mipmap Generation . . . . . . . . . . . . . . . .

253

8.14.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

255

8.15 Texture Magnification . . . . . . . . . . . . . . . . . . . . . . . .

255

8.16 Combined Depth/Stencil Textures . . . . . . . . . . . . . . . . .

255

8.17 Texture Completeness . . . . . . . . . . . . . . . . . . . . . . . .

255

OpenGL 4.5 (Core Profile) - June 29, 2017

CONTENTSv

8.17.1 Effects of Sampler Objects on Texture Completeness . . .

257

8.17.2 Effects of Completeness on Texture Application . . . . . .

257

8.17.3 Effects of Completeness on Texture Image Specification .

257

8.18 Texture Views . . . . . . . . . . . . . . . . . . . . . . . . . . . .

257

8.19 Immutable-Format Texture Images . . . . . . . . . . . . . . . . .

262

8.19.1 Behavior of Immutable-Format Texture Images . . . . . .

268

8.20 Invalidating Texture Image Data . . . . . . . . . . . . . . . . . .

268

8.21 Clearing Texture Image Data . . . . . . . . . . . . . . . . . . . .

quotesdbs_dbs44.pdfusesText_44