DOMANDA Grafica 2D C++

JDany

Utente Attivo
461
24
CPU
Ryzen 9 3900x
Scheda Madre
ASUS H170-Pro
RAM
Corsair Vengeance LPX 2x8 GB
GPU
ZOTAC RTX 3070 TWIN EDGE OC
Monitor
Philips Gaming Monitor 24"
PSU
Corsair CX450M
Case
Sharkoon VS4-V
OS
Windows 11 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
6,440
5,091
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
461
24
CPU
Ryzen 9 3900x
Scheda Madre
ASUS H170-Pro
RAM
Corsair Vengeance LPX 2x8 GB
GPU
ZOTAC RTX 3070 TWIN EDGE OC
Monitor
Philips Gaming Monitor 24"
PSU
Corsair CX450M
Case
Sharkoon VS4-V
OS
Windows 11 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
2,868
916
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
Reazioni: mashi1994

fabio93

Utente Attivo
609
173
CPU
AMD Ryzen 5 2400G
Dissipatore
Arctic Alpine64 Plus
Scheda Madre
Gigabyte GA-AX370-Gaming 3
HDD
Crucial MX500 250 GB, Crucial BX500 240 GB
RAM
G.Skill F4-3200C14D-16GFX FlareX 16 GB
Monitor
HP 2010i
PSU
Corsair TX550M
Case
Sharkoon M25-W
Periferiche
Magicforce 68, Logitech G203
OS
Windows 10 Pro, Fedora 31
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
1
0
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
Discord Ufficiale Entra ora!

Discussioni Simili