WPF 3D- 내 ImageBrush가 렌더링되지 않는 이유는 무엇입니까?
-
22-08-2019 - |
문제
Diffusematerial.brush 인 ImageBrush로 렌더링하려는 3D 평면이 있습니다. SolidColorBrush를 사용하면 평면이 잘 보이지만 ImageBrush 또는 VisualBrush로 전혀 아무것도 얻지 못합니다.
누구든지 이유를 말해 줄 수 있습니까? 코드는 다음과 같습니다.
<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>
해결책
알았어요,
브러시 렌더링에 대한 매핑 좌표를 제공해야했습니다. meshhgeometry3d는 이제 다음과 같습니다.
<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>
제휴하지 않습니다 StackOverflow