[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81764":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":12,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":26,"discoverSource":27},81764,"forza-painter-geometrize-gpu","zjl88858\u002Fforza-painter-geometrize-gpu","zjl88858","This is a third-party geometrize JSON generation tool for [forza-painter](https:\u002F\u002Fgithub.com\u002Fforza-painter\u002Fforza-painter). Its goal is to improve JSON generation efficiency so that higher-quality liveries can be produced in the same amount of time.",null,"Go",26,6,24,1,0,2,47.74,"MIT License",false,"main",true,[],"2026-06-12 04:01:35","# forza-painter geometrize GPU Version\n\n**Forza is a trademark of Microsoft. This project is unofficial and not affiliated with or endorsed by Microsoft.**\n\n这是一个[forza-painter](https:\u002F\u002Fgithub.com\u002Fforza-painter\u002Fforza-painter)的第三方geometrize JSON生成工具，旨在通过优化JSON生成效率来提高单位时间生成的涂装质量\n\n## 本项目和原始项目的差异\n\n- 通过[OpenCL-SDK](https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FOpenCL-SDK)\u002FVulkan调用GPU进行误差计算和图元栅格化，以大幅度提升生成效率\n- 仅保留Rotated Ellipse渲染，没有其他几何的渲染（forza-painter用不到）\n- 支持PNG格式原图输入alpha通道，保护原有透明像素不会被几何覆盖\n- 支持批量候选并行评估，进一步提升生成效率\n- 每次添加几何之后不再重算整图的误差，而是只在椭圆包围盒且椭圆内部像素计算选取最小delta\n- 整个项目使用Go重构，CGO编译后即可在不同平台直接发布二进制文件，无需runtime\n\n## 编译安装\n\n### 环境需求\n\n```\nGo w\u002F CGO >= v1.24\nOpenCL-SDK >= v3.0.19\nVulkan SDK >= 1.4.350.0\n```\n\n其中 OpenCL-SDK 仅用于构建时链接，Vulkan SDK 仅用于编译 Vulkan 后端和打包 `vulkan-1.dll`，运行时发布包不需要用户再单独安装 Vulkan SDK。\n\n### 编译Windows版本\n\n克隆本项目，下载[OpenCL-SDK](https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FOpenCL-SDK\u002Freleases\u002Ftag\u002Fv2025.07.23)的Windows版本并放到仓库根目录的`OpenCL-SDK`目录下。\n同时安装[Vulkan SDK](https:\u002F\u002Fvulkan.lunarg.com\u002Fsdk\u002Fhome)，默认使用`C:\\VulkanSDK\\1.4.350.0`，也可以通过`VULKAN_SDK`环境变量指定其他版本。\n\n执行 `build.ps1` 后，会自动编译 `.comp` 着色器并生成单文件程序，然后把发布包输出到 `dist`：\n\n- `dist\\forza-painter-geometrize-go.exe`\n- `dist\\vulkan-1.dll`\n- `dist\\shaders\\*.spv`\n\n一次性构建单个二进制并生成发布包：\n\n```PowerShell\npowershell -ExecutionPolicy Bypass -File \"build.ps1\"\n```\n\n如果你想指定输出文件名：\n\n```PowerShell\npowershell -ExecutionPolicy Bypass -File \"build.ps1\" -OutputName \"forza-painter-geometrize-go.exe\"\n```\n\n这个二进制同时包含OpenCL和Vulkan后端，运行时通过`-backend opencl`或`-backend vulkan`切换。发布包已经带上 `vulkan-1.dll` 和 SPIR-V 着色器文件，目标机器通常不需要单独安装 Vulkan SDK。\n\n对于Linux\u002FMacOS，请参考`build.ps1`里的`CGO_CFLAGS`和`CGO_LDFLAGS`配置方式自行调整。\n\n## 开始使用\n\n### 命令行参数\n\n```\nUsage of forza-painter-geometrize-go.exe:\n  -backend string\n        GPU backend: opencl (default) or vulkan (default \"opencl\")\n  -output string\n        Output path prefix (default: input image path)\n  -preview string\n        Optional preview PNG output path\n  -profile string\n        Profile name fragment under .\u002Fsettings\n  -resume string\n        Resume from a saved geometry checkpoint JSON\n  -seed int\n        Optional RNG seed for reproducible output\n  -settings string\n        Path to settings ini file\n```\n\n### 示例\n\n假设你需要导入Forza的图片为C:\\work\\forza\\test.png，期望生成预览图片的路径为C:\\work\\forza\\preview，配置文件在C:\\work\\forza\\settings\\c.ini\n\n则最终执行的命令为\n\n```cmd\nforza-painter-geometrize-go.exe C:\\work\\forza\\test.png -preview \"C:\\work\\forza\\preview\" -settings \"C:\\work\\forza\\settings\\c.ini\"\n```\n\n执行后即可实时输出生成进度，并且在你指定的saveAt的几何数量时输出JSON到图片所在路径（可通过-output设置输出JSON路径）\n\n生成JSON完成且预览图片效果满意后，请使用你原有的forza-painter分支来将它导入到游戏中\n\nFH4\u002FFH5：https:\u002F\u002Fgithub.com\u002Fforza-painter\u002Fforza-painter\u002F\n\nFH6：https:\u002F\u002Fgithub.com\u002Fbvzrays\u002Fforza-painter-fh6\u002F\n\n## 性能测试\n\n我使用了我的工作用平板电脑，即使它只有iGPU，速度也远远高于CPU（使用forza-painter-fh6）\n\n同时，在[DavidHuang](https:\u002F\u002Fgithub.com\u002Fhjc4869)帮助我在他的Ryzen AIMAX395设备上测试时，速度得到指数级提升，证明Xe iGPU的性能远未达到程序瓶颈\n\n```\nayylmao.png - c.ini - i5-12500H+iGPU\ncpu: ~966ms per ellipse\nopencl: ~435ms per ellipse\n\nmaozai.jpg - c.ini - i5-12500H+iGPU\ncpu: ~11175ms per ellipse\nopencl: ~1364ms per ellipse\n\nayylmao.png - c.ini - aimax395+8060S\ncpu: unknown (linux device)\nopencl: ~37ms per ellipse\n\nmaozai.jpg - c.ini - aimax395+8060S\ncpu: unknown (linux device)\nopencl: ~340ms per ellipse\n```\n\n## 鸣谢\n\n原始项目：https:\u002F\u002Fgithub.com\u002Fforza-painter\u002Fforza-painter\n\ngeometrize项目提供的生成思路：https:\u002F\u002Fgithub.com\u002FTw1ddle\u002Fgeometrize\n\n@hjc4869帮助我测试STXHalo平台的性能：https:\u002F\u002Fgithub.com\u002Fhjc4869\n\n## 生成式AI披露\n\n在开发过程中我使用了生成式AI辅助安排计划和编写代码，本文档的非中文版本也由生成式AI自动翻译，以下是本项目开发过程中用到的生成式AI信息：\n\nOpenAI GPT-5.5\n\nOpenAI GPT-5.3 Codex\n\nMoonshot K2.6\n","这是一个为forza-painter设计的第三方geometrize JSON生成工具，通过优化JSON生成效率来提高单位时间内生成的涂装质量。项目利用OpenCL-SDK\u002FVulkan调用GPU进行误差计算和图元栅格化，显著提升了处理速度，并且仅保留了Rotated Ellipse渲染功能，支持PNG格式原图输入alpha通道，以保护透明像素不被几何覆盖。此外，它还支持批量候选并行评估，进一步提高了生成效率。整个项目使用Go语言重构，通过CGO编译后可跨平台直接发布二进制文件，无需额外安装运行时环境。适用于需要高效生成高质量赛车涂装设计的场景。","2026-06-11 04:06:17","CREATED_QUERY"]