132 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# New
## Gameplay
## MultiDraw
实现了PC与移动端平台的Backface描边与类多Pass效果。
其中描边支持宽度对FOV、深度的自适应。
## AIGC
### AnimationRetargeting
公司开发的AI生成动画的平台通过用户输入的文字描述来给指定的角色模型生成动画。我在该项目中实现了高效的动画重定向。
我实现了3种方案
1. 使用Blender插件通过cmd调用的方式进行重定向。 缺点:转换速度比较慢,会影响用户使用体验。
2. 在服务端部署UE并将其服务化以此提供动画重定向服务。缺点部署UE服务Editor需要服务器带有GPU因为服务器的费用会比较高。
3. 移植UE5骨骼链重定向逻辑到qt中实现跨平台的重定向程序。优点效率高、准确性高。200ms左右主要消耗在读取与生成FBX文件上。
QRetargetService实现了以下功能
1. 实现UE5骨骼链重定向算法。
2. 对fbx、bvh动画进行重定向并且输出fbx文件。
3. 支持字符流输入动画数据,并进行重定向。
4. 支持NPY动画数据输入。
5. 支持FBXStream读取/写入数据。
6. 重定向Pose对齐。
### UE Docker部署
跑通了UE Docker部署流程。
### AIMotionRender
模仿2022年初的某个AI视频APP。AI端负责识别用户上传的视频中的动作数据与其他相关信息调用AIMotionRender来生成短片。除了角色其他的场景、镜头都是预制。
AIMotionRender
1. 将接受到的动画数据重定向并且应用到AI端指定的角色中。
2. 将该角色放入到指定的场景中并且进行渲染压片并且返回给APP后端。
### AIFacialRender
AI端识别用户输入的台词生成对应的表情、口型、音频文件调用AIFacialRender来生成短片。
### AIMotionAssetTaker
通过调用AIGC API获取动画数据之后再在本地进行重定向后生成UE动画资产以此提高动画制作的效率。
### AIVirtualIdol
导播台使用了Electron控制逻辑写在Puerts与LogicDriver状态机种。通过导播台主动连接来发送控制命令。
### 4DGaussian
根据3DGaussian原理使用Niagara + 扩展节点在UE5中实现的4DGaussian效果。之后因为项目被砍后续没有拿到质量合格的4DGaussian数据至使开发停止。
TODO
1. 3DGaussian LOD。虚拟贴图
2. 通过乒乓缓存以此减少显存占用。
# OLD
```markmap {scale=1.1}
## 美术流程
### Ue4中的场景物体融合方式与优化
1. World aligned texturing 世界坐标映射贴图
2. Pixel depth offset 像素深度偏移
3. Distance field mesh blending 距离场模型融合
4. Runtime virtual texturing 实时虚拟贴图
### Layered Material
1. 尝试外包一个角色并让外包以Material Mask的方式使用Substance Painter完成贴图。最后走完EPIC的Layered Material流程。
### UE4头发方案研究
1. 学习Ornatrix for Maya插件并且尝试制作头发。
2. 学习Ornatrix制作面片头发方案并且制作出成品。
3. 走通UE4 Niagara Hair流程。
### UE4物理灯光流程
1. 如何使用物理灯光系统
2. 流程包括:初始化场景(关闭若干后处理效果,并且固定曝光)=》场景检查(贴图饱和度与亮度)=》按照当前环境对应的现实状况设置曝光度与天光HDRI因为每个HDRI的亮度范围不一样还可以在环境球材质中调整=》主要自然光源完成后烘焙二阶球谐GI=》按照场景发光物体进行布光=》烘焙阴影并检查是否有错误阴影=》逐个开启后处理效果并检查(反射=》AO=》
3. 了解UE4静态光照与动态光照所有相关的功能与用法。
### 动画蓝图
1. 学习物理模拟动画节点
2. 学习AdvancedLocomotionV3/V4 项目,以此对UE4动画系统有了一定了解。FootIk、8方向运动、状态切换逻辑
3. 为了复现AdvancedLocomotionV4项目中动画的动画曲线这些曲线会控制状态机以及其他融合动画效果使用AnimModifier编写生成逻辑最终复现了Run、Walk等移动动画的曲线。
4. 学习动画蓝图的动态加载功能,解决当动画蓝图逻辑较多时的性能问题。对于每个武器拥有不同攻击动画与逻辑的情况,有很大的作用。
### UE4FaceARSample Iphone面部方案学习
## 程序
### GameplayAbilitySystem GAS
1. 学习GAS系统了解Ability、Effect、AttributeSet、Tasks等类。
1. 完全学习ActionRPG项目并且将物品系统封装成组件放在插件中以备后续使用。
2. 解决只使用一个Ability类实现一套连招技能。
3. 学习GameplayAbilitySystem中配套的Debug方法
### 编写Slate控件
1. 实现整数版本的SpinBox
2. 实现类似血源诅咒那种带有虚血的进度条
3. 实现通过函数调用C++、蓝图通用的MessageBox顺便了解了UMG、Slate、GameViewportClient之间的大致关系
### DCC插件
1. 调用Maya的HumanIK插件实现骨骼批量重定向功能将Max的Bip骨骼转换成Ue4骨骼。后续可以再加入其它定制功能。
2. 实现在选中父骨骼后批量生指向若干选中顶点的之骨骼并且生成蒙皮权重。大致作用是将低模角色的BlenderShape权重传递到高精度角色上。
### 项目管理
1. 和他人合作Demo时在租用的VPS上搭建Gitea以实现版本管理包括二进制文件
2. 学习UE4的自动测试框架。
## 图形学效果
### 渲染框架
1. 通过学习EPIC的PPT以及源代码最后撰写全网第一份RenderDependencyGraph(RDG)的使用教程以及HelloWorld案例。案例已更新至4.26版本)
2. 通过学习源代码,了解4.25版本传统渲染框架GlobalShader的变动并撰写文章。
### Shader
1. UE4后处理材质各种卷积描边、各种模糊等。
2. 在Ue4中实现对二次元模型进行透视校正让模型更加二次元顺便学习了BasePass中的顶点数据处理过程。
3. 使用Gerstner波制作海洋效果水体透射使用水面深度-水底深度来得到深度值之后对使用2种颜色差值进行得到最后颜色白沫使用基于Saturate高度的方法。后面如果再做打算使用houdini通过粒子模拟的方式来生成白沫贴图。
4. 学习EPIC TA的RayMarching 溶球效果使用了SDF
5. 学习EPIC TA的RayMarching 2D 3D云效果。
6. 修改ShaderModel以实现卡通渲染材质。
### 自定义图元类
1. 在不修改管线的情况下,以插件的方式实现物体外描边效果
2. 在不修改管线的情况下以插件的方式实现UE4剖面效果
### 离线渲染学习
1. 学习完《An Introduction to Ray Tracing》 系列3本书并且渲染出对应效果的图片。
2. 学习《Ray Tracing from the Ground Up》并且使用Qt重新实现一遍离线渲染器单核渲染
3. 学习《pbrt》至第10章后续因为没有多线程库编写能力只能大致看了看。
## 其他效果
### 面试J3时的面试题
1. 看gif图实现枪支表面的能量效果使用一张Noise贴图分别使用平移与旋转2种移动UV方式叠加到一起。2种移动方式的贴图各自乘以了不同的颜色。
2. 在不是用UE4 SSS ShaderModel情况下使用寒霜的FastSSS方案实现了玉石枪支的效果。因为家里电脑性能以及面试周期问题没有通过添加ShaderModel的方式来修改所以能量不够守恒。
3. 使用Python为Maya编写一个生成圆柱体的插件点、面、法线都是手动计算的可以任意设置大小、横纵以及圆弧段数UV采用Maya内置的映射命令。 使用Qt编写了插件界面。
4. 实现了一个在屏幕空间宽度恒定的“赛博朋克”风格网格材质,通过使用了透视矩阵 对宽度进行校正来实现。
5. 在不改变模型拓扑结构或者动态改变模型结构的情况下设计一种基于Vertex Program的算法动态改变毒圈模型的顶点位置。使得玩家走近毒圈边缘时看到尽可能平滑的弧线。——最后因为时间不够只实现了核心逻辑使用一个没有封口的圆柱体输入2个角度让圆柱体像扇子那样按照角度进行折叠也就是将顶点挤压到一起。最后只差通过摄像机方向、位置、fov、圆心位置计算2个角度以及威风口处的旋转位置将威风口藏在摄像机背后
## 代码
1. GAS
2. 网络联机
3.
```