GitHub – manthrax/monkeypaint:一个用于在 THREEJS 中在网格上绘画的应用程序,具有 glb 导出功能。
| Name | ||
|---|---|---|
|
|
last year
|
|
|
|
2 years ago
|
|
|
|
last year
|
|
|
|
last year
|
|
|
|
10 months ago
|
|
|
|
last year
|
|
|
|
last year
|
|
|
|
2 years ago
|
|
|
|
last year
|
|
|
|
last year
|
|
|
|
2 years ago
|
|
|
|
2 years ago
|
|
|
|
2 years ago
|
|
|
|
last year
|
|
|
|
2 years ago
|
|
存储库文件导航
一个用于在 THREEJS 中在网格上绘画的应用程序,具有 glb 导出功能。
在这里试试!: https://manthrax.github.io/monkeypaint/index.html?1
这通过 GPU 和渲染目标实现了 3D 网格体绘制。
使用 threejs r160 进行测试。对于某些旧版本,请将ScenePainter.js中的所有“vMapUv”替换为用“vUv”
算法: 首先,将 UV 贴图渲染为白色的 3D 模型到 renderTarget 上,以形成一个二进制蒙版,其像素被 UVmap 覆盖
然后,UV贴图将再次渲染,并绑定模型纹理。3D 顶点坐标也可用,因为 UV渲染行为使用着色器注入注入到材质中。
渲染每个 UV 三角形时..顶点坐标被转换为世界空间,并与世界空间中的画笔位置进行比较 (派生自光标光线投射) 这将计算影响UV贴图此纹素的笔刷的强度0到1。 画笔颜色与现有纹素颜色和输出混合。
接下来,在 UV 蒙版纹理绑定的情况下运行“膨胀”着色器。对于不在 UV 三角形下方的每个纹素(即 UV 岛的边缘) 找到 UV 岛中最近的纹素(在 16 像素左右)中,并输出该像素颜色。 此步骤消除了由于纹理过滤而产生的大部分接缝, 通过为岛屿提供 16 像素左右的填充,以便过滤以访问岛屿边界。
出口: 包含绘制纹理的中间渲染目标,将转换为画布纹理,然后运行 二进制 GLTF 导出器作为二进制 GLTF 文件 (.glb)
保存/加载/重置: 这些有点卡顿……当您点击保存时,seesion 中的所有画笔笔触都会保存到 localstorage。 因此,如果您重新加载页面,然后点击加载,它将像您之前一样重新绘制模型。 重置将清除当前的 localStorage 保存并重新加载页面。
待办事项: 实现自定义画笔形状。现在它只是一个大小可变的球体……并且不会沿光线命中法线定向。 允许纹理冲压作为此内容的扩展。
允许为粗糙度贴图、金属度贴图、不透明度贴图和法线贴图指定不同的纹理输出。
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 一个用于在 THREEJS 中在网格上绘画的应用程序,具有 glb 导出功能。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办
