官方介绍

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

通常,在受间接光照时,并不会产生阴影,除非是屏幕空间环境遮罩。间接投影需要做的非常柔滑,因为间接光照是来自很多不同的方向,因此,传统的阴影贴图做法的效果并不好。间接阴影的方向和柔度来自预先摆放的光照样本区域,并有 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. OpenStack Mitaka安装

    http://egon09.blog.51cto.com/9161406/1839667 前言: openstack的部署非常简单,简单的前提建立在扎实的理论功底,本人一直觉得,玩技术一定是理论指导实 ...

  2. how to use ldid

    1.进入管理员权限 sudo -s 2.赋予app运行权限 chmod -R 777 cellmap.app 3.查看app权限 ldid -e cellmap.app/cellmap 4.打开窗口 ...

  3. 批处理定时重启print打印服务,解决打印机异常队列堆积

    公司有台打印机,由于是公用的,经常出现一个较大的文档卡在队列里面,导致队列后面的打印无法被执行,人工去清理岂不是太费事了,下面分享一个批处理文件 @echo off echo 计划任务开始执行 3 e ...

  4. day22、模块-basedir、os、json模块、pickle和正则模块。

    四.正则. re模块: 作用:针对的对象:字符串, 课前引入: 例子一. s='dsdsadsadadsalexdsds's.find('alex') 如何找到字符串内部的alex;?过去学习可使用方 ...

  5. Date和Calendar时间操作常用方法及示例

    package test; import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; /** ...

  6. Hadoop总结篇之三---一个Job到底被提交到哪去了

    我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集群怎么进行交互的呢? 这篇文章将从头讲起. 开发hadoop的程序时,一共有三大块,也就 ...

  7. JAVA多态的定义

    对于多态,可以总结它为: 一.使用父类类型的引用指向子类的对象: 二.该引用只能调用父类中定义的方法和变量: 三.如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法: ...

  8. php类中常量的定义

    先看下面一段代码: class SVN { const DEFAULT_PATH = "/tmp"; const SVNLOOK_CMD = "/usr/bin/svnl ...

  9. EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性

    EasyUI 中 DataGrid 控件 是我们经常用到的控件之一, 但是 DataGrid 控件 在绑定显示列时却不支持对象属性绑定. 模型如下: public class Manager impl ...

  10. Windows 驱动程序工具包中的头文件

    MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554695(v=vs.85).aspx Windows 驱动程序 ...