2019.8.26~2019.8.30
New:
1.使用MONO脚本控制BlinkShader,初步demo完成。实现了控制宽、高、羽化、速度、自定义曲线。
2.整合到PostProcess框架,实现Blink.shader、Blink.cs、BlinkEditor.cs、BlinkController.cs。
Others:
1.贝塞尔曲线使用
public AnimationCurve anim;//define
dxtime = anim.Evaluate(time);//get func(x)
2.建立postprocess volume
http://www.ravedonut.com/archives/4705
3.建立controller
其中:使用 blinkSettings.dxtime.Override(0.1f);可以赋参数值的同时,并使其Onenable()。
4.unity C# Timer
https://blog.csdn.net/sinat_37730224/article/details/79230706
5.unity shader function
https://blog.csdn.net/a6627651/article/details/50680360
6.unity屏幕后处理全家桶v1、v2区别
https://blog.csdn.net/qq_18229381/article/details/79007376
2019.8.19~2019.8.23
New:
1.使用椭圆遮罩初步实现了blink眨眼的遮罩效果,仍需实现锯齿效果的去除和模糊,并引入time控制。
Others:
1.排查PC build问题,发现加载散文件形式会出现声音引擎找不到异常,但现在无法以加载代码的形式断点debug。
2.以输出LOG的形式继续定位问题,发现无法调用配置表初始化。
3.使用2018.4.0f1个人版编译build灵笼没有出现上述问题,但仍然无法进入登陆界面。
4.使用7月中旬某版本的灵笼,PC build可以运行登陆,但偶尔会卡住在选择人物的界面,所以现怀疑是客户端业务逻辑有bug。
2019.8.12~2019.8.16
New:
1.优化了Dizziness眩晕效果,使得控制参数符合直观数值,按照美工进一步完善插件。
2.编译PC版本灵笼,以加载散文件的方式build并运行游戏,但运行后有些操作不能进行,打包bundle包出异常,正在重新排查并打包。
3.更新了最新的SVN上的灵笼版本。
Others:
1.学习计算机图形学相关知识,如坐标空间、光照模型,shader中vert函数如何做顶点变换,frag如何做片元变换,纹理坐标等。
2.学习了径向模糊实现原理。
2019.8.3~2019.8.10
New:
1.开发新的Dizziness眩晕效果,设计了shader+PostProcessEffectSettings.cs,以插件的而形式结合给定的控制参数(偏移尺度,缩放尺度,混合尺度)完成效果的实现。使用Sin(Time)函数设计周期性的效果变化,达到了美工要求的demo效果。
Fix:
1.使用Sin(Time)修复了效果周期性变化问题,该问题曾导致两种效果无法周期性交替变化。
2.修复了shader难以控制效果启始问题,原因在于shader只控制效果的展示,后处理插件只做数据的封装(OnEnable函数无法控制自身关闭,至初始化一次参数),后续引入Monobehavi逻辑控制time参数。
Others:
1.学习更多的shader开发,如了解后处理特效通常的开发流程,控制硬件的语言CGSL和HLSL等。
2.熟悉后处理的框架结构,
D:\LL\U3DClient\Assets\3rd\PostProcessing\Shaders\Builtins\Dizziness.shader --编写的shader
D:\LL\U3DClient\Assets\3rd\PostProcessing\Editor\Effects\DizzinessEditor.cs --显示在面板上的参数,用于给美工调试
D:\LL\U3DClient\Assets\3rd\PostProcessing\Runtime\Effects\Dizziness.cs --编写的插件逻辑包括两个类:
(Dizziness:PostProcessEffectSettings/DizzinessRenderer:PostProcessEffectRenderer<Dizziness>)
D:\LL\U3DClient\Assets\3rd\PostProcessing\Shaders\Builtins\Uber.shader --在uber中进行宏定义和return color(需要编写3个位置)
D:\LL\U3DClient\Assets\3rd\PostProcessing\Runtime\Utils\ShaderIDs.cs --加入一些需要用cmd的传参变量,如纹理
D:\LL\U3DClient\Assets\3rd\PostProcessing\PostProcessResources.asset --把新的shader声明放进去并填入下图所示资源
2019.7.29~2019.8.2
Fix:
1.修复dll调用bug,使用unity成功调用dll。
New:
2.撰写matdlib使用说明:
3.效果实现
抖动+重影+模糊,使用屏幕抖动和高斯模糊的方式设计了shader和C#,但与美工要求的效果存在一定差异,需要优化。
Others:
4.Shader学习:
Shader基础 :属性,子着色器,tag,CG程序,法线贴图,光照模型,贴图效果追加,更改顶点模型。
U3D C# 函数 Awake() Start() OnEnable() OnDisable()
2019.7.22~2019.7.28
New:
1.使用CMAKE重新编译Dlib形成lib CMAKE DLIB
2. 使用CMAKE重新编译Opencv形成lib和dll
3.封装FaceMor成MATDLIB.DLL文件,暴露init及getresultimg接口
4.使用C++/C#接口成功调用MATDLIB.DLL文件
5.unity调用dll有问题,解决中
2019.7.16~2019.7.19
本周工作的内容:
New:
1.成功调试出人脸68特征点检测以及图像融合demo,效果如图所示。
2.实现模型压缩,原模型大小为95m左右,现引入压缩方法使得模型大小为5.8m。
https://github.com/miaoerduo/dlib-face-landmark-compression
Fix:
1.问题:当DLIB无法检测人脸时,或输入图片为其他图片时,会抛出异常。
解决:使用try catch捕获异常,或调试找到object_detector if (dets_accum.size() == 0 || dets_accum.size() == NULL) { exit(-1); }
Others:
1.安装CMAKE、DLIB、OPENCV等所需的项目库 安装CMAKE、DLIB、OPENCV
2.了解解决方案:
(1)img1 -> PCA -> 中间帧 <- PCA <- img2
(2)特征点提取(dlib库)-> 三角剖分–> 变换(opencv) -> 调节参数得到不同的融合结果
3.阅读论文《多人脸图像的自适应渐变动画》内容梗概如下:
输入源图像S和目的图像T,首先归一化尺度处理,随后人脸位置检测,人脸排序及HIS调节,进行人脸特征点提取。然后计算 ST的特征差以计算出中间帧数目,随后使用图变形和扫描线方法生成中间帧得到最后的输出。4.其他方案:
速度优化:
https://blog.csdn.net/leo_812/article/details/51945743
关键点检测训练:
https://blog.csdn.net/elaine_bao/article/details/53054533
视频检测
https://blog.csdn.net/zmdsjtu/article/details/53454071