Come iniziare a studiare informatica grafica?

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
Salve ragazzi.. sono uno studente del secondo anno di ingegneria informatica.. come ogni facoltà lo studente viene instradato ad un certo tipo di ambito.. naturalmente il mio è quello informatico.. ciò che però risiede fuori dalla semplice conoscenza metodica universitaria bisogna iniziare a studiarlo da soli.. il mio obiettivo è quello di studiare informatica grafica ed essendo del secondo anno e avendo studiato (le basi) java so come si ragiona in tale campo e so implementare diverse richieste.. ora però, fuori dall'università, volevo iniziare tale cammino.. ho scaricato vari manuali sull'OpenGl su cui mi voglio basare piuttosto che le DirectX.. ma non so come iniziare.. da quanto ho capito devo lavorare su c++.. devo quindi installarlo.. ho molta confusione in testa.. qualcuno saprebbe dirmi passo passo quale dovrebbe essere la mia strada? Grazie mille in anticipo
 

Nannez

Utente Attivo
70
1
CPU
AMD Athlon64 X2 4200+
Scheda Madre
m2n-e
HDD
280 GB
RAM
CORSAIR XMS2 Twinx 2GB 1Gbx2 DDR2 6400
GPU
ATI Radeon X1600Pro 256 MB
Monitor
Delium 22''
PSU
Uno da 400W
OS
Windows Vista x64
Beh prima di tutto dovresti imparare c++ e di guide ne trovi a volontà su internet, meglio se ti prendi qualche manuale però. Poi per la la grafica ti segnalo questi libri:
1) J. D. Foley, A. van Dam, S. K. Feiner, J. F. Hughes. Computer Graphics: principle and practice in C, Addison-Wesley.
2) R. Scateni, P.Cignoni, C.Montani, R.Scopigno, Fondamenti di grafica tridimensionale interattiva, McGraw-Hill.
3) D. Shreiner, M. Woo, J. Neider, T. Davis, - OpenGL Programming Guide, Addison-Wesley.

sono i libri che consiglia il mio professore di grafica computazionale dell'Politecnico di Parma, credo che il terzo potrebbe interessarti, onestamente non ho ancora cominciato a studiare per quel corso quindi non so darti altro aiuto.
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
Perfetto grazie mille per i testi mi metterò subito all'opera:)
 

pabloski

Utente Èlite
2,868
916
Comunque non è necessario c++ per usare opengl, anzi ad essere pignoli opengl s'interfaccia perfettamente con c.

Detto questo esistono tantissimi binding per vari linguaggi che permettono di usare opengl.

Poi ci sono anche altre librerie tipo sdl ( principalmente 2d ma fa il 3d appoggiandosi ad opengl ).

Lo dico perchè in generale non è detto che la computer grafica è opengl. Ci sono appunto directx ma anche tante altre librerie.

Comunque presumendo che stiamo parlando di grafica 3d con opengl direi che il vero scoglio da superare è capire la logica di opengl che almeno all'inizio può confondere non poco.

Un buon tutorial è questo Swiftless OpenGL Tutorials | Swiftless Tutorials
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
Ragazzi lo studio a riguardo è iniziato.. mi trovo però davanti a piccoli problemi.. devo iniziare ad usare del codice! nei vari libri da voi proposti ho trovato molto codice e volevo implementarlo personalmente se davvero funge.. cosi mi sono messo a provare.. prima di tutto ho trovato un IDE per linux (Kdevelop) e uno per windows (Visual Studio).. ora però non so come andare avanti.. basiamoci su linux perchè vorrei lavorare li..
1) come metto del codice? o.O qui esistono i "progetti" e non trovo una guida che mi spieghi come fare
2) bisogna importare le librerie OpenGL?
 

pabloski

Utente Èlite
2,868
916
Lavorare in opengl con kdevelop? Pessima idea. Kdevelop è sviluppato per programmare applicazioni kde, ha troppi incasinamenti che non ti serviranno assolutamente a nulla.

Se devi programmare in C e C++ ti conviene netbeans o codeblocks.
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
Perfetto molta fatica in meno:) mi rimane solamente da capire una cosa allora.. come importare le librerie openGL? ti faccio un esempio di codice che ho trovato sul libro e vorrei provare manualmente di persona:

#include <whateverYouNeed.h>

main() {

InitializeAWindowPlease();

glClearColor (0.0, 0.0, 0.0, 0.0);
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
glFlush();

UpdateTheWindowAndCheckForEvents();
}
 

pabloski

Utente Èlite
2,868
916
#include <whateverYouNeed.h>

è scritto davvero così??? :D

comunque scherzi a parte bisogna includere GL/glut.h, GL/glu.h e GL/gl.h, solo che basta la prima perchè include già le altre due

InitializeAWindowPlease();

ma questa funzione è implementata?

glClearColor (0.0, 0.0, 0.0, 0.0);
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);

qui definisce il colore di background, quello di foreground e pulisce il color buffer, poi setta il volume di vista

glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
glFlush();

qua disegna un poligono di 4 vertici, si può fare con GL_QUADS o anche con glRect

questa parte però andrebbe inserita nella funzione di disegno, altrimenti quando sposti la finestra non viene ridisegnata

UpdateTheWindowAndCheckForEvents();
}

quest'altra pure suppongo sia definita da qualche parte
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
Ok... sto diventando letteralmente scemo per scaricare e installare le librerie GLUT (che da quanto ho capito sono le principali) sul mio ubuntu.. aiutami ti prego passo per passo perchè non so dove mettere mano O.o
 

pabloski

Utente Èlite
2,868
916
mmm scaricare da dove??

su ubuntu ti basta aprire synaptic o il software center ed installare i pacchetti freeglut3, freeglut3-dev, libglu1-mesa, libglu1-mesa-dev, libgl1-mesa-dev, libgl1-mesa-dri, libgl1-mesa-glx

ho listato tutti quelli necessari ma alcuni sono dipendenze di altri e quindi s'installano automaticamente e altri sono già installati
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
li ho gia tutti installati quelli ma continua a non compilare :( creo semplicemente un file in cpp e poi da terminale uso il comando g++ nomefile.cpp -o nomeEseguibile ma niente:( dice che non trova sempre le include...
 

pabloski

Utente Èlite
2,868
916
li ho gia tutti installati quelli ma continua a non compilare :( creo semplicemente un file in cpp e poi da terminale uso il comando g++ nomefile.cpp -o nomeEseguibile ma niente:( dice che non trova sempre le include...

g++ è il compilatore c++, devi usare gcc

poi devi specificare -lglut -lglu, altrimenti non aggiunge le librerie
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
quindi la linea di comando diventa gcc nomefile.cpp -o nomeEseguibile -lglut -lglu ?
 

Henry90

Utente Attivo
426
6
CPU
AMD Ryzen 7 2700X
Scheda Madre
Asrock X470 Taichi
HDD
Samsung 970 EVO 500GB
RAM
Corsair DDR4 Vengeance LPX 2x16GB 3200
GPU
Gigabyte GeForce RTX 2070 WINDFORCE 8G
Monitor
LG UltraGear 27GP850P-B
PSU
Corsair RM750x PSU
Case
Fractal Design Define R6 Black - Tempered glass
OS
Windows10
niente anche con quella.. l'errore continua ad essere il seguente:
prova.cpp:2: fatal error: GL/GLUT.h: File o directory non esistente
compilation terminated.
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili