官方介绍

虚幻引擎现在支持非常柔滑的间接阴影,由代表角色的胶囊体来进行投影。

通常,在受间接光照时,并不会产生阴影,除非是屏幕空间环境遮罩。间接投影需要做的非常柔滑,因为间接光照是来自很多不同的方向,因此,传统的阴影贴图做法的效果并不好。间接阴影的方向和柔度来自预先摆放的光照样本区域,并有 Lightmass 在构建光照时预先计算。
在游戏中,胶囊体的间接阴影将角色投影到地面上。

也可以用这些胶囊体来做直接阴影。灯光的来源半径或者来源角度将会决定阴影的柔度。这可以用来在一个有效的预烘培光照环境中获得非常柔软的角色阴影效果,在以前这点是做不到的。

这个胶囊阴影的实现非常高效,它在一半的分辨率下计算阴影,带有深度信息的向上取样,使用屏幕裁剪来限制只在需要的地方才对阴影进行计算。
GPU 的消耗则和胶囊体的数量以及收到该阴影影响的像素数量成正比关系。
如何启用胶囊体阴影:
仅用 Sphyl bodies(胶囊体) 来创建新的 Physics Asset。用球体也行,但会不够灵活。胶囊体应该覆盖到关节位置。脚部的胶囊体最需要细条,因为这会影响到角色看起来是否恰当的贴在地面上。通常手臂上并不需要,除非游戏中经常会躲到掩体后,或者在地上爬行。

---------分割线------------

以上是官方新特性说明中的描述,下面是我在实际项目当中的操作步骤。

操作步骤:

1. 新建物理资源

2. 重新编辑物理资源刚体,只在关键部位使用胶囊体,即表示轮廓。

3.打开skeletal mesh,把用于阴影效果的物理资源放入相应通道

4.然后在蓝图中,对mesh

5.阴影的柔软度与 (直射光angle/刚体半径) 有关

注意

PS:胶囊体阴影在4.11中,只支持直射光、lightmaps、SkyLight,点光源和spot光不支持胶囊体阴影。

UE4.11新特性:胶囊体阴影的更多相关文章

  1. C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)

    因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...

  2. C++11新特性总结 (一)

    1. 概述 最近在看C++ Primer5 刚好看到一半,总结一下C++11里面确实加了很多新东西,如果没有任何了解,别说自己写了,看别人写的代码估计都会有些吃力.C++ Primer5是学习C++1 ...

  3. [转载] C++11新特性

    C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...

  4. c++11新特性注意点

    本文记录下一些c++11新特性需要注意的方面,供日后参考 一.auto auto可以当成“占位符”,根据右边的类型自动推导出变量的类型.需要注意的是 auto不能解决溢出的问题. auto可以与指针和 ...

  5. C++11新特性总结 (二)

    1. 范围for语句 C++11 引入了一种更为简单的for语句,这种for语句可以很方便的遍历容器或其他序列的所有元素 vector<int> vec = {1,2,3,4,5,6}; ...

  6. C++ 11 新特性

    C++11新特性:          1.auto          2.nullptr          3.for          4.lambda表达式          5.override ...

  7. 在C++98基础上学习C++11新特性

    自己一直用的是C++98规范来编程,对于C++11只闻其名却没用过其特性.近期因为工作的需要,需要掌握C++11的一些特性,所以查阅了一些C++11资料.因为自己有C++98的基础,所以从C++98过 ...

  8. C++11新特性——range for

    很多编程语言都有range for语法功能,自C++11起,终于将这个重要功能加入C++标准中.range for语句,可以方便的遍历给定序列中的每个元素并对其执行某种操作. 1.基本语法 for(d ...

  9. C++11新特性——大括号初始化

    C++11之前,C++主要有以下几种初始化方式: //小括号初始化 string str("hello"); //等号初始化 string str="hello" ...

随机推荐

  1. [原创]C++通用宏定义

    //单态模式(singletion) #defube DECLEAR_SINGLETION(ClassName) \ private: \ static ClassName* m_pInstance; ...

  2. ALV 顶栏的按钮设定

    *&---------------------------------------------------------------------* *& Report ZHJ_TEST0 ...

  3. virtual file system (VFS)

    http://www.ibm.com/developerworks/library/l-virtual-filesystem-switch/ http://www.ibm.com/developerw ...

  4. iOS NSTimer使用详解 开启、关闭、移除

    定时器定时器详解ios定时器关闭定时器NSTimer 一,要使用一个定时器首先要定义一个定时器: @property (strong, nonatomic) NSTimer *myTimer;//定时 ...

  5. mfc打开程序

    void CMy3MFCDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 HINSTANCE hRslt = ShellExecute(NULL, ...

  6. ILGenerator.Emit动态 MSIL编程(三)之动态代理

    using System; using System.Linq; using System.Reflection; using System.Reflection.Emit; public seale ...

  7. 中转Http请求

    应用场景:公司与外部公司数据对接,外部公司需申请指定IP访问.而本地ip经常变动,无法因ip变动时刻向外部公司申请绑定IP,给本地程序调试带来麻烦,故只能在指定ip服务器上搭建请求中转http请求: ...

  8. angular2开发01

    // */ // ]]> angular2开发01 1. angular2 开发准备 1.1. 安装node 1.2. 安装npm 1.3. 运行qickStart 1 angular2 开发准 ...

  9. DNS错误 事件4000 4013

    DNS 错误事件4000 4013,无法创建活动目录本身的区域 WINDOWS 2003 DNS服务器无法解析 错误ID 4000 DNS 服务器无法打开 Active Directory.这台 DN ...

  10. web api 开发记录

    1. 修改 api 返回时间格式 //配置返回的时间类型数据格式 GlobalConfiguration.Configuration.Formatters.JsonFormatter.Serializ ...