Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-01-2004, 15:10   #1
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
OpenGl

Dove trovo guide e tutorial sulle OpenGl, possibilmente in it?????


Tnk
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2004, 15:25   #2
maxithron
Senior Member
 
L'Avatar di maxithron
 
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
http://www.multiplayer.it/itaprogami...ngl/opengl.asp
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n;
Utilizzando atomi trivalenti drogheremo il silicio di tipo p;
Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo
maxithron è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2004, 17:00   #3
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
http://nehe.gamedev.net/

in particolare scaricati questo .chm

http://nehe.gamedev.net/files/resour...opengl_chm.zip

Ovviamente devi studiare...non è roba che si impara in 5 minuti.

per l'italiano ...andiamo male

[EDIT]
Cacchio non mi ero accorto che sopra ti avevano dato il link a quello in italiano

Ultima modifica di verloc : 08-01-2004 alle 17:02.
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2004, 20:46   #4
Argosoft
Senior Member
 
L'Avatar di Argosoft
 
Iscritto dal: Aug 2003
Città: addio fabriANO... mò sto a Roma ahò!!
Messaggi: 579
wow!

bellissima guida!!! un Grazie a Verloc e a Maxithron!!!!!!!!!!
Argosoft è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2004, 22:03   #5
maxithron
Senior Member
 
L'Avatar di maxithron
 
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
Quote:
Originariamente inviato da verloc

[EDIT]
Cacchio non mi ero accorto che sopra ti avevano dato il link a quello in italiano

__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n;
Utilizzando atomi trivalenti drogheremo il silicio di tipo p;
Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo
maxithron è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2004, 19:50   #6
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Ciao ragazzi, ho rispolverato il tread per discutere un pò di OpenGl
Ho iniziato da qualche tempo il corso di Sist. Operativi e finalmente ho intrapreso lo studio del C.
Girovagando per la rete ho trovato i famosi tutorials di Nehe in italiano ed avendo visto che lo stesso autore degli articoli pensa che anche un novello di C/C++ può seguire il suo corso, ho pensato di perderci qualche oretta la sera in maniera hobbistica
Ho preso il primo tutorials ed ho dato una buona lettura, devo dire che diverse cose le ho seguite bene, altre un pò meno.
Ad esempio ho non poche difficoltà con queste funzioni:
Codice PHP:
LRESULT    CALLBACK WndProc(HWNDUINTWPARAMLPARAM);    // Prototipo di funzione di WndProc
int WINAPI WinMain(    HINSTANCE    hInstance,            // Istanza
                    
HINSTANCE    hPrevInstance,        // Istanza precedente
                    
LPSTR        lpCmdLine,            // Parametri della linea di comando
                    
int            nCmdShow
Da quanto ho capito, questo sono riferimenti puri alle win32.
Un'altra cosa, questo sorgenteè scritto in C++ non C,vero?
Allegati
File Type: zip lesson1.zip (5.5 KB, 3 visite)
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2004, 20:27   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
WinMain è la funzione corrispondente al main nei programmi per Windows (il cosidetto entry point)...

WndProc è la funzione che processa i messaggi ricevuti da una certa finestra...

Chiaramente è tutta roba Windows...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2004, 11:34   #8
Elysium
Senior Member
 
L'Avatar di Elysium
 
Iscritto dal: Jul 2000
Messaggi: 936
se posso consigliare...non in it ma ottima.

http://www.opengl.org/documentation/red_book_1.0/

e

http://www.opengl.org/documentation/blue_book_1.0/

Buon divertimento
Elysium è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2004, 13:04   #9
P4ge83
Member
 
L'Avatar di P4ge83
 
Iscritto dal: Jun 2003
Città: Rimini
Messaggi: 198
Queste sono dispense che ci hanno dato per l'università...per iniziare vanno + che bene

http://www3.csr.unibo.it/~lazzaro/Me...20Grafica%20I/
P4ge83 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2004, 17:26   #10
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Grazie ad entrambi per i link
Trovo le guide di Nehe abbordabili, come già detto mi sono trovato più spaesato nelle parti di codice dove si fa accesso diretto alle API win32 di windows.
Grazie
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2004, 18:24   #11
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Prova ad usare la libreria glut che mette a disposizione di chi programma in opengl delle funzioni sempli semplici con cui costruire una finestra windows, gestire gli eventi del mouse e della tastiera, costruire un menu contestuale, senza usare le api di windows. Bastano poche righe per mettere su una finestra senza preoccuparti di nulla. Se vuoi solo studiare opengl e bene usarla, se poi vuoi imparare anche le api di win è un altro discorso.

Esempio, definisci un main cosi:
Codice PHP:
int main(int argcchar** argv)
{
   
glutInit(&argcargv);
   
glutInitDisplayMode(GLUT_DOUBLE GLUT_RGB GLUT_DEPTH);
   
glutInitDisplayMode (GLUT_DOUBLE GLUT_RGB);
   
glutInitWindowSize (500500);
   
glutInitWindowPosition (100100);
   
glutCreateWindow (argv[0]);
   
init ();
   
glutDisplayFunc(disegna);
   
glutReshapeFunc(aggiorna);
   
glutKeyboardFunc(tastiera);
   
glutIdleFunc(animazione);
   
glutMainLoop();
   return 
0;

dove disegna è la funzione che effettua il disegno; aggirna è la funzione da invocare se l'utente ridimensiona la finestra, tastiera è la funzione da invocare se l'utente preme un tasto, ecc ecc... In questo modo bastano le tre righe:

glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);

per creare la finestra.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2004, 19:13   #12
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Grazie Anx721, mi hai già aiutato in passato (ti ricordi le grammatiche?) Grazie per l'esempio chiarificatore, oltre al fattore semplicità, usando Glut, si sfrutta la multipiattaforma che può essere utile in tutti i casi...Dimmi un'altra cosa, per curiosità, usando Glut, al posto delle dirette chiamate alle api windows, si ottengono delle prestazioni inferiori?
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2004, 19:39   #13
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Non penso che si diminuiscano le prestazioni, anche perche penso che le glut siano implementate con le api stesse. Servono propio a fornire al programmatore un'interfaccia piu semplice per costruire una finiestra. Oltre queste agevolazioni, offrono anche altre funzioni utili.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2004, 17:35   #14
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Sto facendo qualche prova, mettendo assieme il tutorial di Nehe, le guide suggerite p4ge83 ed il reedbook. Voglio aprire una finestra e disegnare un triangolo ed un quadrato leggermente spostato a destra.
Codice:
# include <windows.h>
# include <stdlib.h>
# include <gl/glut.h>
# include <gl/gl.h>
# include <gl/glu.h>

void disegna (void)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Pulisce lo schermo e il Depth Buffer
	
	glLoadIdentity(); // Resetta la View
	glBegin(GL_TRIANGLES);								// Disegna usando i triangoli
		glVertex3f( 0.0f, 0.2f, 0.0f);					// Sopra
		glVertex3f(-0.2f,-0.2f, 0.0f);					// Sotto a sinistra
		glVertex3f( 0.2f,-0.2f, 0.0f);					// Sotto a destra
	glEnd();											// Finito di disegnare il triangolo 
	glTranslatef(3.0f,0.0f,0.0f);						// Si muove a destra di 3 Unità
	glBegin(GL_QUADS);									// Disegna un quadrato
		glVertex3f(-0.5f, 0.5f, 0.0f);					// Sopra a sinistra
		glVertex3f( 0.5f, 0.5f, 0.0f);					// Sopra a destra
		glVertex3f( 0.5f,-0.5f, 0.0f);					// Sotto a destra
		glVertex3f(-0.5f,-0.5f, 0.0f);					// Sotto a sinistra
	glEnd();

glFlush();

}

void myinit (void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity ( );                 // Resetta la Modelview Matrix corrente
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);

}

void main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE| GLUT_RGB);
glutInitWindowSize(800,600);
glutInitWindowPosition(100,150);
glutCreateWindow("Primo tentativo");
glutDisplayFunc(disegna);
myinit();
glutMainLoop();
}
Purtroppo mi viene disegnato solo il triangolo e per di più la funzione glTranslatef è come se non funzionasse, mi date qualche chiarimento?
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2004, 21:19   #15
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Il problema è che il quadrato lo trasli troppo e va a finirie fuori dalla finestra...

prova a sostituire

glTranslatef(3.0f,0.0f,0.0f);

con

glTranslatef(0.75f,0.0f,0.0f);

Ci vuole un po di dimistichezza rendersi conto delle dimensioni e del sistema di coordinate.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2004, 08:00   #16
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Hai ragione
Grazie
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2004, 17:22   #17
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Devo dire che mi sta divertendo parecchio l'uso dell'OpenGL accopiato con le Glut, operazioni come mettere il fullscreen od interagire con tastiera e mouse sono molto semplici
Adesso ho un problema, volevo fare roteare attorno all'asse Y un triangolo ed attorno all'asse X un quadrato:

Codice:
void disegna(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Pulisce lo schermo e il Depth Buffer
	glLoadIdentity();									// Resetta la Modelview Matrix corrente
	glTranslatef(-1.5f,0.0f,-6.0f);						// Si muove a Sinistra di 1.5 Unità e Dentro lo schermo di 6.0 Unità
	glRotatef(rtri,0.0f,1.0f,0.0f);						// Ruota il triangolo sull'asse Y ( NUOVA )
	glBegin(GL_TRIANGLES);								// Inizia a disegnare il triangolo
		glColor3f(1.0f,0.0f,0.0f);						
		glVertex3f( 0.0f, 1.0f, 0.0f);					
		glColor3f(0.0f,1.0f,0.0f);						
		glVertex3f(-1.0f,-1.0f, 0.0f);					
		glColor3f(0.0f,0.0f,1.0f);						
		glVertex3f( 1.0f,-1.0f, 0.0f);					
	glEnd();											// Finisce di disegnare il triangolo
	glLoadIdentity();									// Resetta la Modelview Matrix corrente
	glTranslatef(1.5f,0.0f,-6.0f);						// Si muove a Destra di 1.5 Unità e Dentro lo schermo di 6.0 Unità
	glRotatef(rquad,1.0f,0.0f,0.0f);					// Ruota il quadrato sull'asse X ( NUOVA )
	glColor3f(0.5f,0.5f,1.0f);							
	glBegin(GL_QUADS);									// Disegna un quadrato
		glVertex3f(-1.0f, 1.0f, 0.0f);					
		glVertex3f( 1.0f, 1.0f, 0.0f);					
		glVertex3f( 1.0f,-1.0f, 0.0f);					
		glVertex3f(-1.0f,-1.0f, 0.0f);					
	glEnd();											// Finisce di disegnare il quadrato
	rtri+=0.2f;											// Incrementa la variabile di rotazione per il triangolo ( NUOVA )
	rquad-=0.15f;
glFlush();
}
dove rtri, rquad sono di tipo Gfloat e servono per l'angolo di rotazione del triangolo e quadrato. Il problema è che le due figure non mi ruotano...Strano perchè questo è alla fin fine il codice ricopiato dell'esempio di Nehe. Io nel mio caso ho solo diminuito qualche valore...C'è qualche accortezza particolare nell'usare questa funzione glRotatef? Spero di non sbagliare qualcosa nelle altre parti del programma, altrimenti posto tutto il codice
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2004, 17:43   #18
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Probabilmente il problema deriva da come sono realizzate le animazioni sul tutorial del Nehe, che costruisce le finestre a mano, e penso che riachiami in qualche modo la funzione di disegno. Un modo semplice e pulito di realizzare le animazioni è di incrementare le variabili che guidano l'animazione (come rtri) non nella funzione disegna, ma in un'altra funzione, che puoi ad esempio chiamare animazione. L'importante è che dici che la funzione animazione è quella che deve esser continuamente richiamata per realizzre l'animazione appunto, e lo fai con l'istruzione:

glutIdleFunc(animazione);

quindi animazione sarà qlcosa del tipo:

void animazione(){
rtri+=0.2f;
rquad-=0.15f;
}

e togli quelle istruzioni dalla funzione disegna.

Non so a cosa serva l'istruzione glFlush(), io pero le funzioni disegna le terminavo sempre con:

glutSwapBuffers ();

Ciao.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2004, 20:03   #19
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Grazie ancora per i tuoi suggerimenti.
La funzione glutIdleFunc(animazione); la devo chiamare all'interno della funzione disegna prima di glFlush vero?
Purtroppo non mi da i risultati sperati se la posiziono in quel posto.
Se invece la metto nel main, prima di chimare glutMainLoop , mi taglia a metà il triangolo
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2004, 20:11   #20
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Va proprio nel main prima di glutMainLoop, come era indicato nel primo esempio che ti ho inviato. prova magari a postare il codice, ciao.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Googlebook pronto al debutto: Google apr...
Guida all'acquisto: quale lavapavimenti ...
Google Maps su Android Auto introduce fi...
AMD Ryzen 5 5500F: fino al 16% di presta...
L'ecosistema partner di Microsoft cresce...
Oracle registra un boom nella divisione ...
Amazon Prime Video sfida TikTok con le n...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Oracle presenta Java 27 con diverse novi...
Il microscopio dell'EPFL vede più...
Volvo avvia la produzione dei nuovi cami...
26 offerte Amazon da non perdere, da iPh...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v