Domanda

Un saluto tutti,

Come si vede nell'immagine, traggo un sacco di contorni utilizzando GL_LINE_STRIP. Ma i contorni sembrano un pasticcio e mi chiedo come posso fare questo sguardo buono. (Per vedere la depth..etc) Devo render contorni così, devo attaccare con GL_LINE_STRIP.I chiedo come posso abilitare illuminazione per questo?

Grazie in anticipo

Immagine originale

http://oi53.tinypic.com/287je40.jpg

http://oi53.tinypic.com/287je40.jpg

È stato utile?

Soluzione

Aggiornamento:

umanga, in un primo momento ho pensato che sarebbe l'illuminazione non funziona perché l'illuminazione è basata sulla superficie vettori normali - e non avete le superfici. Tuttavia @roe sottolineato che vettori normali sono in realtà per vertice in OpenGL, e come tale, qualsiasi POLILINEA può avere normali. In modo che sarebbe un'opzione.

E 'non è del tutto chiaro quale sia il normale dovrebbe essere per una linea 3D, come ha detto @Julien. La domanda è: come definire normali per le linee di contorno tali che l'illuminazione risultante ha un senso visivo e aiuta a chiarire la profondità?

Se tutti i vertici in ciascun contorno sono complanari (ad esempio nel piano XY), è possibile impostare il 3D normale essere 2D normale, con 0 come la coordinata Z. L'illuminazione risultante darebbe un senso visivo di forma, anche se forse non di profondità.

Se si conosce la pendenza della superficie (supponendo che v'è una superficie) in ogni punto lungo la linea, è possibile utilizzare la normale alla superficie e fare un lavoro migliore di mostrare la profondità; questo è essenzialmente come una collina-ombreggiatura applicato solo alle linee di contorno. La domanda allora è il motivo per cui non visualizza l'intera superficie?

Fine di aggiornamento

1 al suggerimento di Ben di impostare i colori delle linee a base di altitudine (è contorni topografici?) O in base alla distanza dal visualizzatore. Si potrebbe anche riempire il poligono circondato da ciascun profilo con un colore simile, come in http: // en.wikipedia.org/wiki/File:IsraelCVFRtopography.jpg

Un altro modo per rendere le linee più chiare sarebbe quello di avere meno di loro ... si può regolare la densità dei contorni? Per esempio. una linea di contorno a differenza di altezza 5ft anziché per 1 piede, o qualunque le unità sono. A seconda di ciò che è si sta disegnando i contorni di.

Altre tecniche per chiarire profondità includono stereoscopia , e ruotare l'immagine in 3D, mentre lo spettatore è a guardare.

Altri suggerimenti

Illuminazione contorni non ha intenzione di fare molto bene, ma si potrebbe usare la nebbia o impostare manualmente i colori delle linee in base alla distanza (o anche di altitudine) per dare un effetto di profondità.

Se la vostra ricerca di ombreggiatura, allora si farebbe normalmente convertire i contorni di un solido. Il solito modo per farlo è quello di costruire una rete attraverso la creazione di 4 punti d'angolo a quota zero ai limiti o al di là poi cadere i contorni nella maglia e ottenere la maglia di triangolare le coordinate in. Una volta fatto si, allora avete un triangolare solido scafo per il quale si possono trovare le normali e li appianare facce adiacenti per creare terreni lisci.

per triangolare la maglie si usa normalmente l'algoritmo di Delaunay, che è un po 'di una bestia, ma ci fa librerie esistere per farlo. La migliore delle quali io conosco è di quelli a base di Guibas come carte Stolfi dalla sua bella ottimale.

Per generare le normali si fanno un prodotto trasversale semplice e garantire il rivestimento è corretta e manualmente rinormalizzare prima immissione in glNormal.

Il ai vecchi tempi che hai utilizzato per fare un glList fuori il risultato, ma il modo più recente è quello di fare una matrice di vertice. Se vuoi essere il flash in più allora si può guardare per le facce piane coincidenti e ottimizzare la rete verso il basso per una più rapida ridisegnare ma questo è un po 'di magia nera -. Buona per i giochi, non così buono per CAD

(thx per bonus ultima volta)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top