读书人

WPF3D图形纹理映射为啥没有正确显

发布时间: 2013-10-29 12:07:57 作者: rapoo

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

读书人网 >C#

热点推荐