偶然的机会发现WPF 3D开发,就去简单的了解了下3D的类
差不多就是下面这些类,然后就是做MeshGeometry3D图形的时候,用blend也没有办法来做,所以一般都是通过3Dmax或者其他3D软件,好像WPF也出了个3D软件,做好3D建模后,保存成为obj格式的文件,然后导入到blend工程里面去,blend就会自动识别里面的模型,加入xaml代码,就可以对3D模型进行逻辑操作咯
Viewport3D -------------- 画布类,3D图形都是在里面画出来呈现的
属性:1.Camera -------------------- 观察位置,眼睛看的位置,不同位置看,就是不一样的形状
抽象子类:ProjectionCamera
子类:PerspectiveCamera和OrthographicCamera
常用属性:Position眼睛位置 LookDirection看的方向
2.Children -------------------- 包含的子控件集合 Visual3DCollection<Visual3D>
抽象类:Visual3D
子类:1.Viewport2DVisual3D ------------------ 把2维按3维呈现
2.ModelVisual3D ---------------------- 3D呈现类
属性:1.Children -------------------------- Visual3DCollection<Visual3D>
2.Transform -------------------------- 3D变换
3.Content ----------------------------- Model3D具体呈现类
抽象类Model3D:
子类:1.Model3DGroup ------------------ Model3D集合
2.Light ---------------------- 光源类
子类:1.Ambientlight ----------------- 没有指定位置
2.DirectionalLight ---------------- 直线光源
3.PointLightBase --------------- 点光源
子类:PointLight 和SpotLight
3.Geometry3DGroup ---------- 3D图形类的三维模型
属性:1.Geometry --------------------- Geometry3D
抽象类:Geometry3D
子类:MeshGeometry3D
常用属性:1.Positions ------------- 顶点位置集合
2.TriangleIndices --- 三角形索引集合
3.Normals --------------- 法向量集合
4.TextureCoordinates -------- 纹理坐标集合
2.Material -------------- 也就是3D图形各面的颜色纹理
子类:1.DiffuseMaterial --- 可将二维画笔应用到光线漫射的三维模型
2.EmissiveMaterial ---------- 将Brush应用到三维参与照明计算
3.MaterialGroup ---------- Material合并使用
4.SpecularMaterial -------- 高光形式照明