Domanda
Mentre stavo giocando con il supporto 3D del WPF, volevo provare diverse opzioni per i tipi di materiali degli oggetti 3D, quindi all'inizio ho creato una scena semplice, con solo un triangolo (che è reso OK):
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera Position="-2,2,2" LookDirection="2,-2,-2" UpDirection="0,1,0" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="White" Direction="-1,-1,-1" />
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="-1,0,0 0,1,0 1,0,0" TriangleIndices="0,2,1" />
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Yellow" />
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
Ma sembra che il triangolo non sia più reso quando ho cambiato la geometryModel3D.Material in un altro materiale come
<SpecularMaterial Brush="Yellow" Color="Yellow" SpecularPower="24" />
o
<EmissiveMaterial Brush="Yellow" ></EmissiveMaterial>
Perché? Dovrei usare luci diverse per funzionare i materiali speculatori o emissivi?
Soluzione
Il materiale emissivo non funziona da solo, lo usa in combinazione con altri materiali. Come ad esempio:
<GeometryModel3D.Material>
<MaterialGroup>
<DiffuseMaterial Brush="Black"></DiffuseMaterial>
<EmissiveMaterial Brush="Yellow" ></EmissiveMaterial>
</MaterialGroup>
</GeometryModel3D.Material>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow