Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
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


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Edits, l'app di Instagram, sbarca gratis...
Claude Code: il bug che ha spedito l'ema...
Perplexity lancia Teammates, gli agenti ...
Niente più datacenter? Gli eletto...
La Cina avrebbe approvato lo sviluppo de...
Epson EF-72 alla prova: Google TV, audio...
AST SpaceMobile annuncia il razzo spazia...
Apple taglia il budget AI dei dipendenti...
Fisco e intelligenza artificiale, come c...
Synology BC510 e CC410W, la videosorvegl...
600.000 chip NVIDIA fermi a Hong Kong: l...
La Cina punta tutto sull'allunaggio con ...
LG Italia compie 30 anni: gli italiani v...
Fiido esagera: Black Friday anticipato c...
Tutte le offerte Amazon del momento: ai ...
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: 17:53.


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