質問

主な問題はLinearGradientBrushです。これは、固体の赤い三角形を埋めます。どうしましたか?私は二次元形状とほぼ同じコードを試してみました。それは完全に働いています。

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="215" Width="336">
<Grid Height="146" Width="232">
    <Viewport3D Name="myViewPort" ClipToBounds="False">
        <Viewport3D.Camera>
            <PerspectiveCamera x:Name="myCamera"
                               Position="10,10,10" 
                               UpDirection="0,1,0" 
                               LookDirection="-10,-10,-10"
                               FieldOfView="10"/>

        </Viewport3D.Camera>
        <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>
                            <DiffuseMaterial.Brush>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                    <GradientStop Color="Black" Offset="0"></GradientStop>
                                    <GradientStop Color="Red" Offset="0.6"></GradientStop>
                                </LinearGradientBrush>
                            </DiffuseMaterial.Brush>
                        </DiffuseMaterial>
                    </GeometryModel3D.Material>
                </GeometryModel3D>

            </ModelVisual3D.Content>
        </ModelVisual3D>
        <ModelVisual3D>
            <ModelVisual3D.Content>
                <AmbientLight></AmbientLight>
            </ModelVisual3D.Content>
        </ModelVisual3D>
    </Viewport3D>

</Grid>

役に立ちましたか?

解決

あなたはジオメトリにTextureCoordinatesを追加する必要があります:

<GeometryModel3D.Geometry>
    <MeshGeometry3D 
        Positions="-1,0,0 0,1,0 1,0,0" 
        TextureCoordinates="0,0 1,0 1,1"
        TriangleIndices="0,2,1" 
    />
</GeometryModel3D.Geometry>
一度これを行う

、材料が適切にテクスチャ座標にマッピングされます、そして、あなたはあなたの黒色>赤のグラデーションが表示されます。今、テクスチャ座標は、すべての勾配の「赤」の部分での立場をデフォルトされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top