Newsgroup: it.comp.lang.c++
Titolo: Questo interessa (penso) a tanti - OpenGL

Volevo fare una cavolata in 3d tanto x imparare qualcosa di new. Ho scelto
l'opengl perchè è + trasportabile anche su + sistemi operativi, ma non so ne
da dove, ne come cominciare.
Sono su borland4, ma cambierebbe qualcosa se me mettessi sul vc o sul gcc?
Come faccio a utilizzarlo stò opengl? cosa devo includere? include? lib?
Chia ha il buon cuore di farmi un esempio "comprensibile" che fà un semplice
cubo(x borland ma se possibile una cosa trasportabile su quasi tutti)? (poi
vedrete che mi arrangio, una specie di rodaggio ultragenerale&basilare
insomma)
Thx
by Wave++ (loving c++)
members.xoom.com/wavexx
wav...@apexmail.com
// Meglio l'uovo fritto o sbattuto?

 wrote in message 7jv41j$1kb$1...@hermes.iol.it...


sia a tutti gli effetti 2D (un tetris magari...)?
OpenGl va bene anche per la grafica 2D, ovviamente deve essere
supportata dal driver della SK video (ma questo ormai lo fanno tutti
o quasi).
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

sia a tutti gli effetti 2D (un tetris magari...)?
Premetto che non sono un esperto di OpenGL mentre ho scritto diverso codice usando
DirectX. Da quello che mi risulta, è sicuramente possibile raggiungere il tuo obiettivo,
ma bisogna farlo con la libreria giusta. DirectX, ad esempio, è stata ideata proprio per
ovviare alla lentezza e generalità della Graphic Device Interface (GDI) di Windows. In tal
modo è possibile accedere quasi direttamente all'hardware, sfruttando appieno le
caratteristiche messe a disposizione dalla tua scheda grafica. Ecco perché la quasi
totalità dei giochi per Windows che fanno un certo uso della grafica sono basati su
DirectX. Il rovescio della medaglia è che una tale libreria non è portabile. Infatti su NT
solo una parte di DirectX viene supportata e comunque si comporta in modo diverso rispetto
a Windows95, finendo per essere, in un certo senso, client della GDI. OpenGL, invece, è
nata come libreria grafica portabile e quindi, nonostante le sue prestazioni medie siano
buone, non credo possa raggiungere il livello di aderenza all'hardware offerto da DircetX,
a meno di estensioni scritte appositamente per una architettura.
Domanda alla controdomanda: che cosa intendi quando dici "un gioco che sia a tutti gli
effetti 2D"?
Andrea

 wrote in message
7k4qom$93l$1...@pinco.nettuno.it...


 o quasi).
non è la scheda video che lo supporta in molti casi, è lo stesso win a
emulare l'hardware (al contrario del directx sempre + supportato). In ogni
modo c'è scheda e scheda..... l'opengl è stato sviluppato dalla silicon
graphics x utilizzo professionale, da schede apposite, ovviamente una svirge
non sà nemmeno cosa sia... a mè serviva proprio x la sua portabilità, e
potenza nel 3d (infatti suporta nurbs e molto altro)
Io penso che sviluppare un programma 2d con l'opengl sia uno spreco solo di
potenza e di codice. Se è solo x piattaforme win ti consiglio di directdraw,
e se vai nel sito della ms ci sono un sacco di esempi e documentazione.
cmq x fare una cosa bidimensionale con l'opengl si deve scrivere una cosa
del genere:
// Crea una semplice figura 2d
glClearColor(0,0,0,0);
glViewport(0,0,(GLint)this->Width,(GLint)this->Height);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_POLYGON);
    glVertex2f(-0.5,-0.5);
    glVertex2f(-0.5,0.5);
    glVertex2f(0.5,0.5);
    glVertex2f(0.5,-0.5);
glEnd();
glFlush();
ovviamente creando una finestra e collegandocela.. ma fatto questo il codice
rimane pressochè invariato su tutti i sistemi.
Anche se non me ne intendo di directdraw penso che sia molto + semplice il
codice... (penso..). Ad ogni modo è sicuramente molto + veloce, specialmente
a pieno schermo. Se non sbaglio persino il coreldraw lo utilizza x
velocizzare le operazioni di disegno (oppure era un altro prg... boh)
Oppure (sempre x il 2d) scrivere direttamente nella ram video.... anche se
non ho mai provato


ancora in grado di farlo, ma conto di riuscirci entro qualche mese...
Ma questi effetti hanno senso soprattutto in un ambiente 3D, o no?
Ad ogni modo, per quello che ne so io, se vuoi sfruttare al massimo le capacità di una
scheda grafica dell'ultima generazione attraverso una libreria, devi orientarti verso
DirectX. E comunque non in Windows NT. Altrimenti usa le API Glide che sono supportate
nativamente solo dai chip 3dfx. Questo per le librerie che sono aderenti all'hardware. Poi
ci sono sempre gli hardware aderenti alle librerie e questo vale soprattuttoper OpenGL,
nel qual caso, però, devi procurarti una scheda OpenGL, se puoi permettertene una :-)
Andrea


Bhe, non credo sia il caso... Volevo solo riscrivere un giochino vecchio
sfruttando degli effetti speciali garantiti da DirectX, openGL o glide... Se
ci stanno delle librerie, sfruttiamole, no? :-)

 wrote in message
7k8rqq$f2i$1...@pinco.nettuno.it...

Questo non è un problema... ho pensato alle OpenGL apposta per la
portabilità. Piuttosto mi interesserebbe sapere se c'è un libro in ITALIANO
(perchè non c'ho volgia di leggere sempre in inglese) che spieghi come
utilizzare le openGL e come funzionano sommariamente gli effetti supportati.
Scusate se sono andato Off-Topic

Scusate se sono andato Off-Topic
Ciao Bruno.
Di libri ce n'è qualcuno. Permettimi però di "trasgredire" un pochino alla tua richiesta,
nel senso che preferisco indicarti libri di qualità piuttosto che libri in italiano di cui
non so niente. E i libri che seguono sono in inglese. Non so se ci siano delle traduzioni.
Potresti informarti. Soprattutto vorrei citarti il libro che "ha fatto scuola", nel suo
piccolo. E' il primo della lista. Pensa che la libreria scritta a corredo del libro
(Auxiliary Library) e che avrebbe dovuto aiutare i lettori dello stesso a familiarizzarsi
meglio con OpenGL è fatta talmente bene che è diventata parte integrante di OpenGL. Non
dico altro. Anche se potrei aggiungere che tratta argomenti come texture mapping e
creazione di nurbs. L'unico difetto è che si tratta di un testo datato. Copre la versione
1.0. Di seguito ci metto la seconda edizione dello stesso che copre la versione 1.1 della
libreria, però sono cambiati gli autori, quindi occhio...
[1]  "OpenGL Programming Guide", Neider, Davis and Woo
    Pag. 516, Addison Wesley, 1994
    (Recensito anche su CP N. 62 - spazio libri)
[2] "OpenGL Reference Manual, 2/E", Kempf, Frazier
    Pag 490, Addison Wesley
[3] "OpenGL SuperBible", Wright Jr., Sweet
    Waite Group Press
    (E' orientato solo a Win9x/NT. Credo sia il meno interessante dei tre.)
Di testi in italiano non sono a conoscenza.
Ciao
Andrea

> sia a tutti gli effetti 2D (un tetris magari...)?
Le vie del signore sono infinite :), certo che si puo'
imposti la proiezione in modo parallelo, e si "spegne" la conversione 
clip-window coordinates, con il risultato che ti trovi ad avere sotto 
i piedi un "disegnatore di triangoli molto veloce", puoi disegnare 
tutto quello che bidimensionalmente e' costruibile a partire di unita' 
triangolari
Quale sia lo scopo di questo pero', lo ignoro..:) anche le vecchie S3 
di 2 anni fa' sono accellerate per fare blitting di bitamp, disegno di 
linee, archi, cerchi, XOR di regioni (copyright permettendo....:) )
-- 
 [darXstar@Eleanor]$Ascension_
        * 
darXstar.tin.it
        * FidoNET 2:335/241.5
        * ICQ 11151997
 
http://darxstar.cjb.net
---
 " Day by day, my jounrney,
  the pilgrimage before me,
  Night by night, my journey
  The stories that will be forever "
---