Unreal4有哪些令你印象深刻拍案叫绝的设计

1277 篇文章 12 订阅
786 篇文章 9 订阅
作者:梧桐
链接:https://www.zhihu.com/question/42128016/answer/94670767
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

尽量挑冷门的说。

官方顶点动画插件:用贴图来记录顶点动画数据,用 VTF 做顶点动画,而不是传统的动态顶点提交。(docs.unrealengine.com/l

Render To Texture Blueprint 工具集之 3D Imposter Sprites:先预渲染多个角度的公告板,然后在运行时根据视角选择最接近的一个(docs.unrealengine.com/l

Render To Texture Blueprint 工具集之 Render a Normalized Depth Map:预渲染ShadowMap贴图,然后再材质里面把ShadowMap算一遍,来实现自阴影(docs.unrealengine.com/l

Bullet Train 拿材质编辑器当 Substance Designer 用,烘培贴图来提高性能,还是Render To Texture Blueprint 工具集(youtube.com/watch?

Phong 高光的 SG 近似:把Phong方程里面的Pow函数给干掉,代码在BasePassForForwardShadingPixelShader.usf里面的PhongApprox(Spherical Gaussian approximation for Blinn-Phong, Phong and Fresnel

利用移动平台的 framebuffer_fetch 扩展在 shader 里面做 alphablend,代码在BasePassForForwardShadingPixelShader.usf 的 FrameBufferBlendOp;同时,在 framebuffer_fetch_depth_stencil 不支持时候用 framebuffer 的 w 存深度

虚幻3的半透明头发自动排序工具,虚幻4代码还在,工具没做(DCC 软件里有没有类似的东西?有用过的麻烦分享下),(udn.epicgames.com/Three

材质里 WorldPositionBehindTranslucency 函数实现的各种类贴花效果,比如虚幻竞技场2014(UT2014)主角足下阴影、UT2014 的 Outpost23 外景地表半透明云的投影、Showdown 里面汽车的阴影等

材质里用 CustomUV 通道存 Color 数据,来实现在材质编辑器里面把像素着色器计算转移到顶点着色

禅意花园里面不使用 RelectionVector+Cubemap 的组合来制作水面,而是先假设水面法线朝上,然后通过法线对反射UV做个简单的偏移,再取 Cubemap,来提高性能,龚神这篇文章第二点就是在介绍这个思路(加速反射的渲染

在广角镜头下需要避免屏幕边缘的广角畸变,传统做法一般是两个摄像机 FOV 分开渲染,而 UT2014 则利用 Panini 投影来做,代码在 PaniniProjection.usf(tksharpless.net/vedutis),也有全局的 Panini(docs.unrealengine.com/l

延迟渲染下实现个别对象置顶显示,一种思路是模板缓冲区处理,但是牵一发动全身太麻烦,UT2014 在顶点着色器里把武器的所有顶点朝摄像机移近了一定的百分比

沙发骑士的小人跑到沙发后面也会变成类似全息影像的置顶显示,他的做法是做了两个材质,第二个材质禁用了深度测试,平时用第一个材质,当检测到摄像机和小人中心点中间有遮挡就切换到第二个材质。正常做这个用CustomDepth+Postprocess也行,他这个做法要节省点。

材质编辑器里面的 PixelDepthOffset 只能为正,不能为负,开始以为是引擎代码写的不严谨,后来才知道这叫 conservative depth output(Conservative Depth Output (and Other Lesser-Known D3D11 Features)

按住鼠标右键,滚动中间滚轮可以调节WASD的速度(拍案叫绝?拍桌大笑!)

Slate 实现的这套 DSL 是为了在传统 UI 基础上实现类 Unity 的 IMGUI 的优势(docs.unrealengine.com/l

有时候水底看起来因为折射在波动,其实是水塘的顶点在波动,和水和折射没有关系

禅意花园里面的蝴蝶和鱼都不是骨骼动画,翅膀、尾巴或头的正弦运动,可以是刷上了顶点权重色配合 RotateAboutAxis 在顶点着色器里做正弦动画。

Showdown 里面的窗户玻璃,并不是透明材质,而是不透明材质加上 bumpoffset(parallax mapping)做的伪透明

FastMath.usf 里面一大把黑科技数学函数,当然少不了卡神的 0x5f3759df 啦

BSP 里面 pen 和 brush clip 只有在顶视图等正交视图用空格键操作才有效,最吓人的是 lathe 工具,教程 youtube.com/watch? ,官方案例的 BSP 关卡做的真是让人拍案叫绝(不过感觉现在引擎的重心没在这块?各种 bug 不修)

粒子系统配合材质编辑器加上粒子 Event 体系,扩展性太强了,可惜 Niagara 模块很久没有动静,否则再配合上蓝图,已经是我能想象出来的极限

无尽之剑里的 PBR 材质直接把 basecolor 贴图的某个通道做简单的 lerp 之类的处理就传给了roughness,效果显著,性能优秀。UT2014 的武器 material layer 做多了以后,性能不行,单个材质层也用这个技术来做优化贴图采样。

PS 里法线越叠越平?那是因为没有掌握法线混合的 N 种姿势( Blending in Detail,web 预览:Shader Sandbox),材质节点里面的 BlendAngleCorrectedNormals 就是 RNM(Reoriented Normal Mapping),当然啦,入 Substance Designer 神教就没这个问题了

yEd 是个好玩的工具,把引擎内树状数据结构可视化打印出来(yEd - Graph Editor),r.CompositionGraphDebug 这个命令可以把光照合成、后期处理的流程打印出来

不过还是 gephi (Gephi - The Open Graph Viz Platform)好看点,引擎用它来打印 UnrealBuildTool 的上下文依赖关系(GraphVisualization.cs 文件)

与其折腾策划数据编辑软件,不如学好 VBA,直接来扩展 Excel,Driving Gameplay with Data from Excel,文章里面的 Export To CSV 内嵌按钮就是 VBA 写的,UT2014 也在用这个方案(例子的下载链接失效了,用这个:docs.unrealengine.com/l

Lightmass 用挡光板逆向打光模拟区域光源(Simulating Area Lights in UE4),妈妈再也不用担心我打不好光了,禅意花园的室内氛围就是这么出来的

Fresnel 在不明显的时候,用 lerp 替代 pow 只要慢慢调也能差不多,性能还好点,材质函数 Fresnel_Function 内部就同时集成了两种实现

材质的自发光通道可以直接算光照模型,把光照模型关了,补一个 Lambert,补一个 Phong,甚至更简化的版本,小东西这么用比较省,尤其移动平台

官方的 PostProcess Matinee (youtube.com/watch?)里面蝴蝶的翅膀,高光效果感人,就用上面说的方法:Phong 的一个变种,可以双向高光。不过他还是保留了 Volumetric 的 NonDirectional 光照计算

======================================= 有空再更
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值