|
||
---|---|---|
Assets | ||
Mods/ifactory.cutting.mod.auto_save_images | ||
MonoBleedingEdge/lib/mono | ||
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年3月12日
- 添加了
IUXWaiting
,现在遇到动态加载时会显示加载的项目
现在可以看到卡住是因为什么原因(例如加载)了
同样可以通过该方式验证许可证,该接口会禁用用户操作,提供动态验证许可证的功能
-
2024年3月11日
- 添加了
印花
笔刷,可以预览贴纸或者打印的效果,例如logo
,文字
或者图案
- 调整命令与功能面板从
右侧中心
移动到右侧顶部
- 在左下角添加了遥测信息,包括
FPS
,Ping
和帧率限制
- 添加了左下角的
logo
- 添加了自动加载Dll,现在
dll
会自动从package.json
所在的目录自动搜索 - 添加了
自动填充
的笔刷,用于裁剪已经切下来的面,将会在准备好时可用(占位符)
2024年3月5日
- 更改动态编译器从
MCS
更改为Roslyn
- 添加了在左下角的
按键提示
- 添加了位于菜单右侧的
辅助功能
- 添加了基于世界空间的辅助3D参考
- 添加了基于屏幕空间的辅助2D参考
- 添加了位于上方的
创意工坊
快速访问按钮 - Mod管理器添加了
卸载
按钮,在列表中右键点击Mod可以卸载 - Mod管理器添加了
重载
按钮,可以快速重载Mod,用于快速调试 - 更改默认Mod图标
2024年1月25日
- 添加了运行时
MonoBleedingEdge
支持,可以在运行时动态编译.cs
- 添加了运行时安装
MonoBleedingEdge
支持 - 添加了基本用户设置
- 添加了初始化载入进度
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依赖
等待更新中...