“Yeah It’s on. ”
前言
接前篇早些年游戏开发工作中的笔记,放上来以防丢失。有些规则现在可能不适用了(如一些是U3D4早些版本的记录)。有些因为水平有限,有理解错误的地方,望指正!~
笔记比较乱,没整理
正文
Unity3D
ECS: convert to entity 需要下载安装hybrid renderer包,否则运行后game object不可见。
ECS; Job system; Burst; SRP LWRP HDRP; post-processing stack; asmdef (Assembly Definition Files); Timeline&Cinemachine; GPU Skin; GPU Instancing;
post-processing local volume blend distance 形成的包围盒需要包含进post-process layer中设置的trigger坐标。不然local volume不起作用。
OnPostRender函数中调用Graphics.Blit没效果,可能是由于hdr开启的原因。
Every Graphics.Blit causes RenderTexture.ResolveAA if MSAA enabled which is killing framerate.
Unity使用的是OpenGL标准,即-1是左和下,1是右和上, 0是远裁面,1是近裁面
GBuffer中储存当前像素的Albedo, Specular, AO, normal, Depth等
struct UnityStandardData
{
half3 diffuseColor;
half occlusion;
half3 specularColor;
half smoothness;
float3 normalWorld; // normal in world space
};
通过深度图反推世界坐标就需要viewProjection matrix的逆矩阵:
float4 worldPos = mul(_InvVP, float4(i.uv*2-1, depth, 1));
渲染管线在决定使用哪一个Pass来绘制物体的时候,正是识别Pass的Lightmode来决定的
Animation界面:单击列表中的各个属性,然后按键盘上的F以自动重新缩放视图以适合该曲线值的范围,按键盘上的A键以适合并重新缩放窗口,以显示剪辑中的所有关键帧
类似动作的实例可以是各种步行和运行动画。为了使混合良好地工作,clips中的运动必须在标准化时间内的相同点处进行。例如,可以对准步行和跑步动画,使得脚与地板接触的时刻发生在标准化时间内的相同点处(例如,左脚击中0.0,右脚击中0.5)。由于使用了标准化时间,因此剪辑的长度不同并不重要。
播放没有混合的单个动画片段,Mecanim比传统动画系统慢
动画比例曲线比动画平移和旋转曲线更昂贵。要提高性能,请避免使用缩放动画。
导入Humanoid动画时,如果不需要,则使用BodyMask删除IK目标或手指动画。使用Generic时,使用根运动比不使用它更昂贵。如果您的动画不使用根运动,请确保未选择根骨骼。
UnrealEngine4
PreInit-> LoadCoreModules-> UClassRegisterAllCompiledInClasses-> TClassCompiledInDefer
AppInit-> InitUObject-> StaticUObjectInit-> UObjectBaseInit-> UObjectProcessRegistrants-> UObjectForceRegistration-> UObjectBase::DeferredRegister-> AddObject
ProcessNewlyLoadedUObjects-> UObjectLoadAllCompiledInDefaultProperties-> Z_Construct_UClass_UMyClass