2011-03-23 4 views
4

Comme je jouais avec le soutien 3D de WPF, je voulais essayer différentes options pour les types de matériaux d'objets 3D, donc au début j'ai créé une scène simple, avec juste un triangle (qui est rendu ok) :Matériaux pour les objets 3D

<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> 

Mais il semble que le triangle n'est plus rendu quand j'ai changé le GeometryModel3D.Material à un autre matériau comme

<SpecularMaterial Brush="Yellow" Color="Yellow" SpecularPower="24" /> 

ou

<EmissiveMaterial Brush="Yellow" ></EmissiveMaterial> 

Pourquoi est-ce? devrais-je utiliser des lumières différentes pour que les matériaux spéculaires ou émissifs fonctionnent?

Répondre

5

matériau émissif ne fonctionne pas par lui-même, l'utiliser en combinaison avec d'autres matériaux. Comme par exemple:

<GeometryModel3D.Material> 
    <MaterialGroup> 
    <DiffuseMaterial Brush="Black"></DiffuseMaterial> 
    <EmissiveMaterial Brush="Yellow" ></EmissiveMaterial> 
    </MaterialGroup> 
</GeometryModel3D.Material> 
Questions connexes