gpt4 book ai didi

带有 Alpha channel 的 WPF 3D 纹理

转载 作者:行者123 更新时间:2023-12-05 00:08:56 28 4
gpt4 key购买 nike

使用 WPF 3D,是否可以使用带有 alpha channel 的纹理?

我想制作一个 3d 场景,其中一切都是平面(就像一切都是 Papercut 一样)。我认为实现这一目标的最简单方法是创建一个平面,将其分成相当多的三角形(如一块布),然后应用具有透明背景的纹理。通过这种方式,我可以使用相同的几何图形,只需更换纹理即可获得完全不同的形状。

我尝试将具有透明背景的 PNG 作为画笔添加到模型中,但它显示为白色背景。 WPF 3D 是否提供此功能?怎么做到呢?

最佳答案

带有 alpha 的纹理在 wpf 中确实有效(它对我有用!)。
你确定你的 png alpha 没问题吗?

在 DiffuseMaterial 中带有 alpha 的 png 满足您的所有需求。
这是一大块 xaml,带有两个带纹理的平面网格的相机。

替换 png 的路径,将其放入 xaml 文件中并启动。
您应该能够在 material1 的 alpha 后面看到 material2。

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="640.0" Height="480.0"   >
<Grid.Resources>
<MeshGeometry3D x:Key="Mesh" Positions="-4.999,-4.999,0.001 5.001,-4.999,0.001 -4.999,5.001,0.001 5.001,5.001,0.001 " TriangleIndices="2 0 3 1 3 0 " TextureCoordinates="0,0 1,0 0,1 1,1 " />

<DiffuseMaterial x:Key="material1" >
<DiffuseMaterial.Brush>
<ImageBrush ImageSource="C:\mypng.png" Transform="1,0,0,-1,0,1" />
</DiffuseMaterial.Brush>
</DiffuseMaterial>

<DiffuseMaterial x:Key="material2" >
<DiffuseMaterial.Brush>
<ImageBrush ImageSource="C:\image_4.png" Transform="1,0,0,-1,0,1" />
</DiffuseMaterial.Brush>
</DiffuseMaterial>

</Grid.Resources>
<Viewport3D Width="640.0" Height="480.0" >
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0,20"/>
</Viewport3D.Camera>

<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup >

<AmbientLight />

<GeometryModel3D Geometry="{StaticResource Mesh}" Material="{StaticResource material2}">
<GeometryModel3D.Transform>
<MatrixTransform3D Matrix="1.0,0.0,0.0,0,0.0,1.0,0.0,0,0.0,0.0,1.0,0,0.0,0.0,-5.0,1" />
</GeometryModel3D.Transform>
</GeometryModel3D>

<GeometryModel3D Geometry="{StaticResource Mesh}" Material="{StaticResource material1}">
<GeometryModel3D.Transform>
<MatrixTransform3D Matrix="1.0,0.0,0.0,0,0.0,1.0,0.0,0,0.0,0.0,1.0,0,0.0,0.0,0.0,1" />
</GeometryModel3D.Transform>
</GeometryModel3D>

</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Grid>

关于带有 Alpha channel 的 WPF 3D 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/943067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com