2009-05-29 7 views
11

Sto finendo su un pianeta 3D con ROAM (livello di dettaglio continuo).CLOD Planet texturing largo in OpenGL

Il mio obiettivo ora è avere un rendering di buona qualità utilizzando le trame.

Sto cercando di trovare un modo per utilizzare un sistema di affiancamento (piccole trame buone combinate), ma in un modo posso sfruttare la mia mesh CLOD.

Gli algoritmi attuali (da quello che ho trovato) utilizzando questi sistemi di piastrellatura producono una trama enorme e quindi la applicano direttamente. Non è quello che voglio ... il pianeta è molto grande, e io voglio più potere che semplicemente aumentando le dimensioni della trama.

Esiste qualche funzione algoritmo/opengl noto per questo tipo di cose?

Non so molto sugli ombreggiatori, ma è possibile crearne uno che dipinga solo un oggetto ... Voglio dire, non dare i texcoords, ma mettere il colore giusto per ogni pixel (non vertice) del maglia?

PS: Il mio mondo è costruito utilizzando disturbo Perlin ... in modo da poter ottenere l'altezza in qualsiasi punto del mondo (mappa di altezza con risoluzione infinita)

+2

domanda fantastica, ahimè sono fuori di voti per un po ' – dss539

+1

I pixel shader fanno quello che vuoi: per ogni pixel, calcola che colore dovrebbe essere. Il linguaggio shader presenta alcune limitazioni rigorose, ma azioni come "dot product" e "look up in 1d/2d/3d map" sono primitive. – pjc50

+0

Qual è il tuo problema esattamente? - non hai (u, v) coordinate di trama e vuoi crearne alcuni al volo? - vuoi che la tua texture aggiunga dettagli mentre ingrandisci –

risposta

2

Hai usato del rumore 3D Perlin per il terreno, perché non generano la trama pure? Generalmente, programmi come Terragen, Vistapro e simili usano l'altitudine per selezionare casualmente una gamma di colori dalla tavolozza, modificare quel colore in base alla pendenza e magari aggiungere dettagli da trame più piccole basate sia sulla pendenza che sull'altitudine. Nel tuo caso, la distanza potrebbe anche modificare i dettagli. Del resto, il rumore 2d perlin funzionerebbe bene per la trama dei dettagli.

Hai modificato la mappa altezza? Qualcosa come un oceano sarebbe difficile da ottenere con il puro rumore del Perlin 3d, ma appiattire tutto sotto una certa altitudine e applicare una bella texture oceano algoritmica (suono 2d Perlin correttamente sintonizzato con trasparenza al di sotto di un certo livello) sarebbe bello.

+0

Puoi fornire maggiori informazioni sulla seconda frase? Qualche esempio o collegamento sull'oceano algoritmico usando perlin noise? principalmente come gestire le luci ... – fabiopedrosa

+0

Bene, guarda questa diapositiva. (http://www.noisemachine.com/talk1/9.html) Perlin sta dimostrando la stoffa, ma tralasciando le operazioni che introduce per separare le fibre farebbe acqua bella, soprattutto se si è attenti con la specularità. Quello che ha fatto sul vaso di marmo all'inizio di quella presentazione avrebbe funzionato molto bene per un oceano più alieno. Penso che la diapositiva 22 sia la migliore per l'acqua - solo una somma del valore absoulte di una serie di chiamate alla funzione di rumore. –