SDL vs GLUT:che supporto per le OpenGL?

29 08 2008

Il mondo della programmazione,si sa,è vasto,anzi vastissimo.Così capita spesso che per svolgere un dato compito,si trovino varie alternative.

Per chi si sta avvicinando alla programmazione 3D tramite le OpenGL,si pone dunque il dilemma:che librerie utilizzo come “base” per OpenGL?

Vi sono ovviamente tante strade,ma le due piu gettonate sono sicuramente le GLUT(OpenGL Utility Toolkit) e le SDL(Simple Directmedia Layer).Ho visto spesso persone indecise fra le due,e io stesso quando ho cominciato non sapevo bene quale scegliere…

Ma cominciamo un po col presentare le due parti.

Questo è quello che dice Wikipedia sulle GLUT(in inglese) e questo quello che dice sulle SDL.

Da qui si puo gia capire la principale differenza fra le due:mentre le GLUT svolgono solo compiti di gestione delle finestre e dell’I/O per conto delle OpenGL,tramite le SDL si possono anche gestire l’audio,gestire l’input da joystick,caricare immagini e tanto altro.

In compenso,un punto a favore delle GLUT è la loro semplicita di utilizzo:c’è bisogno di scrivere poco codice per far funzionare il programma,bisogna preoccuparsi poco della gestione delle finestre etc.. mentre le SDL necessitano di molto codice(relativamente alle GLUT).

Riassumendo:utilizzate le GLUT per progetti piccoli,demo o anche solamente per provare se funziona un concetto o un’idea.Usate invece le SDL per progetti di dimensioni piu grandi e quando siete abbastanza certi che l’idea che avete in testa possa funzionare cosi come ve lo siete immaginato.

Facendo cosi,probabilmente risparmierete non poche righe di codice in fase di progettazione/prima implementazione,ma otterete buoni risultati finali. =)


Azioni

Information

9 responses

1 09 2008
saul

Solitamente si usano entrambe….

1 09 2008
thetuxer

Ciao!
Non è sempre vero…si usano entrambe quando servono cose specifiche dell’una o dell’altra,come p.es. la funzione glutSolidSphere se devi creare una sfera e non ti vuoi andare a perdere per altre vie..
Altrimenti,perchè utilizzarle entrambe?
IMHO…;) 🙂

2 09 2008
chris

concordo, le ho usate entrambe e ho trovato glut molto più adatto a piccole demo e
test mentre SDL sembra più completa e con una gestione delle finestre più vicina ad una versione nativa come le win32 api. Inoltre SDL ti aiuta in diversi altri campi, un po’ come le DirectX, e la trovo una base più solida per progetti più grossi.

4 09 2008
saul

O su non vi riscaldate, non ho visto codice senza con solo OpenGL o solo SDL… basta prendere i source dei vari games per linux.

4 09 2008
thetuxer

Infatti non si stava parlando se usare le SDL piuttosto che le OpenGL,ma di cosa scegliere fra le SDL e le GLUT(che non fanno parte delle OpenGL)..;)

4 09 2008
saul

ahah si si ho sbagliato a scrivere volevo dire GLut, perchè sto scrivendo un engine in OpenGL e sono fissato per adesso e lo scrivo ovunque ah ah.

4 09 2008
saul

Anzi… qualcuno di voi l’ha già fatto ? sto cercando di fare una libreria con le funzioni in modo che un main possa richiamare una specie di macchina virtuale dalle librerie. Così che ogni volta che devo fare un esempio di rendering basta che scrivo un main e carico le funzioni già scritte a autonome. Qualcuno ha un sorgente simile ( progetto simile ) o una pipeline di suggerimento ? graz…

4 09 2008
thetuxer

Il fatto è che se vuoi disegnare una sfera,difficilmente ti riscrivi una funzione da solo che lo faccia…lo fai quando sai perfettamente cosa ti serve e cosa vuoi che faccia quella funzione,altrimenti usi le funzioni di GLUT che sono comode..
Comunque,non ho ben capito in cosa consiste questo tuo progetto..
Vuoi creare un engine intero tipo OGRE3D?
O vuoi semplicemente creare delle librerie tipo le GLUT che ti facilitino il compito quando devi fare certe cose?:D

5 09 2008
saul

Sto facendo una demo che permette di inserire in modo visuale, quindi tramite una finestra e il mouse dei corpi 3d, corpi semplici per adesso, navigare con la tastiera in questo spazio e spostare i corpi, quindi traslazioni rotazioni ingrandimenti ecc… vorrei anche mettere un discreto sistema di illuminazione ma non l’ho ancora implementato perchè non so bene come fare. Adesso sto usando Glut per gestire gli eventi da finestra, mouse, tastiera. Insomma hai presente i demo rilasciati con il DirectX SDK ? un demo come quelli. Le cose ancora da fare sono appunto un motore per le luci dinamiche… –>> ombre,,, questo è il casino che non so sciogliere. Poi mi piacerebbe fra 100 ANNI magari poter fare una demo giocabile col mio engine ma questo è un sogno.

Scrivi una risposta a saul Cancella risposta