vault backup: 2023-09-19 12:49:44

This commit is contained in:
2023-09-19 12:49:44 +08:00
parent 08981a0fd6
commit 9d7eb3fbeb
6 changed files with 2 additions and 0 deletions

View 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滤镜) ![](./SNN.png)
- [ ] 使用材质修改颜色的换皮怪是否会影响最后的训练结果?
- [ ] 最终输出哪些东西? 与游戏目录结构相同的文件目录以及对应贴图模型文件、附带一个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,
]
}
]
}

View 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"
启动过程没有报错就可以了。