patch-gg/trompe

多媒体与设计

把灰模关卡通过玩家视角相机生成图像并投影,最终烘成一张反照率贴图。

103
5
TypeScript
Apache-2.0
创建于 2 天前

如果你手上已经有一个灰模关卡,想在正式做材质前先看看它“住进去”是什么样子,Trompe 值得试一次;但它是早期、以浏览器为主的流程,按视角产生真实费用,不是现有贴图工作流的替代品。

解决什么问题

关卡设计师想判断一个灰模像不像一个地方,而不是一堆灰色几何体。现在的做法通常要先手工做材质、处理 UV,或者只能凑合看平涂颜色的截图。Trompe 改的是中间这一步:你用材质语言描述想要的外观,工具在玩家能站的位置放相机,让图像模型画下每个相机看到的内容,再把这些画投影回关卡并烘成一张贴图。产出是一个带贴图的 glTF,可以直接放进引擎。

有什么不同

真正有意思的是相机规划。Trompe 在视线高度采样可行走地面,把玩家能走通的位置连起来(楼梯也算),然后贪心地挑选相机,直到大部分可达表面被覆盖,并安排每个相机与已画区域重叠。屋顶、航拍环和最后的补洞过程各有自己的预算。这些画最终合成一张反照率贴图,由你的引擎而非图像模型打光,所以阴影是真实的。作者在演示里给出的 village-07 运行,用了 128 个视角,在 fal 上花费 4.44 美元、26 分钟,其中 88 个玩家视角、20 个屋顶视角、11 个外围视角和 9 个补洞视角。

代价是控制力。你描述的是材质而不是物体——提示词里点名的东西,比如喷泉,可能会被画到墙上。每次只画一个视角,费用和时间随视角数量线性增长;相机规划才是这个项目的核心,规划不好会表现为灰色斑块,而不是报错。命令行脚本可以只重画保存运行中的指定视角,方便在完整跑一遍之前先试试。

谁值得试

适合:手上有带 UV、Y 轴向上的 .glb 灰模,想快速探索关卡外观,并且接受按生成视角付费的独立开发者或小团队。保存运行再局部重画的方式,也适合低成本评估提示词和模型选择的人。不适合:需要最终生产级贴图、要求逐材质精确控制,或者项目不能使用托管模型服务的人。仓库里有 Village、Courtyard、Hall 三个示例关卡,以及前后对比和阴影对比图,可以先看效果再决定。

使用条件与边界

需要一个带 UV、Y 轴向上的 .glb;浏览器应用负责规划、投影和烘焙,使用你的 GPU,图像生成走 fal,因此需要 API key 和付费账户。快速开始用 npm install、导出 FAL_KEY 和 npm run dev,命令行运行则走 scripts/texture.mjs。目前每个视角是 1024 px;2048 px 也能跑,但完整一次运行会让标签页里保留约 8 GB 的逐视角图像,README 把这列为尚未解决的流式写入问题。面向楼间狭窄缝隙的部分外墙仍会保持灰色。项目采用 Apache-2.0,品牌资产不在许可范围内。

HotRepo 点评

仓库创建于 2026-10-25,并在 2026-10-27 被 HotRepo 的新项目榜(typescript)收录,排名 #20,累计 103 星。这只是单日快照,无法据此判断热度能否持续。建议先看前后对比图和阴影对比图,再用 dry 模式试提示词,最后再决定要不要为完整视角数量付费。

项目源码与说明

本文由 AI 根据项目 README 生成,更新于 2026年10月27日,以项目官方文档为准。