문제

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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top