WPF 3D:MeshGeometry3D的定义和光照】的更多相关文章

原文 WPF 3D:MeshGeometry3D的定义和光照 由于WPF计算光照会根据整个平面的方向向量,所以如果在不同面上使用同一个点可能会达到不同的光照效果.让我们用不同的定义Mesh的方法来演示这个问题. 首先要定义两个简单的相交面,为方便定义,整个图形的主视图可以参考下图: 第一个方法就是用最简单的最笨的方法,一次性定义所有的点,这样两个面四个三角形一共12个点,TriangleIndices是从0到11. 如下代码: <MeshGeometry3D Positions="-1 0…
原文 WPF 3D: MeshGeometry3D纹理坐标的正确定义 为了使基于2D的纹理显示在3D对象中,我们必须定义3D Mesh对象的纹理贴图坐标.在WPF中,此项功能则通过MeshGeometry3D.TextureCoordinates属性. 2D纹理的对应坐标和WPF的LinearGradientBrush的StartPoint和EndPoint一样. 下图来自MSDN关于LinearGradientBrush的StartPoint的说明: (0,0)代表整个图形的左上角,(1,1)…
原文:WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体 运行结果: 事实上很简单,定义好一个正方体,处理好纹理.关于MeshGeometry3D的正确定义和纹理这里就不多讲了,可以参考我以前写过的一些文章: WPF 3D: MeshGeometry3D纹理坐标的正确定义 WPF 3D:MeshGeometry3D的定义和光照 接下来就是怎样让它动起来.我们通过3D点动画来改变照相机(Camera类型)的位置(Position属性)从而使正方体动起来(这样的话实际上正方…
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当然还有体感游戏等等. 3D 用来增加视觉效果,给人以更加直观,真实的感觉. 3D如此美妙,那我们在WPF中又该从何处入手开启我们的3D编程旅程? WPF中3D开发技术的基础知识应该有以下几点: 3D开发基础知识 WPF中3D开发的基础元素(Elements) WPF中3D变换和动画 常用辅助类 3D…
原文:WPF 3D 常用类(1) 几何数据相关类 Geometry3D 抽象类, 用于定义物体的几何数据, 可用于计算HitTest和BoundingBox MeshGeometry3D Geometry3D的子类, 定义网格的顶点, 三角形顶点, 法线, Texture(纹理)的座标 常用属性: Positions, TriangleIndices, Noramls, TextureCoordinates 模型相关类 (模型=几何数据+变形(位置,旋转,尺寸)+材质) Model3D 抽象类,…
原文 WPF 3D:使用GeometryModel3D的BackMaterial 使用BackMaterial,我们可以定义3D物体的内部材质(或者说是背面),比如,我们定义一个四方体容器,外面现实的是普通材质,里面的则是内部材质.比如下图,红色的是内部材质: GeometryModel3D.BackMaterial默认是null,所以如果不定义他的话,背面的材质是不会显示,上面的程序则会运行成这样: 定义材质很简单,设置GeometryModel3D.Material属性和BackMateri…
原文:WPF 3D:使用变换中的TranslateTransform3D 程序效果: WPF 3D中的TranslateTransform3D应该是所有3D变换中最简单的变换,使用起来非常简单,先定义好3D对象,接着在适当的位置加入变换就可以了. 当然WPF 3D中变换(Transform3D类型)可以应用在如下属性中: 照相机:Camera类型 3D模型定义:Model3D类型 容纳3D模型的Visual3D:ModelVisual3D类型 对于2D的TranslateTransform,只有…
原文:WPF 3D model - Sphere, Cone, and Cylinder   Extending Visual3D - Sphere, Cone, and Cylinder http://blogs.msdn.com/b/danlehen/archive/2005/10/16/481597.aspx   He put together a short sample which derives a Sphere, a Cone, and a Cylinder primitive f…
原文:WPF 3D编程介绍 上一篇文章简单的介绍了WPF编程的相关的内容,也推荐了本书.今天要来讲一下在WPF如何开展3D编程. 使用的xmal 和C#开发的时候:需要使用如下的关键要素: 1:摄像机,是用来模拟成像的,现在WPF支持正交(orthographical )和透视(perspective )摄像机.你需要确定它的位置(position),镜头正对的方向(LookDirection),还有就是摄像机的向上方向(UpDirection),如果不是很明白这个属性,可以参考http://t…
原文:WPF 3D 获取鼠标在场景的3d坐标 上一篇中我们谈到了WPF 3d做图的一些简单原理,这里我们简单介绍一下怎样获得鼠标在场景中的3d坐标,知道了3d坐标就可以进行很多操作了: 首先介绍一下3d图形的构成以及它的一些成员属性: 在 3D 图形编程中,没有线条.Bezier 样条曲线.矩形或椭圆.每个 3D 物体都是三维坐标空间中的三角形的集合.三角形是 3D 编程的基本单位,这是因为每个单独的三角形总是能定义一个平面,而三角形集合可以模仿立体物体,甚至可以模拟曲面.3D 视图由 View…