Skip to main content

墨水数据

ink model将数字墨水内容保存在笔划数据库(一种数据库)中,其中包含笔划实例的集合 (参见图1)brush-spline 图1:墨水笔划

后续章节提供更多详细信息。

Geometry

墨水笔划的几何图形通过其笔划来表示。

Stroke

笔划定义为以下内容的组合:

  • 一系列数据点形式的Catmull-Rom spline (必选项),包括每点转换数据*(可选项)*
  • 关于如何可视化样条的渲染配置*(可选项)*
  • 对原始输入数据(SensorData实例)的引用,即,路径来源*(可选项)*

说明:

  • 当将一个笔划实例添加到笔划数据库中,便认为它是不可变的。 笔划实例根据第8.2节“Protocol Buffers序列化方案”使用protobuf message Stroke.进行序列化

Catmull-Rom spline在笔划范围内使用下列属性定义:

  • splineTs, splineTf - 样条开始和结束参数
  • spline - 样条数据点序列
  • color - 颜色值序列(每条样条数据点,如果提供的话,该序列的长度必须等于样条点数)
  • perPointTransform - 变换矩阵序列(每条样条数据点,如果提供的话,该序列的长度必须等于样条点数)

笔划可能保留其来源原始输入数据框架的信息。 该关系使用下列属性编码:

  • sensorData - 对SensorData实例的引用,由SensorData数据库提供
  • sensorDataOffset - 原始输入数据框架中的点索引,映射到第一个点Catmull-Rom spline
  • sensorDataMapping - 原始输入数据框架中的索引数组,映射到Catmull-Rom spline的每一个点(如果提供的话,该数组的长度必须等于样条点数)

笔划还可能包含附加信息,通过定义样式属性,描述样条应如何可视化,详细信息请参见下文的“渲染”章节。

Rendering

笔划实例可能包含插值方式以及平台特定渲染引擎渲染方式的信息。 该附加配置使用笔划的样式属性来定义。

Style

样式是PathPointProperties配置、刷子的引用、随机数发生器种子值和渲染方法类型的组合。 设置样式属性,可覆盖特定笔划点属性、颜色分量和/或矩阵变换分量。 通常,应使用带PathPointProperties配置的样式来定义恒定路径分量。

说明: 样式实例根据第8.2节“Protocol Buffers序列化方案”使用protobuf message Style.进行序列化

实例: 带每点颜色数据的笔划以及带α值的样式将导致笔划使用常数α值渲染。

PathPointProperties

简单数据模型,可能包含大小、颜色分量和矩阵变换分量。

说明: PathPointProperties实例根据第8.2节“Protocol Buffers序列化方案”使用protobuf message PathPointProperties.进行序列化

关于笔划如何使用渲染方法类型(renderModeURI)、刷子的引用、渲染和光栅化配置进行渲染的信息集成在样式中。 ink model在刷子数据库(一个包含实例集合的数据库)中保留所有可用的渲染配置。 下列定义适用:

Brush

路径渲染阶段使用的渲染/光栅化配置。根据类分级结构,刷子应被认为是抽象类,具体归类为下列类:

  • VectorBrush - 允许根据大小和之后的合并结果,对每个插值点应用特定的多边形,将插值Catmull-Rom样条渲染为矢量样条的一种配置。
  • RasterBrush - 允许根据其大小,对每个插值点应用特定的子画面,将插值Catmull-Rom样条渲染为光栅图像。

说明:

VectorBrush实例根据第8.2节“Protocol Buffers序列化方案”使用protobuf message VectorBrush.进行序列化 RasterBrush实例根据第8.2节“Protocol Buffers序列化方案”使用protobuf message RasterBrush 进行序列化。 在重复消息域Brushes.vectorBrushes和Brushes.rasterBrushes中,刷子数据库使用protobuf message Brushes序列化其下层刷子实例集。