2009-03-30 12 views
3

Ich habe eine 3D-Ebene, die ich versuche, mit einem ImageBrush zu rendern, da es DiffuseMaterial.Brush ist. Wenn ich einen SolidColorBrush benutze, scheint das Flugzeug in Ordnung zu sein, aber ich bekomme weder einen ImageBrush noch einen VisualBrush.WPF 3D - Warum rendert mein ImageBrush nicht?

Kann mir jemand sagen, warum? Hier ist der Code.

<ModelVisual3D> 
     <ModelVisual3D.Transform> 
      <RotateTransform3D CenterX="0" CenterY="0" CenterZ="0"> 
       <RotateTransform3D.Rotation> 
        <AxisAngleRotation3D Axis="0 1 0" Angle="90"/> 
       </RotateTransform3D.Rotation> 
      </RotateTransform3D> 
     </ModelVisual3D.Transform> 
     <ModelVisual3D.Content> 
      <GeometryModel3D> 
       <GeometryModel3D.Geometry> 
        <MeshGeometry3D x:Name="frontmesh" TriangleIndices=" 
            0 1 2 
            2 3 0"> 
         <MeshGeometry3D.Positions> 
          <MultiBinding Converter="{StaticResource front}"> 
           <Binding ElementName="UC" Path="CubeHeight" /> 
           <Binding ElementName="UC" Path="CubeWidth" /> 
           <Binding ElementName="UC" Path="CubeDepth" /> 
          </MultiBinding> 
         </MeshGeometry3D.Positions> 
        </MeshGeometry3D> 
       </GeometryModel3D.Geometry> 
       <GeometryModel3D.Material> 
        <DiffuseMaterial> 
         <DiffuseMaterial.Brush> 
          <ImageBrush ImageSource="CF.jpg" 
             AlignmentX="Center" AlignmentY="Center" 
             Stretch="Fill"/> 

         </DiffuseMaterial.Brush> 
        </DiffuseMaterial> 
       </GeometryModel3D.Material> 
      </GeometryModel3D> 
     </ModelVisual3D.Content> 
    </ModelVisual3D> 

Antwort

5

Verstanden,

I benötigt Mapping bereitzustellen Koordinaten für die Bürste zu machen. Das MeshhGeometry3D sieht jetzt so aus -

<MeshGeometry3D x:Name="frontmesh" TriangleIndices=" 
            0 1 2 
            2 3 0" 
            TextureCoordinates="0 1,1 1,1 0 ,0 0"> 
         <MeshGeometry3D.Positions> 
          <MultiBinding Converter="{StaticResource front}"> 
           <Binding ElementName="UC" Path="CubeHeight" /> 
           <Binding ElementName="UC" Path="CubeWidth" /> 
           <Binding ElementName="UC" Path="CubeDepth" /> 
          </MultiBinding> 
         </MeshGeometry3D.Positions> 
        </MeshGeometry3D>