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] 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