Newsgroup: it.comp.lang.c++
Titolo: Programmare OpenGL

Ciao a tutti. Siccome devo fare un'applicazione "seria", vorrei usare
per la parte di grafica OpenGL. Per quanto riguarda DirectX c'e' un SDK
che si scarica dalla Microsoft e per OpenGL invece? La domanda mette in
luce quanto ne so poca di programmazione grafica, ma la parte di grafica
non la faro' io: io devo solo informarmi per passare le informazioni a
un mio collega che attualmente usa DirectX. Siccome DirectX non e'
supportato su NT e io scrivero' il mio programma in modo che funzioni
solo su NT, vorrei che mi suggeriste come fare per usare OpenGL nelle
applicazioni. Ringrazio in anticipo.
Cordialmente,
-- 
Gianni Rondinini, programmer and designer at Pierre s.n.c.
e-mail: 
pie...@mail.asianet.it
homepage: 
http://www.geocities.com/SiliconValley/park/7666
Red Hat Linux 4.1 user since 6/16/97
Windows NT 4.0 Server user since 6/27/97
If a railstation is a place where trains stop, what is a workstation?

DirectX =E8 una tecnologia proprietaria MS ed =E8 supportata sia da =
Win95
che da NT (per NT per=F2 =E8 richiesto il SP3 di NT4.0 oppure NT5.0). =
OpenGL
=E8 una tecnologia di SG ed =E8 aperta. E' supportata a livello nativo =
da
NT, esiste anche un supporto AddON per Win95.
Parli di applicazione seria ma non dici che tipo di applicazione. Se
devi sviluppare un gioco certamente =E8 meglio DirectX, se devi =
sviluppare
un CAD =E8 meglio OpenGL. Entrambe le tecnologie sono supportate sia in
emulazione SW che tramite accelerazione HW. Ma i due target sono
completamente diversi.
DirectX ha come target la velocit=E0 a bassa/media risoluzione con
features specifiche per i giochi (come la nebbia del paesaggio etc.) In
DirectX non =E8 importante la precisione ma la velocit=E0 di rendering =
e la
"verosimiglianza" del paesaggio. In DirectX non =E8 importante la
portabilit=E0. Le immagini create da DirectX sono destinate a rimanere
sullo schermo per frazioni di secondo o per pochi secondi e poi vengono
rigenerate da zero. Una immagine DirectX =E8 generalmente composta da
alcune migliaia di patch e viene "resa" in una frazione di secondo (su
HW specifico).
OpenGL ha come target una rappresentazione matematica. In OpenGL =E8
importante la precisione e l'esattezza, non la verosimiglianza. La
velocit=E0 =E8 importante se non va a scapito della precisione. OpenGL
lavora di solito a risoluzione medio/alta. OpenGL =E8 portabile anche =
su
architetture differenti. Le immagini create da OpenGL sono destinate ad
essere stampate o ad essere manipolate con precisione (CAD appunto) e
restano sullo schermo per minuti o ore. Spesso una immagine complessa
viene aggiornata e modificata ma rimane sostanzialmente statica per
lungo tempo (salvo zoom o refresh forzato a mano). Una immagine OpenGL =
=E8
spesso composta da centinaia di migliaia di patch (o anche alcuni
milioni) e non pu=F2 comunque essere "resa" in tempi "frame" (lascia
perdere i demo di MS che non ha capito a cosa serve OpenGL) a meno di
avere acceleratori che nulla hanno a che vedere con NT.. =20
In altre parole: se dovessi sviluppare la tua applicazione su una
piattaforma diversa da un PC con NT, quale alternativa avrebbe pi=F9
mercato: una play station a 128 bit (sega o atari o quello che
preferisci) o una silicon graphic indigo di fascia alta ? Nel primo =
caso
usa DirecX, nel secondo OpenGL.
Se invece devi fare concorrenza a Industrial Lignts and Magics e Lucas
Film per realizzare dinosauri, sappi che ne OpenGL ne DirectX fanno al
caso tuo.=20
---
     Andrea Ferro
SW.AN. Technologies s.a.s.
Merate (Lc)          Italy
	-----Original Message-----
	From:	Gianni Rondinini [
SMTP:pie...@mail.asianet.it
]
	Posted At:	Tuesday, September 23, 1997 12:31 PM
	Posted To:	c++
	Conversation:	Programmare OpenGL
	Subject:	Programmare OpenGL
	Ciao a tutti. Siccome devo fare un'applicazione "seria", vorrei
usare
	per la parte di grafica OpenGL. Per quanto riguarda DirectX c'e'
un SDK
	che si scarica dalla Microsoft e per OpenGL invece? La domanda
mette in
	luce quanto ne so poca di programmazione grafica, ma la parte di
grafica
	non la faro' io: io devo solo informarmi per passare le
informazioni a
	un mio collega che attualmente usa DirectX. Siccome DirectX non
e'
	supportato su NT e io scrivero' il mio programma in modo che
funzioni
	solo su NT, vorrei che mi suggeriste come fare per usare OpenGL
nelle
	applicazioni. Ringrazio in anticipo.
	Cordialmente,
	--=20


Grazie Andrea. Mi hai dato una risposta chiara ed esauriente. Io devo
proprio lavorare su un Cad -che nasce elettronico ma si estendera' ad
alcune esigenze particolari semi-meccaniche quando la prima parte sara'
terminata- e su un pacchetto di applicativi in cui c'e' una grossa fetta
di disegno tecnico NON renderizzato e non troppo "reale". Le figure che
devo realizzare sono, per lo piu', camion, gru e simili e le devo
realizzare in modo molto stilizzato. Tipo quelli dove si leggono le
dimensioni caratteristiche nei depliants. Non devo fare animazioni molto
pesanti e neppure rendering stratosferico fa parte dei miei progetti,
quindi mi sembra che OpenGL faccia al caso mio. Dico bene? Siccome sono
applicativi "seri" nel senso che non sono dedicati a utenti comuni ma a
aziende specializzate, le macchine che li useranno lavoreranno
presumibilmente almeno a 1024x768, magari 64k colori o true color e
quindi credo di poter escludere DirectX.
Dumb question: considerando che usero' VC5 e, presumibilmente, MFC, c'e'
qualche speranza di portare le applicazioni scritte per NT su x86 ad
esempio a NT per Alpha? C'e' qualche pacchetto -anche commerciale,
chiaramente- che estende il target di VC5 anche alle altre piattaforme
dove gira NT?
Cordialmente,
-- 
Gianni Rondinini, programmer and designer at Pierre s.n.c.
e-mail: 
pie...@mail.asianet.it
homepage: 
http://www.geocities.com/SiliconValley/park/7666
Red Hat Linux user since 9/25/97
Windows NT Server user since 9/19/97
When it rains, why don't sheep shrink?