改用相机网格生成笔画纹理

统一笔画配置与彩色 patch 的投影网格,替换旧脚本及产物。
已验证 Blender 导出、16 项相关测试、文档与 lint 门禁。
This commit is contained in:
ykcheungab
2026-10-06 10:51:56 +08:00
parent 35da84ef60
commit e8d231ec39
25 changed files with 405507 additions and 94905 deletions
@@ -1,15 +1,7 @@
{
"angle_span_deg": 180.0,
"candidate_count": 12,
"clearance_mm": 0.03,
"coverage_cap": 0.45,
"jitter_fraction": 0.66,
"length_ratio": 2.4,
"min_cell_pixels": 20,
"neighbourhood_mm": 0.5,
"length_ratio": 0.84,
"orientation_mode": "random",
"proposals": 100000,
"seed": 7,
"target_coverage": 0.5,
"width_fraction": 0.5,
"width_max_mm": 0.28,
"width_min_mm": 0.2
"width_ratio": 0.42
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 726 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 3.7 MiB

@@ -1,94 +1,64 @@
{
"schema": "orisys-sensor-design/stroke-texture-manifest-v1",
"schema": "orisys-sensor-design/stroke-texture-manifest-v2",
"revision_dir": "D:\\orisys_ws\\orisys-sensor-design\\sensors\\finger-xynova\\r01",
"source_job": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\_texture_views_job.json",
"sha256": "7259df462de85a86ec575a6296592bf78c008d44ae531d7efd233118686b194f"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\_texture_job.json",
"sha256": "1d9d9bf605cc95b1f8375438e944e1ff4f2f8553d1793784de50a6f6ef64de77"
},
"source_blend": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\sensors\\finger-xynova\\r01\\source\\geometry.blend",
"sha256": "2a48957a88c760775582e4dc4780d98bf9fc94348918cff8efd82e840217530c"
},
"settings": {
"mode": "camera_compensated_width",
"seed": 7,
"camera_width_fraction": 0.5,
"mode": "camera_grid_capsules",
"resolved": {
"seed": 7,
"min_cell_pixels": 20,
"jitter_fraction": 0.66,
"angle_span_deg": 180.0,
"width_fraction": 0.5,
"width_min_mm": 0.2,
"width_max_mm": 0.28,
"length_ratio": 2.4,
"coverage_cap": 0.45,
"neighbourhood_mm": 0.5,
"clearance_mm": 0.03,
"candidate_count": 12,
"target_coverage": 0.5
"width_ratio": 0.42,
"length_ratio": 0.84,
"orientation_mode": "random",
"proposals": 100000
},
"design_yaml": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\sensors\\finger-xynova\\r01\\design.yaml",
"sha256": "f6d2536f66256ff4c0a6b210d9dbab7b1c0c9d263149171f4da3298a22c4166c"
"sha256": "711ad69649ef0d771e8f68295bea129af0f13c0e003d9aaf361e25ea5ab8c34e"
},
"params": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\_stroke_pattern_params.json",
"sha256": "35498f3b08aa93f7e89a7f27080ec0655997b36f69fd8da30002e5d34df6083f"
"sha256": "823639aa72706b1d47d0c531e704cb99f36517e87fcad7de707417cb474e6993"
}
},
"outputs": [
{
"id": "uv_1",
"sources": {
"png": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\patch_texture_uv_1.png",
"sha256": "719e675395b158e30fc6310b7ba17c573d6347c0b1234c788876396a7cce3c29"
},
"svg": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\patch_texture_uv_1.svg",
"sha256": "98319674337cc7e9a4cbc547d0da1fc79b282067d0fd1471c5371c59d4e50532"
}
},
"id": "produce",
"artifacts": {
"png": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_uv_1.png",
"sha256": "a00cee4113337fae6ccddd9213b832bd5a1756c78c7e23bf0caabfeccda680e6"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_produce.png",
"sha256": "a748d1963825310458ab3690a75986f75bffcfe2aab1c936b93714a38408437b"
},
"svg": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_uv_1.svg",
"sha256": "d880e71c55daa842757f5a558227c715b45c41d9e980ec4d056749eb21cd3d9f"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_produce.svg",
"sha256": "b53b5c99eeac07399fac2167b63e938df4ee36bd9029d70faaca9ef945a09880"
},
"pdf": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_uv_1.pdf",
"sha256": "6cc5910f86b687a0334829b23decf3fd5d9166378ab05e3a93cbaca24278c92c"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_produce.pdf",
"sha256": "b8978a4f893f475124434e42fd56739ef0807bc9769f48993883303f9395c272"
}
}
},
{
"id": "uv_2",
"sources": {
"png": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\patch_texture_uv_2.png",
"sha256": "8b1a7dc6e24820c90e604483fe515e93e9a8daddcb51e604e5d14ea47eed524a"
},
"svg": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\patch_texture_uv_2.svg",
"sha256": "57f1cc3dab59fd19ad99a2bd19fe1233414b2bcdbcf8e25c0698da09a61384b3"
}
},
"id": "compute",
"artifacts": {
"png": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_uv_2.png",
"sha256": "ff75bba350475e4ae01cc841700e16b601e5a6fd06708597536ceb7bf8700ae6"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_compute.png",
"sha256": "4f761f166328f2c9dab9469f33f7509c9dd6238df3b8a4bdac48e2aa52dc362b"
},
"svg": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_uv_2.svg",
"sha256": "511b324431b0d95dc6bbf66709f3221e33dfc3a34e6416f3d24c490e3c79d1cc"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_compute.svg",
"sha256": "192c13019257579a7e3bca3ddcbef16ef59cfc1a5d5c19ff3a8fa26c3b8ca041"
},
"pdf": {
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_uv_2.pdf",
"sha256": "b1123696d80a03b2f257f6ad397d96a1b2d9416039832df33e9d7b40a455528e"
"path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_compute.pdf",
"sha256": "2fa788f4e3da05bbef4a267fafd96beb730727183b7bf4ed95f2b6c569bfba09"
}
}
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 3.7 MiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 920 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 705 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 934 KiB