如何从 Skia 路径几何体中获取网格?
How to obtain mesh from Skia path geometry?
我正在尝试弄清楚如何让 Skia 从路径几何体生成网格。我已经检查了SkPath::dump
、SkPath::writeToMemory
、SkPath::serialize
,但是它们似乎都输出路径内容而不是网格。
注意:我所说的网格是指由路径形状的细分产生的三角形网格,以后可以使用非矢量图形 API 渲染,例如 OpenGL/Vulkan。类似于ID2D1Geometry::Tessellate
输出的东西.
我提取了这部分代码,公开了三角测量接口,然后在libpag中使用了OpenGL渲染。
// SkPath.h
int toAATriangles(float tolerance, const SkRect& clipBounds, std::vector<float>* vertex) const;
// SkPath.cpp
int SkPath::toAATriangles(float tolerance,
const SkRect& clipBounds,
std::vector<float>* vertex) const {
return GrAATriangulator::PathToAATriangles(*this, tolerance, clipBounds, vertex);
}
https://github.com/libpag/pathkit/blob/5bf0bc2acf8dbd74efb5713627de144a8f1ef2b1/include/core/SkPath.h#L898 https://github.com/libpag/pathkit/blob/5bf0bc2acf8dbd74efb5713627de144a8f1ef2b1/src/core/SkPath.cpp#L2453
当我签入 Skia 时,从路径到三角形的源部分在渲染步骤中自动进行,然后再将视频缓冲区推送到 GPU 管道。所以你不需要担心,图书馆会自己照顾。除非您想显式获取细分步骤的输出,否则我怀疑此 API 是否为用户导出。可能它对库用户是隐藏的。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 如何从 Skia 路径几何体中获取网格?
- 循环通过网格获取温度,但不知道如何告诉程序停止循环
- 获取网格中心的屏幕位置
- 从 CGAL 3D 网格生成中获取顶点坐标的 -6.27744e+66:mesh_implicit_sphere示例
- 我无法将数据从数据网格列传输到 C# 中的数组以获取文本框建议收集数据
- Maya API - 从材质获取网格
- CGAL:从表面网格中获取人脸数据
- C++Maya-从帧和子帧获取网格顶点
- 如何将自动递增的主键的数据从 sql 服务器获取到我的数据网格视图
- 获取实例化几何对象的网格
- 如何将用户输入的数据从数据网格视图获取到窗口窗体图
- 获取网格上最接近的点
- CUDA如何获取网格、块、线程大小和并行化非方阵计算