Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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 momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-02-2005, 01:04   #1
DesmoColo
Senior Member
 
L'Avatar di DesmoColo
 
Iscritto dal: Sep 2003
Città: Lucca
Messaggi: 379
OpenGL depth buffer: chiarimenti

Ciao a tutti.
Vorrei un chiariemento sull'output di queste righe di codice;

void DrawMyScene()
{

stanza.drawGLStanza
glDepthFunc(GL_ALWAYS);
pallina.drawGLPallina();
glDepthFunc(GL_LESS);
}
Per essere più chiari,quello che voglio ottenere è una pallina texturirizza all'interno di una stanza che sia sempre visibile, anche quando sia dietro un muro (la texture non importa che si veda in tal caso). So già che con le righe di codice sopra indicate disabilito il temporaneamente il depth buffer e faccio disegnare prima di ogni cosa la mia pallina (almeno così mi hanno spigato! :-)) Non capisco perchè, se mi trovo in una stanza senza muri, la texture della pallina a volte scompare e riappare mentre questa è in movimento e si vede la pallina con delle righe nere. Come posso evitare questo effetto?
Avrei pensato di disegnare intorno alla sfera un cerchietto trasparente con il depth buffer disabilitato,e di tenerlo abilitato sul resto della sfera, ma non ho la minima idea di come fare.
__________________
God rides DUCATI!
DesmoColo è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2005, 17:02   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
La glDepthFunc imposta il criterio in base al quale viene utilizzato il depth buffer, ovvero il buffer dove OpenGL mantiene la profondità di ciascun pixel (non so se è corretto chiamarlo pixel, forse "frammento" sarebbe + corretto, ma non sono sicuro).
Quindi nel codice che hai postato, la stanza viene disegnata per intero (la profondità dei poligoni viene ignorata, se c'è un poligono che sta dietro a un altro, potrebbe venire disegnato davanti), mentre della pallina vengono disegnati solo i poligoni che stanno davanti e che coprono quelli che stanno dietro, perché prima di disegnare la pallina viene reimpostato il criterio per l'uso del depth buffer. Poi il programma ce l'hai tu, quindi tu sai qual'è il suo effetto grafico finale
Ciao
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2005, 17:05   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Scusa, avevo letto male il messaggio: ho letto male il codice e non ho letto la seconda parte
Allora, se disabiliti il depth buffer, la pallina viene disegnata sopra la stanza, ma circa metà dei poligoni che compongono la parte posteriore della pallina potrebbero essere disegnati davanti a quelli che compongono la parte anteriore; ecco spiegato lo strano effetto grafico.
Il fatto è che la scena che vorresti disegnare è incoerente: dovresti disegnare davanti una cosa che in realtà sta dietro! Secondo me quello che devi fare è lasciar perdere il depth buffer e lavorare sulle matrici: al momento del disegno della pallina la matrice (modelview o projection, vedi un po' tu ) deve fare in modo che il solido disegnato stia davanti a tutto, ma le dimensioni devono essere appropriate affinché la pallina appaia piccola e sembri lontana... spero di essermi spiegato bene

Ri-ciao

Ultima modifica di 71104 : 11-02-2005 alle 17:09.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2005, 12:29   #4
DesmoColo
Senior Member
 
L'Avatar di DesmoColo
 
Iscritto dal: Sep 2003
Città: Lucca
Messaggi: 379
Ho risolto con un piccolo trucco: Ho disegnato attorno alla mia pallina due cerchietti neri paralleli tra loro con il depth buffer impostato come nel precente post e ho cammuffato il tutto mettendoci sopra la texture di una palla da basket
Ti ringrazio molto perch almeno adesso ho un 'idea più chiara di come si usa il depth buffer!
__________________
God rides DUCATI!
DesmoColo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Microsoft stravolge l'app Sicurezza di W...
Mercato smartphone in caduta libera: -20...
Android 17 QPR3 Beta 3 riporta il blocco...
Le 10 offerte TOP in Amazon del weekend:...
Dyson, doppio crollo su Amazon: purifica...
Il 70% delle imprese non vede effetti de...
HillMiles MileCity1 a 616€: la city e-bi...
GAC Aion UT, prima prova: tanta roba a 2...
vivo X300 Pro a 979€: il top di gamma co...
AGIBOT fa ballare 110 Expedition A3 per ...
iPad A16 da 11'' scende a 459€ in tutti ...
Mac mini M6 crolla a 899€ (-180€ rispett...
Galaxy S27, la ricarica resta a 25W: lo ...
Claude Code, backdoor SSH: secondo Curso...
Il rumore delle 69 turbine è inso...
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: 11:33.


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