- https://academy.substance3d.com/ 中文教材(点右上角中文)
- prb引导文档(点右上角中文)
- uma方案
https://www.youtube.com/playlist?list=PLkDHFObfS19zFVfbrfB14P-u5QJJQyvtP
- 换装 (格位,是否替换其它格位或部件,是否隐藏其它格位或部件,包含顶点mask)
- 整体换(如变身)
- 换色
- 捏骨骼
- 等等 单纯看演示的话 考虑的挺周到的,并且接合也合理
- 天刀的说明
- ue4 《Honey Select》捏人剖析
- Blend Shapes (由dcc工具导出,skinMesh.SetBlendShapeWeight)
- hsv
half bias = 0.1f;
half4 mask = tex2D(_RecolorMask, uv);
int maskIndex = (int)(step(bias, mask.r)
+ step(bias, mask.g) * 2
+ step(bias, mask.b) * 4);
//使用hsv进入混色
DyeColor = HSV2RGB (RGB2HSV(BaseColor) + HSVOffset)
- ue4中的
- https://renderman.pixar.com/louise
- https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch14.html
- https://80.lv/articles/secrets-of-human-shaders-in-ue4/ 一个美术ue4里的,但我觉得主要还是画的好
- lux.git 源码
- 油脂层
- 透光性
- 皮肤泛红
- SSS
- 核心主要是皮肤要分清楚,把漫反射的阴影替换成血色过渡,再加一个次表面散色,最后一个模糊权重过渡
- 高光切线法 双层高光 透明度 AlphaTest 做多次的pass
- UnityHairShader.git
//对切线在法线方向上进行偏移
float3 ShitTangent(float3 T,float3 N,float shift){
float3 shiftedT=T+shift*N;
return normalize(shiftedT);
}
- 延伸 https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter23.html 加了物理
- 延伸NVIDIAHairWorksIntegration.git
分层
- 瞳孔
- 眼白
- 泪腺
- 角膜(高光)
- 睫毛
- 相应的节点约束 (线性权重)
- 碰撞约束
- 武器收起与脱手 (不同的父级,动态调整权重)
- 其它 (我感觉其它的比较次要)
- 可调整动作衔接时间及条件组合
- 切换优化级
- AvatarMask 上下身分离 (边跑 边跳 边表情 边招手等)
- Retargeting 动画重定向技术
- TargetMatching 动作与位置的对齐操作(如翻墙,美术是做了个动作,但墙位置及高度会有所不同)
https://www.youtube.com/playlist?list=PL47vwJBRNh1xzEvcLvXoJvjLcr1h0j-1O
1.工具化
镜头 角色控制器
- navmesh 分层:雪地/草地/水面 (导出给服务端使用,一般是导出高度图:(x,z的 y的高度),主要定位脚的位置)
- collider 物理碰撞(寻路navmesh可以做,但飞行跳跃 落点 有collider可做更细致的内容)
- 区域编辑 (进入触发,如天气变化,镜头等,一般会触发一个skill.amf文件,由技能编辑器产出)
- 剧情
- npc/monster 定位
- 草/水/风/粒子系统 动有东西
- 触发关联 (如门与机关)
- 时间变化 (白天黑夜)
- 天气变化 (风雨雷电,地表有积水,地表被雪覆盖)
- 等等
- 有深度差别
- 有水面下的扭曲
- 泡沫
- 是否有交互
- 顶点动画
- photoshop生成,当参考
- 另类 做高光的各向异性
- substance制作
- linear space
- 烘培
- HDRI 天空球
- Reflection Probe 来增加反射效果,也可用它来区分环境
- Light Probe 来做动态物体的间接光
- emission 调hdr色
- Postprocessing 主要为(bloom/Lut)
- 光照介绍
- 一个铁道的demo内含源码
- 更好光线的7个小提示
- 自动Light Probe 说明 git
- 遮蔽 (Occlusion culling)
- subScene
- 研究:是否有Scene存在的必要,如果没有,需自己记录lightmap信息,动态9宫加载lightmap(收集由mesh的lightmapIndex)
- 开关投/接 阴影 反射球 等, 是否有必要动态合并(使文件变大,如果做超大场景 就会浪费很多很多的东西)
- 阴影级数 尽量降级2层
- lod 是否有必要 (理论上是超必要)
- 资源 read/write 关闭 mip级数
- 粒子系统 现在有默认关闭的(自动优化镜头内)
- 是否有合并贴图的必要 (小物件合一起)
- 镜头光
- Light Probe 动态取改 LightProbeEditor.git
- sh9/vertexLight
由timeLine完成,cinemachine来做镜头 Postprocessing做区域镜头特效
- 对场景进行了静态合并 (research: StaticBatchingUtility进行运行时合并)
- 对于共用资源 产生了多份的合并资源 内存增大
- 对于ab打包,也产生了Scene特大问题
- 对资源需开启read/write
- 自动打包功能无法预览 (research:AbBrowse结合,再用AssetStudio查看什么东西比较大)
- 抽出了lightmap独立打 会使lightmap无效
- shader variants 太多 太大问题
- and so on
- 对美术与程序分离
- 分代码库 把需要绑定到gameObject上的独立库,把程序应用独立成库,这样基本的dll热更新 可直接在手机上热更新调试
- 做远程发布 逻辑代码dll,及assetbundle 服务,
- unity插件 svn tools lite unity上直接提交svn ,[ConsoleE]更方便调试调用堆栈