Unreal Fest 2024 虚幻引擎影视动画制作的普遍问题
————————————————————————————————————————
本文为Unreal Fest Shanghai2024讲座内容笔记,非本人所著,原演讲人李文磊。
————————————————————————————————————————
一· 毛发缓存数据巨大的问题(及5个解决方案)
在引擎里模拟毛发,并且把它缓存下来,我们就不需要从外部导入了,所以我们要解决的问题就是怎么样在引擎里自由地控制毛发
1.物理场控制
延申 [技术分享]《UE中的世界物理场及应用》 | 李文磊 Epic_哔哩哔哩_bilibili
毛发默认情况是不接受物理场地速度/力的。要把物理场的信息在毛发的Niagara解算器里写进去,然后让它查询。重点是查询的信息要给particle node position来改变它的位置。在Niagara的groom,update groom veocity模块里。
2.添加碰撞体
毛发和角色以外的其他物体碰撞。
在毛发的component上add collision component并暴露出来
3.模拟精度和渲染精度
- Strands / 静态的时候的毛发平滑度
- Guide /
- Strand Size / guide上面的Particle 的数量
这里有3个概念,Strands 就是毛发导进来时模型的段数,是跟渲染的精度有关的,但是它主要的是表现静态的时候的毛发平滑度,
如果是动态的模拟起来的话,是需要一套guide(引导线)段数,它是动态模拟平衡度的基础,但是决定动态模拟平滑度的,最关键的就是Strand Size ,就是guide上面的Particle 的数量,具体参与模拟的粒子数。这东西是在引擎里设置。
还有对比图,同样的Strands,使用了不同的Particle 的数量,看上去它的渲染品质,碰撞的精度是有很大的差别。
所以如果你觉得这个毛发,特别是模拟比较大的时候看上去不是很光滑,不一定要一味的去增加这个毛发本身strands,因为那个会大大的增加毛发的一个尺寸或者数据量,可能考虑更多在引擎里面,先把particle碰撞的这个段数给增加。
4.模拟坐标空间
毛发在大的运动速度或者快速运动中,有一些拉扯或者物理模拟不精确,可以通过调整它的坐标空间,默认是local坐标空间,并且提供两个参数让Local坐标空间应用的量进行混合。
用这种方式来控制我们需要世界的速度对毛发产生影响的大小。(图左是完全世界空间,右边是local)
5.用sequence把模拟缓存下来
保证确定性:两次渲染每次的位置一模一样,第二次编辑器的播放速度一模一样。
要注意缓存大小跟引导线的数量和strands size是直接相关的。。
如果必须要外部导入,尽量导入引导线的缓存而不是strands的缓存。
引导线的缓存导进来驱动strands,有拉扯问题,主要可能是跟引导线数量有关,间隙不要太大,如果毛发密度很大,引导线百分比可以小一点。密度不大的话百分比可以相对多一点。
另外的话,guides的数量(也就是cv)它的顶点数量可以少于strands。
在某种程度上,只要用guides,不管是1/5还是1/10strands,再减少cv(Control Vertex)数量。它的guide的cache就是大大小于strands的cache。
二·毛发光影问题
理解毛发渲染机制,熟悉控制参数
基于体素(Voxels)毛发大部分是基于voxels的,(如果是光线追踪也可以基于geometry)
所有的自阴影/它阴影(头发在头上或者地上)都是基于voxels的
三个对于基于体素的光影影响最大的命令行
- (第一行)首先是它的尺寸(体素的大小),对直接光的影子的影响在自阴影有比较大的差别。
- (第二行)DensityScale或者毛发设置hair shadow density(和命令行是同一个东西)可以用比较少的毛发来模拟比较厚的效果
- (如下图第三行)Raymarching.SteppingScale默认是1.15,设置为1精度会大大提升,毛发在额头上闪烁的问题也可以得到很大的改进。
环境光遮蔽HairStrands.VoxelTrace
天光
1.天光类型:SkyLightingIntegrationType
默认是(如上图)2,1/3比较expensive,渲染输出mrq用cinematic品质输出会转换到1,编辑器和输出就看到的不一样。
2.天光噪点
光追
Deepshadow
deepshadow对自阴影和它阴影都有影响,自阴影相对普通shadowmap少噪点,它阴影相对普通shadowmap更细腻
某些逆光轮廓感开启可以用deepshadow
总结
———————————————毛发景深问题(待更新)—————————————————
相关文章:

Unreal Fest 2024 虚幻引擎影视动画制作的普遍问题
———————————————————————————————————————— 本文为Unreal Fest Shanghai2024讲座内容笔记,非本人所著,原演讲人李文磊。 ————————————————————————————————————————…...

【机器学习-四-无监督学习unsupervise learning-聚类算法简介】
无监督学习unsupervise learning 聚类聚类的过程相似度度量方法聚类的方法划分式层次聚类基于密度的聚类 上一节讲的无监督学习,但是很多人可能会很疑惑,没有目标,那算法是怎么学会该怎样分类的呢?今天就简介一下其中的聚类算法。…...

IPv6路由基础
RIPng RIPng是一种较为简单的内部网关协议,是RIP在IPv6网络中的应用。RIPng主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。由于RIPng的实现较为简单,在配置和维护管理方面也远比OSPFv3和IS-IS for IPv6容易,因…...

uniapp开发微信小程序 嵌套(uniapp开发/其他)H5,H5点击跳转微信小程序页面(通信
环境: uniapp开发微信小程序,嵌套webview,H5页面也是用的uniapp框架开发,H5页面点击商品后,需要跳转到微信小程序的详情页面 做法的原因 在微信小程序中使用web-view元素,如果要实现 H5到小程序的通信&am…...

VM虚拟机器配置网络DHCP服务
1、VM虚拟机器网络配置,centos 精简版没有配合网卡,如何配置网络 一、查看网卡信息 使用ip addr或ifconfig -a命令查看系统中现有的网卡设备名称,通常可能是eth0、ens33等类似的名称。 二、编辑网络配置文件 网络配置文件通常位于/etc/syscon…...
使用 jd.item_get API打造可读性商品介绍
在数字化时代,电子商务的蓬勃发展使得商品信息的获取变得至关重要。对于电商平台而言,如何准确、快速地获取商品信息,并以吸引人的方式呈现给消费者,成为提高销售额和用户体验的关键。本文将介绍如何利用 jd.item_get API 获取商品…...
java 通过文件下载地址读取文件内容
需求:读取文件内容,已知文件下载地址 需要引入pdfbox依赖 <dependency> <groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version> </dependency>Override pub…...

打造古风炫酷个人网页:用HTML和CSS3传递笔墨韵味
需要用到的背景大家可以自己找喜欢的风格!!! 当然俺把俺用的背景放到文章最后了哦!!!!! 感谢关注和支持 长期更新哦~~~ 1. 简洁的页面布局:保持优雅和对称 在古风设计中,布局的对称性非常重要…...

vue 项目自适应 配置 px转rem 的插件postcss-pxtorem
1、安装 npm i postcss-plugin-px2rem --save -dev --force找到 postcss.config.cjs 没有的话就新建一个 module.exports {plugins: {// to edit target browsers: use "browserslist" field in package.jsonautoprefixer: {},"postcss-plugin-px2rem":…...
股票程序化交易是,第三方软件申请券商私有接口API的门槛
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
JDK8的一些主要的新特性
JDK8(Java Development Kit 8) 是一个重要的版本,带来了许多显著的特性和改进,极大地提升了 Java 语言的功能性和开发效率。以下是 JDK 8 的一些主要新特性: 一、Lambda 表达式 1.简化匿名内部类的写法,…...
40岁的java程序员,还有出路吗?
目录 前言一、现状与挑战二、出路与机遇三、案例分析与启示四、结语 前言 40岁Java程序员的出路:挑战与机遇并存 在科技日新月异的今天,IT行业始终保持着高速的发展态势,而Java作为其中的重要一员,其地位依然稳固且充满挑战。对…...
【服务器】shell脚本之Docker创建nginx
#!/bin/bash# 定义目标目录和配置文件路径 BASE_DIR"/opt/docker/nginx"ETC_DIR"$BASE_DIR/etc" ETC_CONF_DIR"$ETC_DIR/conf.d" SSL_DIR"$ETC_CONF_DIR/ssl" LOG_DIR"$BASE_DIR/log"HTML_DIR"$BASE_DIR/html"C…...
提取蛋白质复合体结构中组装体的变换矩阵
PDB文件中,组装体变换矩阵(assembly transformation matrices)用于描述多聚体结构中各个单体之间的相对位置和取向。从蛋白质复合体 PDB 数据中提取每个组装体(assembly)的变换矩阵,通常需要解析 PDB 文件中…...

java程序员入行科目一之CRUD轻松入门教程(一)
之前在操作MySQL的时候,都是采用Navicat,或者cmd黑窗口。 无论使用什么方式和MySQL交互,大致步骤是这样的 建立连接,需要输入用户名和密码编写SQL语句,和数据库进行交互 这个连接方式不会变,但是现在需要 基…...

OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践
样例简介 本Demo是基于Hi3516开发板,使用开源OpenHarmony开发的应用。本应用主要功能有: 可以搜索本地指定目录的图片和视频文件,并可进行点击播放。 可以通过wifi接收来自手机的美食图片以及菜谱视频,让我们对美食可以边学边做…...

【GBase 8c V5_3.0.0 分布式数据库常用维护命令】
一、查看数据库状态/检查(gbase用户) 1.gha_ctl monitor 使用gha_ctl monitor查看节点运行情况(跟dcs的地址和端口) gha_ctl monitor -c gbase -l http://172.20.10.8:2379 -Hall |coordinator | datanode | gtm | server|dcs:必选字段。指定查看哪类集…...

破解AI生成检测:如何用ChatGPT降低论文的AIGC率
学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 降低论文的“AIGC率”是个挑战,但有一些策略可以尝试。使用ChatGPT逐步调整和改进内容,使其更加自然和原创,降低AI检测工具识别出高“AIGC率”的概率…...

Python用MarkovRNN马尔可夫递归神经网络建模序列数据t-SNE可视化研究
原文链接:https://tecdat.cn/?p37634 本文聚焦于利用马尔可夫递归神经网络(MarkovRNN)结合树库展开建模工作。MarkovRNN 通过整合马尔可夫特性与离散随机变量来深入探索递归神经网络中的随机转换机制,旨在高效处理具有复杂潜在信…...
setup函数子传父普通写法
父组件 <template><div><p>接收的数据: {{ receivedData }}</p><Demo4Chiren2 custom-event"handleGetWeb" /></div> </template><script> import { ref } from vue; import Demo4Chiren2 from ./demo4Chiren2.vue…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...