[PDF] Programmation C/C++ et OpenGL 28 oct. 2020 2 Introduction





Previous PDF Next PDF



Learn OpenGL Graphics Programming

Therefore a decent knowledge of the C++ programming language is required for these learnopengl.com/demo/autotools_tutorial.txt: an autotools tutorial by.



OpenGL® Programming Guide: The Official Guide to Learning

(GLSL)) a special language very similar to C++ for constructing OpenGL shaders. GLSL is used for all shaders in OpenGL



Introduction à OpenGL et GLUT

Le rendu des primitives dépend de nombreuses variables d'état (matrice de transformation couleur



offline learnopengl.pdf

Since OpenGL is a graphics API and not a platform of its own As you might recall from the OpenGL tutorial



Computer Graphics Programming in OpenGL with C++ Second

Paul Baker's bump-mapping tutorial Using OpenGL with C++ requires configuring several libraries. ... org/registry/OpenGL/specs/gl/glspec44.core.pdf.



Beginners Tutorials

7 juin 2017 Shaders are programmed in a language called GLSL : GL Shader Language which is part of OpenGL. Unlike C or Java



Initiation à OpenGL

L'infographie consiste par calcul



OpenGL Tutorial

28 févr. 2013 OpenGL Tutorial Release 1.0. Source code1. The guide is available in the following formats: PDF2. ePub3 for ebook readers.



The OpenGL R Graphics System: A Specification (Version 4.5 (Core

1 mai 2022 available at www.khronos.org/files/member agreement.pdf. Khronos grants a con- ... Languages such as C++ and Javascript which allow passing.



Programmation C/C++ et OpenGL

28 oct. 2020 2 Introduction rapide au C/C++ & Visual Studio. 5. 2.1 Le saviez-vous? ... Introduction à l'architecture OpenGL [KSS16] : les données et les.



[PDF] [PDF] Learn OpenGL Graphics Programming

Since OpenGL is a graphics API and not a platform of its own it requires a language to operate create an additional C++ file with the following code:



[PDF] OpenGL® Programming Guide - UT Computer Science

''If you are looking for the definitive guide to programming with the very latest version of OpenGL look no further The authors of this book have been deeply 



[PDF] Computer Graphics Programming in OpenGL with C++

All of the C++/OpenGL programs and related utility class files and GLSL shader code presented in the book • The models and texture files used in the 



[PDF] Initiation à OpenGL - CNU 27 Marseille

OpenGL est une librairie graphique 3D disponible sur de nombreuses plateformes désignation de la fonction d'affichage (1) dans la fenêtre courante



[PDF] Introduction à OpenGL et GLUT

“le “bleu” : OpenGL Reference Manual An interactive introduction to OpenGL programming Cours Tutorial Transformation de Nate Robins 



[PDF] OpenGL Programming Guide - FEI

The format for transmitting OpenGL commands (called the protocol) from the client to implementation in C++ or Ada for example wouldn't need to



[PDF] 14 Introduction to C++ and OpenGL

C++ relies on the #include prepro- cessor directive which treats all of the text in the included header file as though it were part of the including source 



[PDF] Introduction à OpenGL

1 OGL : Open Graphic Language 2 références 3 Pipeline OpenGL •Tutorial et exemples OpenGL Reference Manual 3rd edition ISBN 0-201-65675-1



[PDF] Beginners Tutorials

7 jui 2017 · You will see a Tutorials sln file : open it with Visual Studio Example for tutorial 2 : ~/opengl-tutorial/tutorial02_red_triangle/



Computer graphics programming in OpenGL with C++ [2 

By purchasing or using this book and its companion files (the “Work”) 1 1 Languages and Libraries 1 1 1 C++ 1 1 2 OpenGL / GLSL 1 1 3 Window Management 

  • Can you use C++ in OpenGL?

    Since OpenGL is a graphics API and not a platform of its own, it requires a language to operate in and the language of choice is C++ .
  • How much C++ is required for OpenGL?

    You don't need to be a master in C++ to start learning OpenGL. As a matter of fact, you don't even need to know C++. If you know a decent amount of C, you should be fine to start working with OpenGL. OpenGL is not a programming language, it is an API.
  • Is OpenGL for C or C++?

    The OpenGL libraries are written in C and allows for many derivations in other languages, but in its core it remains a C-library.
  • So let's get started

    1Install and Setup MSYS. Head over to this link https://www.msys2.org/ and download the mysy2 installer. 2Open MSYS2. 3Install Pacman in the MSYS2. 4Install MinGW package via CLI. 5Install Freeglut. 6Install Glew. 7Download Code Blocks. 8Set up the compiler in Code Blocks.
Université Paris 8 - Vincennes à Saint-Denis

Programmation C/C++ et OpenGL

Farès Belhadj

Date de MAJ : 28 octobre 2020

email :mailto:amsi@up8.edu github :https://github.com/noalien/GL4Dummies web [GL420] :http://api8.fr/GL4D/

Table des matières

1 Survol de l"architecture des machines 4

2 Introduction rapide au C/C++ & Visual Studio 5

2.1 Le saviez-vous? (rapide) . . . . . . . . . . . . . . . . . . . . .

5

2.2 Créer une application en mode console sous Visual Studio . . .

7

2.3 Les exemples (à développer plus tard) . . . . . . . . . . . . . .

10

2.3.1 Récupération d"informations sur les types de données

standards . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.2 Le contenu, le contenant, les pointeurs et les références

13

2.3.3 Utilisation d"un tableau de taille statique . . . . . . . .

15

2.3.4 Utilisation d"un tableau bidimensionnel de taille statique

16

2.3.5 Commençons avec des primitives de dessin . . . . . . .

17

3 Aide sur certains exercices donnés 20

3.1 Aide sur l"exercice 4 de DrawLineInBMP . . . . . . . . . . . .

20

3.1.1 Dessinons plein de droites dans un BMP . . . . . . . .

20 1

Liste des codes source

L"exemple BasicDataType . . . . . . . . . . . . . . . . . . . . . . . 10 Résultats d"exécutions de BasicDataType sur différents OS / Ar- chitectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Echange de contenu de variables à l"aide du programme Swap . . . 13 Initialisation et affichage d"un tableau statique . . . . . . . . . . . . 15 Dessiner (une croix puis un carré) sur une "image" (tableau bidi- mensionnel) puis afficher l"image (print) . . . . . . . . . . . . 16 Dessiner un segment de droite . . . . . . . . . . . . . . . . . . . . . 17 2

Objectifs du support

1. Une base minimale d"arc hitecturede smac hines- §1 ; 2. Une base minimale des langages C/C++ ( VisualStudio) - §2 ; 3. La représen tationmémoire d"une ima ge- §2 ; 4.

Les premières primitiv esde dessin - §2 ;

5.

L"applica tiongraphique (GL4D) - § ??;

6.

Con tinuonsa vecles primitiv esde dessin ;

7.

L"animatio n/ mo dèleph ysiquede base ;

8. L"in teraction: cla vier,souris, son, caméra (Op enCV/ Op enNI); 9. In troductionà l"arc hitectureOp enGL[KSS16] : les données et les programmes (shaders); 10.

Les Filtres 2D / La Mo délisation3D ;

11.

Démo ?

3

Chapitre 1

Survol de l"architecture des

machines Avez-vous besoin de connaître? Points abordés en cours selon les connais- sances du public : La représen tationdes données en mac hine(la base 2) ? L"adr essagemémoire : le sto ckagedes données en mémoire ? Qu"e st-cequ"un programme, commen til s"exécute ? Les t ypesde donnée s(ex. caractères, en tierset flottan ts)? Voir par exemple :https://fr.wikipedia.org/wiki/C_(langage) #Types Ou encore :https://en.wikibooks.org/wiki/C_Programming/stdint. h

L"UAL, le FPU, le GPU ?

4

Chapitre 2

Introduction rapide au C/C++

& Visual Studio

2.1 Le saviez-vous? (rapide)

Quelques points pour lesquels il faudra en connaître un minimum :

Co mpilerV sIn terpréter;

Le prépro cesseur,le compilate ur,l"éditeur de liens ; Une v ariable,une fonction (proto. & déf.), les ob jets(plus tard) ; Les branc hements,les b oucles,la récursivité ;

Les op érateurs(v oirT able2.1).

Les Tables 2.1 et 2.1 donnent respectivement des informations sur la prio- rité des opérateurs en C/C++ et les types standards et tailles de données en mémoire. 5

Introduction rapide au C/C++ & Visual Studio

0( )appel de fonction, associativitéfoo();

a = (b + c) * d;[ ]indexationint tab[3]; tab[0] = tab[1] = tab[2] = 0;.nommage d"un champobj.cdr = NULL;

->nommage indirect de champpt->cdr = NULL;1!négation(!a)est vraie siaest fausse~complément à 1a & (~a) = 0

-opposé ++incrémentationi++; ++i; - -décrémentationi- -; - -i; &adresseint i, *pt; pt = &i;*valeur indirecte*pt = 0; /* donne i = 0 */ (type_de_donnée)force le type (cast)int i = (int)1.5; sizeoftaille en octetsi = sizeof i;

2*Multiplication

/Division %Modulo

3+Addition

-Soustraction

4< >>Décalage à droite

5 <=Inférieur ou égal >Strictement supérieur >=Supérieur ou égal

6==Egal

! =Différent

7&"et" binaire

8^"ou" exclusif binaire

9|"ou" binaire

10&&"et" logique

11||"ou" logique

12? :conditionnellec = (a < b) ? a : b;

13= *= /= %=Affectations

+= -=^= &=<<=>>= |=14,Séquence Table2.1 - Table des priorités des opérateurs C/C++.

6©Farès BELHADJ - amsi@up8.edu

Introduction rapide au C/C++ & Visual Studio

TypeOccupation mémoirePlage de valeurs

char1 octet-128 à 127 unsigned char1 octet0 à 255 int2 ou 4 octetsSelon l"architecture unsigned int2 ou 4 octetsSelon l"architecture short2 octets-32768 à 32767 unsigned short2 octets0 à 65535 long4 octets-2147483648 à 2147483647 unsigned long4 octets0 à 4294967295 long long8 octets-263à263-1unsigned long long8 octets0à264-1Type à virgule flottante

float4 octets3.4×10-38à3.4×1038(IEEE 754)double8 octets1.7×10-308à1.7×10308(IEEE 754)long double10 octets3.4×10-4932à3.4×104932(IEEE 754)Table2.2 - Types de données standards (à l"époque).

En pratique, les types de données évoluent et changent en fonction de l"architecture, nous verrons cela dans les exemples données dans les sections suivantes.

2.2 Créer une application en mode console

sous Visual Studio En ouvrant Visual Studio (ici Community 2019) l"outil vous propose une action à mener :

7©Farès BELHADJ - amsi@up8.edu

Introduction rapide au C/C++ & Visual Studio

Sélectionnez "Créer un projet" puis là sélectionnez "Application conso- le" :8©Farès BELHADJ - amsi@up8.edu

Introduction rapide au C/C++ & Visual Studio

Entrez le nom de votre projet, cochez la case "Placer la solution et le projet dans le même répertoire" et cliquez sur créer :9©Farès BELHADJ - amsi@up8.edu

Introduction rapide au C/C++ & Visual Studio

2.3 Les exemples (à développer plus tard)

2.3.1 Récupération d"informations sur les types de don-

nées standards include // pour utiliser std::cout include // pour utiliser std::setprecision define_USE_MATH_DEFINES // pour utiliser les définitions dans math.h include // la bibliothèque de fonctions mathématiques include // pour utiliser printf/fprintf ... les puristes C++ n"apprécieront pas intmain(void) { charc =" A"; short i nts = 1024; inti = 100000; long i ntl = 0x7FFFFFFF; long l ong i ntll = 0x7FFFFFFFFFFFFFFF; floatf = (float)M_PI; doubled = M_PI; long d oubleld = M_PI; std::cout << Hello Data Type avec std cout n std::cout << c contient <