PDA

View Full Version : OPENGL: ma dove sono??!?!


Maephisto
15-09-2004, 15:28
salve a tutti... topic che ha a che fare con la programmazione e con la grafica... quindi lo metto in programmazione...
volevo sapere dove scaricare la libreria delle opengl... sono andato sul sito www.opengl.org e là viene detto di andare sul sito del produttore della mia scheda video (nvidia... nn vi dico il modello altrimenti vi mettete a ridere...) e scaricare i "driver"... sarà per la fretta ma proprio "download libreria opengl" nn c'è niente... sapete darmi qualche chiarimento... tutti i tutorial introduttivi che ho letto (nehe, uno su tutti) nn sono molto chiari in proposito...
cmq vi segnalo che sarei interessato a programmare sotto windows e nn sotto linux...

ilsensine
15-09-2004, 15:37
Non vengono installate insieme ai driver della scheda video?

Maephisto
15-09-2004, 16:04
ok.... infatti io credevo che fosse così....poi ho letto sta cosa (presa direttamente dal sito opengl.org):


Q. What do I need to install?

A.If OpenGL is not working for you correctly and your PC or laptop does have an OpenGL-savvy graphics card, all you should need to do is install the latest OpenGL driver from your graphics card manufacturer. Simply go to your graphics card manufacturer's website and download and install their latest OpenGL driver. If you cannot find the driver, send an email to the technical support department of the card manufacturer. If you are still having trouble, check the OpenGL Hardware, Software, & Gaming Message Board.


ora siccome sicuramente mi rispondono alla nvidia se mando 'na mail (si è percepito il tono sarcastico?), volevo capire perchè sul sito ufficiale debbano fare tanto casino... qualcosa del tipo: "guarda che il driver viene installato automaticamente" mi andava benissimo...

l'unica cosa che forse mi resta da fare è provare a creare un'applicazione opengl e vedere se funzia...

ilsensine
15-09-2004, 16:16
Sì fai una prova.
Posso dirti che i driver nvidia per linux si portano dietro le "loro" librerie opengl, non vedo perché con windows debba essere diverso...

cionci
15-09-2004, 17:00
Ce l'hanno praticamente da sempre...

Zorgolo
16-09-2004, 07:54
ti va Quake 2-3 ? allora hai le opengl installate..
ciao !:)

palu15
17-09-2004, 08:21
La libreria Opengl non sono altro che Opengl32.dll,glu32.dll e glut32.dll: ormai tutte i produttori di chip per skede video offrono una loro implementazione che si installa con i driver; le differenze?? Beh semplicemente le librerie fornite con i Driver sfruttano l'Hw della Skeda video per implementare parte delle funzionalita' esposte dalla libreria.
Non sono al corrente dell'esistenza di una libreria generale che esegue tutte le operazioni via Sw....

Zorgolo
17-09-2004, 13:11
Originariamente inviato da palu15
La libreria Opengl non sono altro che Opengl32.dll,glu32.dll e glut32.dll: ormai tutte i produttori di chip per skede video offrono una loro implementazione che si installa con i driver; le differenze?? Beh semplicemente le librerie fornite con i Driver sfruttano l'Hw della Skeda video per implementare parte delle funzionalita' esposte dalla libreria.
Non sono al corrente dell'esistenza di una libreria generale che esegue tutte le operazioni via Sw....
Beh se posso precisare : glut32.dll non centra nulla, tale dll è definita GL utility toolkit, è una dll che permette di creare velocemente piccole applicazioni opengl, è opensource (se non ricordo male) e non ha nulla a che vedere con la libreria OpenGL vera e propria.
Per quanto riguarda una libreria software che implementi tutte le operazioni via Sw... beh l'unica che conosco e MESA, che a quanto ne so è solo per linux. Ad ogni modo anche questa non implemtenta _tutte_ le funzioni,pero' ne implementa parecchie fra cui anche ARB_fragment_program.

palu15
17-09-2004, 16:05
Precisazione doverosa.... hai perfettamente ragione

Black imp
19-09-2004, 02:50
ho fatto un programmino in opengl compilato sia sotto linux che sotto winzoz e mi sono dovuto scontrare con il tuo stesso problema oltreche con l'assurdità della politica opengl:

SE NON HO CAPITO MALE:

la SG rilascia la definizione dello standard, che funzioni devono essere implementate ecc. l'implementazione di queste specifiche la fanno ovviamente i singoli produttori di schede video sfruttando l'hw specifico. quindi i file dll per windows e quelli per linux te li scarichi con i driver. e fin qui tutto ok.

QUELLO CHE NON TI DA NESSUNO sono gli HEADER FILE :muro:
che sono gli stessi per tutti e sono standard

una volta sul sito opengl.org c'erano, adesso non ho capito perchè li nascondono gelosamente! forse perchè così fanno pagare qualche diritto ai produttori di compilatori per utilizzarli? non lo so, ancora adesso non ho capito bene perchè cavolo non si trovano in giro. sotto linux per lo meno ci sono le MESA e gli header file che ti danno sono abbastanza aggiornati - la versione 1.3 c'è di sicuro -. Sotto windows ho programmato con il compilatore borland freeware e c'erano gli header della versione 1.1!!!! :muro::muro::muro:

quanto detto è tutto ciò che ho potuto desumere dalla mia esperienza ma nessuno mi ha dato spiegazioni. proverò prima o poi il forum di opengl.org

:rolleyes:

cionci
19-09-2004, 02:57
Quasi tutti i compilatori hanno già inclusi gli header inclusi...
MinGW32 ce li ha.... Visual C++ ce li ha...

Black imp
19-09-2004, 03:05
Originariamente inviato da cionci
Quasi tutti i compilatori hanno già inclusi gli header inclusi...
MinGW32 ce li ha.... Visual C++ ce li ha...

sì ma confermi quanto sopra allora. se il compilatore ha una versione vecchia ti attacchi. e quindi la SG non rilascia più gli header per guadagnare anche su quelli. assurdo!
dovrebbero rilasciarli loro

Zorgolo
19-09-2004, 06:42
Allora il compilatore ha solo la ver 1.1 ... per supportare le varie ver (1.2-1.5) devi usare i file "glext.h" e "wglext.h" che trovi qui : http://oss.sgi.com/projects/ogl-sample/registry/
Questo link lo trovi direttamente su OpenGL.org (sul menu di sx scegli "All about OpenGL extensions" e nella pagina che ti si apre "OpenGL extensions registry").

Ciao :)

gokan
19-09-2004, 09:00
Originariamente inviato da Zorgolo
Beh se posso precisare : glut32.dll non centra nulla, tale dll è definita GL utility toolkit, è una dll che permette di creare velocemente piccole applicazioni opengl, è opensource (se non ricordo male) e non ha nulla a che vedere con la libreria OpenGL vera e propria
Se proprio vogliamo essere precisi, le glut non sono aggiornate da anni, si potevano utilizzare liberamente, ma non erano disponibili i sorgenti, oggi esiste qualche cosa simile chiamato freeglut..
Ciao
;)

Black imp
19-09-2004, 12:55
Originariamente inviato da Zorgolo
Allora il compilatore ha solo la ver 1.1 ... per supportare le varie ver (1.2-1.5) devi usare i file "glext.h" e "wglext.h" che trovi qui : http://oss.sgi.com/projects/ogl-sample/registry/
Questo link lo trovi direttamente su OpenGL.org (sul menu di sx scegli "All about OpenGL extensions" e nella pagina che ti si apre "OpenGL extensions registry").

Ciao :)


scusa ma lo dici perchè lo sai o lo hai intuito?

da quel che so le extension sono delle estensioni che devono rispettare certe caratteristiche ma sono peculiari di ciascun produttore di schede video. le versioni gl.h 1.4 o glu.h 1.4 NON sono le 1.1 con le estensioni.
sotto linux infatti ti danno direttamente le 1.3 o forse anche le 1.4

così ho capito io

Zorgolo
20-09-2004, 07:47
Lo dico perchè lo so..
sto scrivendo un piccolo motore in OpenGL :)

Man mano che le OpenGL progrediscono non fanno altro che "integrare" alcune estensioni come "standard". Cio' vuol dire che le funzioni che prima erano ARB o EXT diventano "standard"
es glActiveTextureARB diventa glActiveTexture. Ad ogni modo glext.h contiente tutti i prototipi delle varie funzioni "standard" opengl 1.2-1.5, devi solo definire qualcosa come "declare_function_protoypes" prima di includere "glext.h" tuttavia io non ho mai provato così, ho sempre preferito linkarmi alle "estensioni", per una questione di compatibilità!.

Ciao

Zorgolo
20-09-2004, 07:49
ops... doppio post sorry :eek:

Black imp
21-09-2004, 02:52
Originariamente inviato da Zorgolo
Lo dico perchè lo so..
sto scrivendo un piccolo motore in OpenGL :)

Man mano che le OpenGL progrediscono non fanno altro che "integrare" alcune estensioni come "standard". Cio' vuol dire che le funzioni che prima erano ARB o EXT diventano "standard"
es glActiveTextureARB diventa glActiveTexture. Ad ogni modo glext.h contiente tutti i prototipi delle varie funzioni "standard" opengl 1.2-1.5, devi solo definire qualcosa come "declare_function_protoypes" prima di includere "glext.h" tuttavia io non ho mai provato così, ho sempre preferito linkarmi alle "estensioni", per una questione di compatibilità!.

Ciao

e tutte le costanti ridefinite? come le gestiscono?

bello il motore grafico!!! stai programmando sotto windows immagino... ?

Zorgolo
21-09-2004, 09:29
Le costanti sono dichiarate "doppie"
es GL_TEXTURE0_ARB
e GL_TEXTURE0

si programmo sotto windows..
Questo è un piccolo video ormai risalente a circa un mese fa..
http://www.zorgindustries.com/video/video2.wmv

gokan
21-09-2004, 09:43
Bello questo video, soprattutto nella parte finale, quando il cubo sulla sinistra mentre gira mostra quelle montagane in un effetto riflettente..
Cosa hai usato di particolare?
Tutto con OpenGL ?

Zorgolo
21-09-2004, 11:29
si tutto OpenGL..
beh di estensioni ne ho usate parecchiette :P
a memoria dovrei vedere lol, ora non ho il codice sotto mano (tra l'altro sono fermo xche mi si è bruciato il controller e non posso accedere ai miei sorgenti.. ho una copia di un mese fa... ma vorrei evitare di riscrivere tutto.. speriamo arrivi presto il controller nuovo )
Ad ogni modo le estensioni + salienti sono :
ARB_vertex_buffer_object
ARB_vertex_program
ARB_fragment_program (usato nel path ATI)
NV_fragment_program (usato nel path Nvidia)
ATI_pixel_format_float (ATI)
NV_float_buffer (nVidia)

Maephisto
21-09-2004, 13:34
vabbè dal video posso solo capire che... DEVO SUKARE... nn farò mai niente di così bello!!

Zorgolo
21-09-2004, 14:14
eheh beh.. grazie per i complimenti :)
Comunque non devi certo scoraggiarti, ci vuole tempo, pazienza, devi applicarti e poi vedrai che otterrai delle soddisfazioni ! :)