|
||
---|---|---|
Assets | ||
ProjectSettings | ||
ReadMe | ||
UIElementsSchema | ||
.gitignore | ||
README.md |
README.md
iFactory 切削应用仿真
通过直接在模型上绘制,对平面甚至任意表面进行切削仿真
支持多种笔刷,可通过Mod自定义笔刷
支持多种模型,可通过Mod自定义模型
原生支持Mod,可以实现任何功能,例如:
- 接入真实切削机
- 模拟切削过程
- 导出切削命令数据
操作方式
- 按住
鼠标中键
进行视角旋转 - 按住
鼠标中键
和Shift
进行视角移动 - 滑动
鼠标滚轮
进行视角缩放 - 选择笔刷后按住
鼠标左键
进行绘制,不按下则为预览 几乎所有操作都为命令,可在用户界面右侧撤销和重做命令
支持线上创意工坊,用于可通过Web浏览Mod并订阅,该应用会自动下载并安装Mod
类库:iFactory-Cutting
仅Windows平台应用支持
- Windows
- Android
- IOS (花钱买IOS开发者才行)
- Linux(我想没有支持的需要)
当前需求
上面提出了一个需求:我们需要一个仿真切削应用,用于快速模拟并展示切削结果和过程
不仅需要切削,还需要对成品材料进行反推,即通过切削结果反推切削过程
很明显,这个问题一开始涉及到了各种几何和计算机图形的问题,再经过各种尝试后,我们得到了相对最佳的解决方案:
基于自定义着色器Alpha Clip
对绘制部分进行裁剪(指创建遮罩)实现模拟切削的效果
通过对模型材质直接绘制,计算出绘制的点,并通过Alpha Clip
着色器对模型进行裁剪,实现切削效果
不仅仅需要出厂自带的模型和笔刷,我们还需要支持自定义笔刷和自定义模型,这就是Mod支持
我们的客户可能会有各种各样的需求
- 当客户无法自行实现时
- 或我们有新想法时
- 或有用户想分享创意时
客户就需要创建工单,我们对工单进行处理,并发布到线上,这就是创意工坊
为什么需要Mod
和创意工坊
?
你也不想每次有更新都要重新下载安装吧,而且我们也不想每次都要重新发布吧
你也不想每次都下几个G的资源吧,而且我们也不想每个小更改都需要打包吧
当前问题
编译后,加载不了Mod,没有物料板
目前编译后未收到报错,功能也无法使用,正在解决中
在平面上绘制的一个圆,中间的部分不会被裁剪
这不会涉及到物理,这相对来说只是画画
所以会出现一些与物理不符的情况,因为这是一个切削仿真,而不是物理仿真
为什么?
因为本质上就是画了一个圆环而不是圆圈,要圆圈得用点笔刷
绘制一个半径足够的圆
实时洪水填充和扫描线填充相对于至少1024 x 1024
px的图像来说性能消耗巨高
如何解决?
使用Void笔刷
绘制圆,将应该裁剪的部分手动填充,Void笔刷
不会被记录到导出的切削数据中
为什么还没实现反推?
这个需要AI
,需要GPT
,需要GPT4
,需要DALL·E
这个要💰,很多的💰,一个月25$的哪种
运行配置
CPU: Intel 10400F
及以上
GPU: GTX1050
及以上
RAM: 16G DDR4
及以上
剩余储存空间: 2GB
或以上
操作系统: 仅限于64位Windows 10
,Windows 11
或以上
更新日志
2024年1月23日 提交0.0.3版本至Gitea
,并更新版本号为Eclair
- 添加了
3
款内置笔刷 - 添加了
2
款内置模型 - 添加了
运行时检查器
,可以查看和编辑笔刷或其他数据的值 - 添加了文件系统,可以
保存
,加载
和另存为
- 添加了相片模式,可以
隐藏UI
,渲染功能正在进行中 - 添加了命令模式,支持
撤销
和重做
到指定步骤 - 添加了导出数据,直接
复制到剪贴板
,对于太长的数据不会显示在用户界面上 - 添加了Mod管理,可以
动态编译脚本
和加载笔刷
或模型等资产 - 增强了Mod管理,可以
动态安装
,启用
与禁用
Mod,支持卸载资源,但卸载插件类Mod
出于于C#本身的AppDomain
限制,暂时无法实现
2023年12月3日及以前
尝试基于Godot
创建基于CSG
的切削应用,但是
- 性能非常拉,10G笔刷就能卡爆,移动端直接一个步骤卡死
- 不支持热更新和资源管理,一个发布就是几个G,一个小补丁都需要重新下载
- 非常复杂的图形API,需要自己实现各种各样的图形API
- 非常模糊的文档,例如对模型表面进行绘制需要自己实现太多的底层
- pia,突然就卡死了
- pia,突然又丢失绑定了
- 甚至连基本的
UI动态缩放
都没有,适配1080P就是1080P,适配2160P就是2160P,模糊得很 - 没有
UI Toolkit
这种现成的UI库,自带的UI库是上个世纪的产物 - 一个小改动都需要重新绑定,几乎等于重新配置
Rig
- too more
issue
andbug
下载地址
Unity版 下载
功能清单
- 命令模式
- 显示步骤
- 撤销
- 重做
- 多笔刷
- 空笔刷,用于查看模型
- 点笔刷(圆),用于绘制点或自由绘制
- 线笔刷,用于绘制线段,支持snap点以实现grid
- 文字笔刷,用于绘制文字
- 程序点笔刷,可进行采样和手动输入点的坐标和半径
- 程序线笔刷,手动属于半径,线段组进行绘制
- 所有笔刷可预览
- 运行时检查器
- 查看数据
- 编辑数据
- 支持多种数据类型
- int
- float
- float3
- 支持动态调用
MethodInfo
- Mod支持
- 启动时从
Mods
文件夹加载 - 外部加载
- 启用与禁用
- 依赖管理
- 启动时从
- 创意工坊
- 上传Mod
- 下载Mod
- 订阅Mod
- 自动更新
Bug清单
- 绘制圆环后,中间的部分不会被裁剪
- 通过各种方式更改Mod后可能会阻塞Mod线程
- 编译后功能丢失,例如无物料板和无法加载Mod
安装方式与相关依赖
直接解压下载好的zip
并运行iFactory-Cutting.exe
即可
如何自行编译
外部依赖库挺多的,功能可以用Mod添加,不建议直接更改并编译源码
如何创建Mod
参考类库:iFactory-Cutting.Mod.Examples
Api文档:等待创建gitbook
脚本类Mod
- 创建一个
C#
类库项目 - 引用BITKit
- 引用iFactory-Cutting
- 创建一个类并继承
MyMod
- 根据基类的注释,重写对应的方法
- 在软件中点击屏幕左上角的
Mod
按钮,选择加载
,选择.cs
文件并加载
资源类Mod
这个需要用到编辑器,需要了解YooAsset
的原理
- 点击最上面工具栏菜单的
YooAsset/AssetBundle Collector
- 在左侧创建新的
Package
,然后收集需要的资源 - 这里面的步骤需要自行了解
YooAsset
的收集与打包 - 在打包完成后,同样的,创建一个
脚本类Mod
- 重写
PackageName
方法,值为Package
的名字 - 在软件中点击屏幕左上角的
Mod
按钮,选择加载
,选择.cs
文件并加载
解决Mod依赖
等待更新中...