Domanda

Ho un Modell 3D di una casa, dove il tetto è invisibile in modo che le camere possono essere visti (Come qui )

Ma (per ora) non ho texture e ogni superficie ha lo stesso colore, per es.,

var myMaterial = new DiffuseMaterial (new SolidColorBrush(myColor))

Se ho vista in un WPF Viewport3D, voglio essere in grado di distinguere tra le superfici. per esempio, voglio vedere quando le estremità del pavimento e inizia a muro.

Questo dovrebbe essere possibile accendendo l'oggetto. Ho già provato:

La luce ambiente non funziona, perché tutte le superfici potrebbero adattarsi perfettamente anche colorati:

myViewport3D.Children.Add(new ModelVisual3D(){Content = new AmbientLight(Colors.White)})

E se uso luce direzionale e bastone sua posizione alla telecamera in movimento, alcune normali di superficie sono talvolta quasi perpendicolare alla telecamera / luce e così sono quasi nero, che sembra ancora più innaturale.

Che cosa è un buon modo per distinguere le superfici di un singolo colore 3DObject in WPF Viewport3D?


A cura dopo che l'utente "JDV", ha scritto il suo commento

È stato utile?

Soluzione

Dal momento che è possibile utilizzare 2 fonti di luce, vorrei provare a utilizzare una luce fioca di agire come uno sfondo di luce ambientale e di una luce direzionale po 'più forte per dare contrasto con le superfici.

Non sono un esperto di 3D, ma penserei in questo modo:

In una stanza buia (senza luce ambientale), con una torcia elettrica (la luce direzionale), vedrete enormi differenze in base all'angolo della superficie dalla torcia. Aggiungere un po 'di illuminazione ambientale e la durezza di queste differenze diminuisce come fonte di luce ambientale diventa più forte, fino a un certo punto, si vince la torcia e tutto appare uniformemente illuminato.

Buona fortuna, spero che tu sia in grado di ottenere l'effetto si sta dopo.

Altri suggerimenti

Personalmente, trovo che questo possa essere realizzato il "migliore" da una combinazione di due luci.

  1. Un dim (forse il 30% acceso) luce ambientale. Questa mostra sempre tutte le superfici.
  2. Una luce direzionale, a circa 80% bianco, che segue la macchina fotografica, ma è fuori di 30 gradi circa. Trovo una luce "sopra la spalla sinistra della fotocamera" tende ad essere quello che la gente spesso si aspettano.

Inoltre, se i vostri normali della superficie non sono sempre sarà corretto, è possibile utilizzare una terza luce - un'altra luce direzionale che punta nella direzione opposta del primo. Si accende le facce posteriori delle superfici se hai normali inappropriate.

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