首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF,3D图形纹理映射,为啥没有正确显示图片呢

2013-10-29 
WPF,3D图形纹理映射,为什么没有正确显示图片呢?GridViewport3D NamemyViewport Viewport3D.Camera

WPF,3D图形纹理映射,为什么没有正确显示图片呢?


<Grid>
    <Viewport3D Name="myViewport" >
        <Viewport3D.Camera>
            <PerspectiveCamera Position="1,3,2" LookDirection="0,-3,-2" />
        </Viewport3D.Camera>
        <ModelVisual3D>
            <ModelVisual3D.Content>
                <DirectionalLight Color="White" Direction="0,2,0"/>
            </ModelVisual3D.Content>
        </ModelVisual3D>
        <ModelVisual3D>
            <ModelVisual3D.Content>
                <GeometryModel3D>
                    <GeometryModel3D.Geometry>
                        <MeshGeometry3D Positions="0,0,0 0,1,0 2,0,0 2,1,0" TriangleIndices="0,2,1 1,2,3" TextureCoordinates="1,1 0,1 1,0 0,0"/>
                    </GeometryModel3D.Geometry>
                    <GeometryModel3D.Material>
                        <DiffuseMaterial>
                            <DiffuseMaterial.Brush>
                                <ImageBrush ImageSource="6.jpg"/>
                            </DiffuseMaterial.Brush>
                        </DiffuseMaterial>
                    </GeometryModel3D.Material>
                </GeometryModel3D>
            </ModelVisual3D.Content>
        </ModelVisual3D>
    </Viewport3D>
</Grid>


上面代码中,3D矩形,设置了纹理映射,为什么没有显示图片呢?
[解决办法]
我用代码是这样写的
MaterialGroup mat = new MaterialGroup();
            ImageBrush imgbrush = new ImageBrush(source);
            imgbrush.ViewportUnits = BrushMappingMode.Absolute;
            imgbrush.TileMode = TileMode.Tile;
            SpecularMaterial specular = new SpecularMaterial(new SolidColorBrush(Colors.White), 60);
            DiffuseMaterial diffuseMaterialSolid1 = new DiffuseMaterial(imgbrush);
            mat.Children.Add(diffuseMaterialSolid1);
            mat.Children.Add(specular);
            this._model_solid.Material = mat;

应该差不多吧 仔细检查下吧 不然看看msdn

热点排行