DOMANDA Grafica 2D C++

JDany

Utente Attivo
376
20
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Salve. Vorrei sapere se in OpenGL && C++ si possono creare delle applicazioni aventi grafica 2D. OpenGL è famoso per creare engine per giochi, insomma tutto quello che riguarda la grafica 3D.

E se si può, avete mai trovato qualche tutorial su questo argomento??
 

Andretti60

Utente Èlite
3,226
2,100
Hardware Utente
La risposta e' ovviamente si, OpenGL e' pensata essenzialmente per essere usato in C/C++, che e' il linguaggio di scelta per i videogiochi ad alta grafica. Mi spiace, ma personalmente non la ho mai usata, non ne ho mai avuto bisogno.
 

JDany

Utente Attivo
376
20
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
La risposta e' ovviamente si, OpenGL e' pensata essenzialmente per essere usato in C/C++, che e' il linguaggio di scelta per i videogiochi ad alta grafica. Mi spiace, ma personalmente non la ho mai usata, non ne ho mai avuto bisogno.
Grazie lo stesso.

Più che altro la mia intenzione era quella di provare a creare una classe che utilizzi OpenGL (uso glfw) per creare delle finestre con dei bottoni, textbox, etc. E' molto difficile e su internet si trovano tutorial solo per creare degli engine/rendering 3d.
 

pabloski

Utente Èlite
1,897
338
Hardware Utente
Grazie lo stesso.

Più che altro la mia intenzione era quella di provare a creare una classe che utilizzi OpenGL (uso glfw) per creare delle finestre con dei bottoni, textbox, etc. E' molto difficile e su internet si trovano tutorial solo per creare degli engine/rendering 3d.
Why?

Intanto vai ad utilizzare un'API di estrema complessità. E lo scopo è quello di ridurti al 2D? Cioè, useresti mai una Ferrari per andare al supermercato di fronte casa tua?

Ovviamente c'è un caso in cui si vuole il 2D via OpenGL ( o altre API 3D ) ed è quello degli HUD nei giochi. Gli HUD sono quelle finestrelle che consentono di cambiare i settaggi o quelle che compaiono all'improvviso per visualizzare informazioni importanti.

Altra questione è la piattaforma. OpenGL è cross-platform, ma presenta delle subdole differenze ( in particolare relativamente alla gestione delle finestre e degli input ) tra i vari sistemi operativi. Inoltre è un'API che MS ha volutamente castrato ( su Windows ), per spingere Direct3D ovviamente.

Infine è un'API che andrà a sparire, sostituita da Vulkan.

Dove voglio andare a parare? Nessuno sviluppatore di programmi grafici usa OpenGL direttamente, ma utilizza librerie tipo SDL.

Detto questo, se vuoi utilizzare OpenGL per il 2D, devi studiare come usarla per il 3D. OpenGL ragiona in termini di "surface", cioè buffer renderizzabili, in cui sono presenti determinati oggetti geometrici. Nel tuo caso avresti una singola surface, posizionata su un certo piano nello spazio tridimensionale, con tutti gli oggetti che hanno la stessa coordinata Z.

Il resto resta tale e quale ai programmi 3D. Per cui non ti resta che studiarti come usare OpenGL per creare grafica 3D e poi settare Z=costante e il gioco è fatto.
 
Ultima modifica:
  • Mi piace
Reactions: mashi1994

fabio93

Utente Attivo
Se, come credo di aver capito, vuoi semplicemente creare applicazioni con un'interfaccia grafica (GUI), come ti hanno fatto notare gli altri usare le OpenGL è eccessivo. Dovresti usare delle librerie grafiche apposite. Per C++ ci sono le wxWidgets e le Qt che sono cross platform.
 

Shindanaide

Nuovo Utente
Per creare applicazioni in 2D, ti sconsiglio di utilizzare OpenGL puro, sarebbe veramente un lavoro oneroso. Piuttosto, esistono varie astrazioni, come ad esempio SFML, che rendono molto più semplice ed intuitivo sviluppare un software. Utilizzano comunque la tecnologia offerta da OpenGL e sono librerie ottimizzate.

Se devi creare un'interfaccia grafica per un programma, senza volere inventare nuovamente la ruota, ti consiglio di dare un occhio a TGUI; è un progetto giovane, in crescita e in pieno sviluppo. Ha già tutti i widget predisposti per una GUI.
 

Entra

oppure Accedi utilizzando