2D与3D图形及文档文本处理
1. 2D图形与位图效果
在2D图形处理中,特定的标记可以创建有趣的“镂空”效果。不过使用该技术时,图像必须包含Alpha通道,而不仅仅是黑白像素。OpacityMask是修改合成引擎生成像素的功能示例之一。UIElement上的BitmapEffect属性通常支持对视觉输出进行逐像素操作,这些操作被称为位图效果,因为它们作用于合成引擎生成的位图(实际像素)。部分效果可借助现代显卡的像素着色器在图形硬件中运行,但目前所有BitmapEffect元素都会强制受其影响的内容以软件方式渲染,这可能会显著影响性能,因此需谨慎使用。
不同的位图效果适用于不同的内容,例如DropShadowBitmapEffect适合矢量内容,而EmbossBitmapEffect则用于处理图像。
2. 3D图形基础概念
2.1 四个基本概念
在3D图形中,有四个基本概念:模型、材质、灯光和相机。
-模型:所有3D对象最终都可分解为一组三角形,这些三角形组成的集合称为网格(mesh)。在WPF中,创建模型通常使用GeometryModel3D和MeshGeometry3D。例如,创建一个简单的三角形模型的代码如下:
MeshGeometry3D CreateTriangle() { MeshGeometry3D mesh = new MeshGeometry3D(); mesh.Positions.Add(new Point3D(0, 0, 0)); mesh.Positio