vault backup: 2023-09-19 12:49:44
This commit is contained in:
119
02-Note/DAWA/AI/AI资产生成管线思路.md
Normal file
119
02-Note/DAWA/AI/AI资产生成管线思路.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# 其他软件的思路
|
||||
## MeshY
|
||||
1. 模型+三视图+关键字&标签 => 贴图贴上模型,并且生成对应的贴图
|
||||
1. LJJ:可行性与实现意义并不大,因为需要一个相对准确的三视图。
|
||||
2. DCC软件已经有一个这样的工具,速度差不多,优势并不大 https://www.youtube.com/watch?v=Gh_LzoliD6A
|
||||
2. 文字&关键字&标签 => 模型
|
||||
1. 意义比较大,而且已经有插件做到了这一点。
|
||||
1. https://youtu.be/z9XjdcgP8TA?si=eEFS9AZ_2C0yud-O&t=206
|
||||
2. AI生成点云数据
|
||||
1. https://www.youtube.com/watch?v=5uF5-iIs-yY&t=113s
|
||||
2. https://www.youtube.com/watch?v=OEfV3RRpmRE
|
||||
|
||||
## 绘画软件SubstancePatiner
|
||||
个人认为最好是
|
||||
- Substance Painter 通过关键字生成笔刷Mask贴图,或者材质笔刷。
|
||||
- 模仿Substance Painter 对模型的某个材质或者某个区域添加关键字。
|
||||
|
||||
在此基础上可以通过给指定区域(绘制Mask)添加标签以及细致标签可以达到更加精确的效果。但我们还需要选择开发基础软件,我推荐Blender与UE:
|
||||
|
||||
# 宿主软件选择&开发思路&开发计划
|
||||
从开发效率方面考虑建议,先在软件现成功能的基础上进行开发,再原型确定之后再分别移植到其他的软件上。这里推荐UnrealEngine与Blender。同时Blender的SendToUnrealEngine插件相比其他DCC Send To UE插件,功能更好。所以建议如下:
|
||||
- 模仿普罗米修斯建立一个资产管理工具&数据及控制中心(下文简称MetaCenter)
|
||||
- 建议使用Electron进行开发(重界面轻功能推荐使用Electron开发速度快,前后端人员可以上手;其他还是有React Native等)
|
||||
- 其优势在于有良好的人机学习环境,用户在整理资产的过程就是AI学习的过程。同时用户社区分享预设也可以起到一个评分系统的作用。
|
||||
- 同时也可以作为今后给资产打Tag的基础工具。
|
||||
- 建议让杨萱羽花时间去摸索一下,总结功能以及工作流程。
|
||||
- 规避资产库版权问题[[#资产库问题]]
|
||||
- Blender基础上开发AI辅助绘制贴图插件(需要知道Blender的贴图绘制距离SP还差哪些功能)
|
||||
- 推荐的参考对象是[dDo](https://www.bilibili.com/video/BV18K4y1b7qe/?spm_id_from=333.337.search-card.all.click&vd_source=d47c0bb42f9c72fd7d74562185cee290)(以多种特征贴图来生成细节)以及SubstancePainter的AI功能。
|
||||
- 关键字生成笔刷Mask贴图,或者材质笔刷。
|
||||
- 通过对模型的某个材质或者某个区域添加关键字的方式来生成区域贴图。
|
||||
- 建议找一个对Blender以及Python都很了解的人去评估一下。
|
||||
- UE基础上开发场景摆放&语义控制&连接MetaCenter
|
||||
- 具体参考polygonflow.io以及普罗米修斯
|
||||
- 图片生成点云功能方便设计以及搭建场景(影视向)
|
||||
- 第二期开发可以考虑VR摆场景
|
||||
|
||||
## 插件承载载体推荐使用Blender
|
||||
Blender具有一个比较完善的插件市场
|
||||
1. Blender具有比较完整的绘画以及3D工具
|
||||
1. Convert Ai generated 2D images to 3D models for use in Blender and Gravity Sketch. https://www.youtube.com/watch?v=Wf-OmHyFduo
|
||||
|
||||
### 开发思路
|
||||
假设一个物体(剑)是由很多个小物体组成的,我们要给房子绘制贴图。这里我们需要考虑提供哪些信息给AI,并且考虑如何做加法/减法来达到最终的目的(调整以下行为的顺序):
|
||||
- 给AI一个3D模型
|
||||
- 参考dDo给剑不同材质、颜色区域指定不同的纯色。(AI无法判断整体,但对细致的区域学习较快)
|
||||
- 给每个纯色区域一个或者多个关键字
|
||||
- 给纯色区域的过渡区域一个关键词
|
||||
- 以辅助绘制的方式,在模型上绘制BaseColor或者NormalMap
|
||||
- 在模型上绘制 重新计算区域让AI重新生成
|
||||
- 给AI参考图(3视图 =>大致印象参考图)
|
||||
|
||||
优势在于:
|
||||
1. 有良好的人机学习环境。
|
||||
2. 递进式的创建工作。
|
||||
|
||||
### 风格化贴图
|
||||
对大规模卡通&风格化资产打标签,来让AI学习。 资产来源可以是Taobao(剑网三、龙之谷等)以及游戏提取资产。
|
||||
## UE插件方案参考
|
||||
***普罗米修斯的方案很好实现了用户与AI模型的交互,在用户的使用就可以不断训练AI。***
|
||||
|
||||
1. 根据照片&关键词快速从 Quixel或者其他免费资产库中找到资产,并且导入UE中(甚至摆放好)
|
||||
1. www.polygonflow.io 【【AI教程】地编又要降工资了?UE5地编全新AI辅助工具问世!】 【精准空降到 01:06】 https://www.bilibili.com/video/BV1VN411p7FF/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=66
|
||||
2. 普罗米修斯
|
||||
1. Meta Data(外部工具编辑资产的Meta数据)
|
||||
1. 【普罗米修斯AI插件在虚幻引擎的基础教程Artificial Intelligence That Builds Virtual Worlds】 【精准空降到 06:15】 https://www.bilibili.com/video/BV1gM411K7Up/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=375
|
||||
2. 【普罗米修斯AI插件在虚幻引擎的基础教程Artificial Intelligence That Builds Virtual Worlds】 【精准空降到 10:34】 https://www.bilibili.com/video/BV1gM411K7Up/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=634
|
||||
3. https://youtu.be/hA0MsGWvmzs?si=3WK8T4WfNqj71rRw&t=1386
|
||||
2. 资源添加
|
||||
1. https://youtu.be/z9XjdcgP8TA?si=2oIHdtVrZnF8P9bx&t=101
|
||||
3. 关键词语生成资产摆放
|
||||
1. https://youtu.be/z9XjdcgP8TA?si=eEFS9AZ_2C0yud-O&t=206
|
||||
4. 识别本地资产并且创建标签
|
||||
1. https://youtu.be/hA0MsGWvmzs?si=WxHYO4H9bSeDQ4lN&t=546
|
||||
5. 资产智能摆放
|
||||
1. https://youtu.be/hA0MsGWvmzs?si=oLZYS8JO4wGV-Xzz&t=716
|
||||
6. 100%程序化流程(代表所有操作都是可逆的或者是节点化的)
|
||||
1. https://youtu.be/hA0MsGWvmzs?si=j2ISS0gL6LKzeJfE&t=1067
|
||||
7. 外部程序 <==> UE 相互拖拽
|
||||
1. https://youtu.be/hA0MsGWvmzs?si=Irn_TFy0Mri2furg&t=1669
|
||||
8. 社区互动
|
||||
1. https://youtu.be/hA0MsGWvmzs?si=m5iQ_tAxd9UOu667&t=1701
|
||||
|
||||
# 问题&解答
|
||||
## 资产库问题
|
||||
普罗米修斯的方案是组织用户自己的资产库;polygonflow是UE插件,连接到MegaScane Bridge可以规避版权问题。
|
||||
|
||||
## 其他资产来源&应用
|
||||
1. taobao可以购买龙之谷等以前游戏的资产。
|
||||
2. SubstancePainter AI笔刷 https://www.artstation.com/artwork/038Qz5
|
||||
3. https://substance3d.adobe.com/magazine/ai-power-2d-painting-a-massive-boost-for-substance-alchemist/
|
||||
4. Stylized Environment Texturing in Mixer:https://www.youtube.com/watch?v=kg4YFS6b0ek
|
||||
|
||||
---
|
||||
# 其他待讨论的问题
|
||||
- [ ] 目标是什么?什么应用场景?使用AI生产模型以及贴图?大概需要多少样本?(样本可能不够)
|
||||
- [ ] 是否以最终效果作为判断依据:以蓝色协议这种二次元游戏来说,他定制了渲染管线,贴图除了颜色贴图,还有一些控制渲染变量用的贴图、以及一些不方便导出的渲染变量。环境物体主要的颜色贴图、法线贴图、Roughness、Metallic。**角色贴图**会有一些卡通效果控制类的,那些贴图意义不大。(环境物体可能还会做一次SNN滤镜) 
|
||||
- [ ] 使用材质修改颜色的换皮怪是否会影响最后的训练结果?
|
||||
- [ ] 最终输出哪些东西? 与游戏目录结构相同的文件目录以及对应贴图模型文件、附带一个Model=>Textures JSON? 场景StaticMesh,是否包含骨骼模型?
|
||||
- [ ] 是否需要Motion?
|
||||
|
||||
个人认为直接上手二次元比较难,还是倾向于PBR或是偏向pbr的卡通渲染&风格化渲染。
|
||||
1. DDO绘制流程:https://www.bilibili.com/video/BV18K4y1b7qe/?spm_id_from=333.337.search-card.all.click&vd_source=d47c0bb42f9c72fd7d74562185cee290
|
||||
2. PBR资产库比较多,一些AI场景工具,直接根据图片来查找Quixel或者其他资产库的资产,并且下载到项目里。
|
||||
|
||||
# 模型贴图对应方式
|
||||
Model => MaterialInstance => Textures
|
||||
{
|
||||
[
|
||||
{
|
||||
Model:/Model/1.fbx,
|
||||
Textures:[
|
||||
/Model/Textures/1.tga,
|
||||
/Model/Textures/2.tga,
|
||||
/Model/Textures/3.tga,
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
107
02-Note/DAWA/AI/协助构建ue-runtime镜像请求.md
Normal file
107
02-Note/DAWA/AI/协助构建ue-runtime镜像请求.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# 问题
|
||||
使用Ubantu官方安装的系统编译的v8环境放入Puerts插件后可以正常运行;使用 adamrehn/ue4-runtime:22.04-vulkan-x11镜像下载编译环境后,编译v8环境并且放入puerts插件,运行后会报错。初步认为是编译环境有问题所致。可能是因为参与编译的libatomic.so.1库是32位的。
|
||||
![[Puerts启动错误.png]]
|
||||
# 需求
|
||||
1. 参考 adamrehn/ue4-runtime:22.04-vulkan-x11,重新构建容器
|
||||
2. 安装下列环境以进行Puerts的V8环境编译
|
||||
```bash
|
||||
sudo apt-get install clang
|
||||
sudo apt-get install libc++-dev
|
||||
sudo apt-get install libc++abi-dev
|
||||
sudo apt-get install make
|
||||
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
|
||||
sudo apt-get install -y nodejs
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
```bash
|
||||
# 下载编译脚本,脚本需要手动修改一下
|
||||
cd /home/user/Projects/
|
||||
git clone https://github.com/puerts/backend-nodejs.git
|
||||
cd /home/user/Projects/backend-nodejs/node-script
|
||||
npm install -s commander
|
||||
/home/user/Projects/backend-nodejs/linux.sh
|
||||
```
|
||||
**修改过的编译脚本**:
|
||||
```sh
|
||||
WORKSPACE=/home/user/Projects/backend-nodejs
|
||||
HOMEPATH=~
|
||||
VERSION=$1
|
||||
|
||||
cd $HOMEPATH
|
||||
# git clone https://github.com/nodejs/node.git
|
||||
|
||||
cd node
|
||||
# git fetch origin v$VERSION
|
||||
# git checkout v$VERSION
|
||||
|
||||
echo "=====[Patching Node.js]====="
|
||||
node $WORKSPACE/node-script/do-gitpatch.js -p $WORKSPACE/patchs/lib_uv_add_on_watcher_queue_updated_v16.16.0.patch
|
||||
node $WORKSPACE/node-script/add_arraybuffer_new_without_stl.js deps/v8
|
||||
node $WORKSPACE/node-script/make_v8_inspector_export.js
|
||||
|
||||
echo "=====[Building Node.js]====="
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
export CXXFLAGS="-stdlib=libc++"
|
||||
export LDFLAGS="-stdlib=libc++"
|
||||
|
||||
./configure --shared
|
||||
make -j8
|
||||
|
||||
# 这后面可以的可以不要,执行需要libnode.so.93 libnode.so
|
||||
mkdir -p ../puerts-node/nodejs/include
|
||||
mkdir -p ../puerts-node/nodejs/deps/uv/include
|
||||
mkdir -p ../puerts-node/nodejs/deps/v8/include
|
||||
|
||||
cp src/node.h ../puerts-node/nodejs/include
|
||||
cp src/node_version.h ../puerts-node/nodejs/include
|
||||
cp -r deps/uv/include ../puerts-node/nodejs/deps/uv
|
||||
cp -r deps/v8/include ../puerts-node/nodejs/deps/v8
|
||||
|
||||
mkdir -p ../puerts-node/nodejs/lib/Linux/
|
||||
cp out/Release/libnode.so.* ../puerts-node/nodejs/lib/Linux/
|
||||
cd ../puerts-node/nodejs/lib/Linux/
|
||||
ln -s libnode.so.93 libnode.so
|
||||
cd -
|
||||
```
|
||||
|
||||
## 原容器存在问题
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11存在的问题:
|
||||
1. 缺少相关编译环境。
|
||||
2. 没有设置环境变量不知道root、ue4账号密码。
|
||||
3. 参与编译的libatomic.so.1库是32位的。
|
||||
|
||||
经过测试使用官方镜像安装的Ubantu可以正常进行编译(UE项目以及Puerts v8环境),并且可以正常打开项目;原容器可以编译UE项目,但因为编译的Puerts v8环境有一些问题导致无法运行Puerts。
|
||||
|
||||
## 启动命令参考
|
||||
```bash
|
||||
运行UE用:
|
||||
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
|
||||
编译v8环境用:
|
||||
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
-v /home/user/node:/home/user/node \
|
||||
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
```
|
||||
|
||||
# UE项目测试方法
|
||||
将编译出来的libnode.so.93 libnode.so放入/home/user/Projects/AIMotionRender/Plugins/Puerts/ThirdParty/nodejs_16/lib/Linux 目录下,之后就可以启动容器
|
||||
|
||||
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh /project/AIMotionRender.uproject -game -engine -rocket -progress -VSCode
|
||||
|
||||
编译命令:
|
||||
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
||||
|
||||
启动命令:
|
||||
/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject"
|
||||
|
||||
启动过程没有报错就可以了。
|
Reference in New Issue
Block a user