WPF疑难杂症之一(3D场景)
来源:百度文库 编辑:神马文学网 时间:2024/04/19 12:28:12
最近2个月一直在学习WPF,在实际的开发中遇到下面一个3D场景有关的问题,我先给出问题代码:
首先是在资源中定义了一个3D变换组:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Viewer3D"
//这里省略若干代码
然后建立一个Viewport3D,其中包含有多个的3D模型:(不包括红色代码)
Positions="-1 -1 0 1 -1 0 1 1 0 -1 1 0"
Normals="0 0 1 0 0 1 0 0 1 0 0 1"
TextureCoordinates="-1 1 0 1 0 0 -1 0"
TriangleIndices="0 1 2 0 2 3"/>
Positions="-0.5 -0.5 0 0.5 -0.5 0 0.5 0.5 0 -0.5 0.5 0"
Normals="0 0 1 0 0 1 0 0 1 0 0 1"
TextureCoordinates="0 0.5 0.5 0.5 0.5 0 0 0"
TriangleIndices="0 1 2 0 2 3"/>
OffsetX="-0.2" OffsetY="0.1" OffsetZ="-0.5" >
我在场景中添加了两个图片,并给ModelGroup应用了资源中的3D变换。最后的效果如下:
但是这个效果图片中出现了一个非常奇怪的问题,大家可以看小图中有向左倾斜的条纹出现。这不是我期望的结果。最后通过多次的试验发现图像的TranslateTransform对此有影响,但是我上面的3D变换中没有用到TranslatsForm,只是使用了旋转变换和坐标大小的映射。最后不得已在GeometryModel3D添加了一个TranslatsForm解决问题(红色显示的代码)。现在感觉仍很是纳闷,真正的原因还有待进一步探索!
首先是在资源中定义了一个3D变换组:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Viewer3D"
//这里省略若干代码
然后建立一个Viewport3D,其中包含有多个的3D模型:(不包括红色代码)
Normals="0 0 1 0 0 1 0 0 1 0 0 1"
TextureCoordinates="-1 1 0 1 0 0 -1 0"
TriangleIndices="0 1 2 0 2 3"/>
Normals="0 0 1 0 0 1 0 0 1 0 0 1"
TextureCoordinates="0 0.5 0.5 0.5 0.5 0 0 0"
TriangleIndices="0 1 2 0 2 3"/>
我在场景中添加了两个图片,并给ModelGroup应用了资源中的3D变换。最后的效果如下:
但是这个效果图片中出现了一个非常奇怪的问题,大家可以看小图中有向左倾斜的条纹出现。这不是我期望的结果。最后通过多次的试验发现图像的TranslateTransform对此有影响,但是我上面的3D变换中没有用到TranslatsForm,只是使用了旋转变换和坐标大小的映射。最后不得已在GeometryModel3D添加了一个TranslatsForm解决问题(红色显示的代码)。现在感觉仍很是纳闷,真正的原因还有待进一步探索!
WPF疑难杂症之一(3D场景)
WPF疑难杂症之一(3D场景)
最优化WPF 3D性能(基于“Tier-2”硬件)
3D人物场景聊天
闲话WPF之二五(WPF中的ControlTemplate [3])
闲话WPF之十七(WPF中的资源 [3])
闲话WPF之十七(WPF中的资源 [3])
英语3D人物场景聊天
3D人物场景英语口语聊天网站
非常精致的3D场景插画
3D选号技巧之一
3D游戏中的场景管理(八叉树和BSP树简介)
想练好英语口语的人有希望: 3D人物场景聊天
非常精致的3D场景插画_
想练好英语口语的人有希望了: 3D人物场景
想练好的人有希望了: 3D人物场景聊天
闲话WPF之十一(Dependency属性 [3] )
闲话WPF之二二(WPF中的Style)
闲话WPF之十八(WPF中的资源 [4] )
闲话WPF之十六(WPF中的资源 [2])
闲话WPF之十四(WPF的数据处理 [1] )
疑难杂症
想练好英语口语的人有希望了: 3D人物场景聊天
想练好英语口语的人有希望了: 3D人物场景聊天