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…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
