Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
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.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-04-2012, 17: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 14:23. Motivo: Corretta la doppia negazione.
-NaNo- è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2012, 13: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, 13: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, 13: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, 18: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, 13: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, 18: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, 14: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, 17: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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
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...
iPhone 18 Pro disponibile su Amazon a 1....
ECOVACS T90 OMNI a 439€ e T90 MAX OMNI a...
Questa Proscenic è la scopa elett...
Microsoft Defender: falso allarme sull'a...
Aerei in volo e truppe pronte all'assalt...
Usano Claude per hackerare OpenAI: ricer...
RatHat: il nuovo malware Android usa il ...
Domanda di petrolio in calo di 2,5 milio...
Il meglio delle offerte weekend Amazon a...
Dopo oltre 100 anni di tentativi, l'IA d...
Speciale robot aspirapolvere in offerta ...
L'IA sta cancellando i lavori junior? Il...
Debutta Chery Italia: non più sol...
Addio ai dischi? Xbox ci aveva già...
Speciale TV Amazon: 4 modelli, da 139€ f...
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: 09:32.


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