Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-04-2012, 18:00   #1
-NaNo-
Junior Member
 
L'Avatar di -NaNo-
 
Iscritto dal: Apr 2012
Messaggi: 5
[C OpenGl] Problema con posizionamento del punto di vista

Innanzitutto buongiorno, sono un nuovo utente, appena registratomi su questo meraviglioso forum.

Ora veniamo al problema in oggetto al topic:
Sto facendo un progetto di OpenGl, in linguaggio C, brevemente il progetto chiede di ricevere in input una mappa (immagine in formato .tga), dove a pixel colorati corrispondono vari elementi (semafori, lampioni, palazzi).
Il programma genera quindi una mappa tridimensionale, navigabile con tastiera e mouse.

Fino a qui tutto ok, la mappa viene creata correttamente e riesco a muovermi dentro ad essa senza problemi.
Il mio problema però è che la telecamera non è dove voglio che sia all'inizio della navigazione.
In dettaglio, sulla mappa è presente un pixel verde, che identifica l posizione di partenza, in cui posizionare la telecamera ad inizio esecuzione. Sulla mappa 3d disegno senza problemi il pixel nella posizione corretta, ma ho un problema nel posizionarci sopra la mia telecamera. In pratica, se uso gli stessi valori di x e z che ho usato per posizionare il pixel in una glTranslate, la telecamera viene messa molto distante dalla mappa. Sembra quasi che le coordinate che uso per creare/disegnare la mappa non siano le stesse che uso per spostarmi...
Questo è il codice che uso per posizionare la mia telecamera:
Codice:
for(long i=0; i!=n_pixel*3; i+=3) {
		rosso=*(puntatore+i);
		verde=*(puntatore+i+1);
		blu=*(puntatore+i+2);
	if((rosso==0)&&(verde==255)&&(blu==0)){ //Se leggo un pixel verde imposto la telecamera
		xpos=(float)righe;
		zpos=(float)colonne;
		}
	colonne++;
	if(colonne==base){
		colonne=0;
		righe++;
		}
  }
...


...
glTranslated(-xpos, 0,-zpos);
...
Il pezzo di codice che mi disegna il pixel verde è:
Codice:
for(long i=0; i!=n_pixel*3; i+=3) {
		
		rosso=*(puntatore+i);
		verde=*(puntatore+i+1);
		blu=*(puntatore+i+2);
		
		if((rosso==0)&&(verde==255)&&(blu==0)) { //Se leggo un pixel verde imposto la telecamera
			glColor3f(0,1,0);
			glBegin(GL_POLYGON);
			glVertex3f (righe-0.5, 0, colonne-0.5);
			glVertex3f (righe+0.5, 0, colonne-0.5);
			glVertex3f (righe+0.5, 0, colonne+0.5);
			glVertex3f (righe-0.5, 0, colonne+0.5);		
			glEnd();
			glColor3f(1,1,1);
		}
		colonne++;
		if(colonne==base){
			colonne=0;
			righe++;
		}
	}
La funzione glTranslate che uso per impostare la posizione è la stessa che uso per gestire il movimento della camera con la tastiera.

Qualcuno mi può spiegare quale sia il mio problema?

Grazie in anticipo a tutti!
__________________
Forever servant of my lord,
by choice and not submission...

Ultima modifica di -NaNo- : 25-05-2012 alle 15:23. Motivo: Corretta la doppia negazione.
-NaNo- è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2012, 14:41   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Bisognerebbe vedere di più per capire, comunque: provato a posizionare il viewPoint con la funzione gluLookAt()?

gluLookAt(OsservatoreX, OsservatoreY, OsservatoreZ, PuntoOsservatoX, ,PuntoOsservatoY, PuntoOsservatoZ, NormaleX,NormaleY,NormaleZ).

Ad esempio, se l'osservatore sta in [xpos,ypos,zpos], osserva l'origine degli assi [0.0,0.0,0.0] e il piano su cui giace è orizzontale (quindi normale diretta verso l'alto, [0.0,1.0,0.0]), potresti usare:

gluLookAt(xpos,ypos,zpos,0.0,0.0,0.0,0.0,1.0,0.0);
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2012, 14:37   #3
-NaNo-
Junior Member
 
L'Avatar di -NaNo-
 
Iscritto dal: Apr 2012
Messaggi: 5
Usando la gluLookAt la metterei al posto della translate, quindi andrebbe a darmi problemi al sistema di spostamento della telecamera... Ho provato a fare in modo che la gluLookAt venga eseguita solo una volta, nel momento in cui viene letta la mappa la prima volta, usando una variabile booleana ed un if, ma non sembra funzionare.

Sinceramente non riesco a capire quale sia il problema, sembra un problema di proporzioni degli indici, nel primo for li vede con una certa "scala" e nel secondo con un'altra...
__________________
Forever servant of my lord,
by choice and not submission...
-NaNo- è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2012, 14:17   #4
-NaNo-
Junior Member
 
L'Avatar di -NaNo-
 
Iscritto dal: Apr 2012
Messaggi: 5
Non avendo ancora risolto uppo il thread...
Ho provato ogni soluzione che mi è venuta in mente, ma ancora non sono riuscito a risolvere... Se volete il codice completo mandatemi un pm che ve lo mando...
__________________
Forever servant of my lord,
by choice and not submission...
-NaNo- è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2012, 19:09   #5
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Sei sicuro che prima del glTranslate il sistema di coordinate non sia già stato spostato da qualche codice precedente?

Prova a mettere un glLoadIdentity() subito prima del glTranslate.
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2012, 14:00   #6
-NaNo-
Junior Member
 
L'Avatar di -NaNo-
 
Iscritto dal: Apr 2012
Messaggi: 5
Il sistema di coordinate è a posto, anche perchè la LoadIdentity la faccio già subito prima...
__________________
Forever servant of my lord,
by choice and not submission...
-NaNo- è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2012, 19:14   #7
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Ho notato solo ora: perchè neghi "righe" e "colonne" prima di assegnarle a xpos e zpos?

Codice:
xpos=(float)-righe;
zpos=(float)-colonne;
Se è perchè devi traslare la visuale nel senso opposto, allora non devi negare (ovvero, ri-negare) le variabili nella glTranslate.

Magari può essere questo?
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2012, 15:22   #8
-NaNo-
Junior Member
 
L'Avatar di -NaNo-
 
Iscritto dal: Apr 2012
Messaggi: 5
:/ Piccolo errore che poi ho corretto nella versione successiva, qui mi sono dimenticato di metterlo a posto... Non è nemmeno quello, sono rimaste negate 2 volte perchè nei vari tentativi per trovare una soluzione avevo provato a negarle 2 volte...
__________________
Forever servant of my lord,
by choice and not submission...
-NaNo- è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2012, 18:24   #9
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Allora non so proprio quale sia il problema. :/

Il codice postato sembra totalmente corretto, il problema dev'essere da qualche altra parte...
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
La missione con equipaggio Shenzhou-21 h...
Il Galaxy S26 Edge potrebbe essere ancor...
Google riaccenderà una centrale n...
Crollo per Pornhub nel Regno Unito:-77% ...
La Germania accende il suo cannone laser...
Il meglio di Amazon in 2 minuti: tira ar...
ECOVACS risponde a Eureka e dimezza il p...
Durissimo colpo per Nintendo: l'ufficio ...
Scope elettriche al minimo storico su Am...
Blue Jay e Project Eluna: robotica e AI ...
Scede a 949€ il Samsung Galaxy S25 Ultra...
Blue Yeti Nano in super offerta su Amazo...
Netflix sta preparando un'offerta per Wa...
Prezzo impossibile, è sceso ancor...
Torna il migliore dei mini PC economici:...
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: 22:10.


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