如何在 ZBrush 和 UE5 中创建精灵吟游诗人(P2)

小伙伴们大家好,下篇咱们精彩继续,主要是讲解角色建模完成后的重新拓扑、UV、灯光设置和渲染。

纹理的重新拓扑和UV

一切都在 Maya 中完成,重新拓扑是一个漫长的过程,因为角色有很多元素,值得庆幸的是,在进入 high poly 之前进行了准备,它并不太复杂,头部和身体已经重新拓扑并进行了UV处理,所以这已经被处理好了。

我犯的一个错误是,由于某种原因,基础细分和小元素的 UV 在 ZBrush 中的某一点破裂,所以我不得不重做所有事情,使用 Reconstruct Subdiv,我能够回到第二低的细分,但我仍然需要对它们进行 UV。

现在,重新拓扑的网格不像我在一开始所做的那样紧密,因为它主要是一个静态组合件,并且一些元素太高了,这使得我的多边形数量面数猛增。

纹理

如前所述,眼睛是使用UE自带的眼部着色器制作的,所以我唯一需要调整的是虹膜和一些着色器设置。 

对于皮肤,我已经使用 3D Scan Store 模型有了一个很好的基础,所以我只需要画一些我觉得需要更好护理的区域,然后我就开始化妆了,我特地让它更具金属感,以帮助更好地看到它,即使它几乎被头发覆盖了。

身体皮肤是通过平铺一些面部皮肤来获得整体颜色的,然后主要是我在Substance 3D Painter中绘制它。

服装的质地是通过反复试验完成的,我一般从概念颜色的基础开始,然后添加细节,我经常通过为每张地图设置不同的图层来工作。

尽管它使文件更大,但我觉得我可以更好地控制我如何屏蔽它们,因为屏蔽不是按通道进行的。 

对于竖琴和所有金色的东西,我从金色底座开始,然后慢慢构建材质以添加更多细节,它是各种金属与遮罩的组合,因此我可以根据粗糙度获得略微不同的色调和高度细节,它感觉不那么“逼真”,但对我来说,感觉比简单的黄金材料要好。相同的技术可用于裸露的金属部件。

头发是导入虚幻引擎的 XGen 修饰,大部分颜色是通过实时着色完成的,即使在性能方面很重,它看起来也很棒。阴影本身是使用Nick Rutlinh的教程完成的。

渲染

渲染是在 Unreal Engine 5 中完成的,尽管我总是很想用 Arnold 之类的渲染器渲染,但归根结底,我是一名游戏美术师,我想尝试实时渲染。

我尝试了很多不同的灯光设置,但最后,我坚持使用一个基本设置,包括一个前灯、一个边缘灯(一个专门用于 SSS)和一个环境贴图来消除一些阴影。如果需要做到更好的一个效果,瑞云农场小编也十分推荐大家使用
云渲染农场来完成工作!

我通常使用矩形阴影,因为它们是最可定制的,而且我不会忘记为一些非常柔和的阴影打开光线追踪阴影。我还玩影子偏见,直到我得到满意的东西。

我回到它并尝试使用非常柔和的灯光和阴影来获得类似伦勃朗氛围的东西,尽管我不确定它看起来有多好。 

除了景深和光晕,我几乎不使用任何后期处理。

在我看来,最好的打光方式是从摄影师那里找到现实生活中的参考,如果你想拍一张很酷的肖像,你可以在那里找到很多令人难以置信的摄影师,全身照也一样。查找时尚照片、杂志等,但最终,这只是大量的参考。

主要挑战

这个项目花了我很长时间,将近一年,因为我一直在断断续续地工作,由于我的工作/生活平衡,我可以花几个星期不碰它。

在我看来,主要的挑战是坚持到最后,在一个漫长的项目中很容易迷失或灰心,我很高兴我能够完成它。

我可以给的一些建议是:如果它看起来一团糟,请不要灰心也不用担心,对于每个人来说,一开始总是看起来很糟糕。

另一条建议是:慢慢来,这不是一场比赛;这是一场马拉松,如果你打算在你余下的工作生涯中致力于一个角色,那意味着你有足够的时间来变得更好。精疲力竭地尝试只会让你很快就疲倦。

本文《如何在 ZBrush 和 UE5 中创建精灵吟游诗人(P2)》内容由Renderbus瑞云渲染-云渲染平台整理发布,如需转载,请注明出处及链接:https://www.renderbus.com/share/post-id-1444/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5087.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0到1精通自动化测试,pytest自动化测试框架,fixture之autouse=True(十二)

一、前言 平常写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦 fixture里面有个参数autouse,默认是Fasle没开启的,可以设置为Tr…

【排序算法】堆排序

堆与一维数组 建立堆与一维数组的联系 堆排序并不是直接对堆节点Node类型排序,而是通过建立索引之间的关系,对一维数组排序。 称之为堆排序,是因为节点索引值之间的关系与完全二叉树的非常类似,而树又称堆。 设根节点为i&#xff…

2023.7.2-【for语言】:输入一个整数,并输入该整数对应个数的整数,求他们的和与平均值

程序&#xff1a; int a;int b0;int c;int sum0;double ave;printf("请输入待求整数的个数&#xff1a;");scanf("%d",&a);for (b 1; b<a; b){printf("整数%d&#xff1a;", b);scanf("%d", &c);sum c;}printf("以上…

【ChatGpt】解决视频框交换中的平滑过渡的问题

【ChatGpt】解决视频框交换中的平滑过渡的问题 问题抽象chatgpt 看看直接给参考代码 解决效果 问题 在视频的播放中&#xff0c;我们想调换下容器的位置 &#xff0c;在互调的过程中&#xff0c;如果需要重新进行数据的初始化&#xff0c;获取与加载&#xff0c;就会很慢&…

Java 多线程

java多线程 第一种方法&#xff1a; 1.自定义线程类继承Thread类 2.重写run()方法 3.创建线程对象&#xff0c;调用start()方法启动线程 第二种方法&#xff1a; 1.实现Runnable()接口 2.重写run()方法 3.创建线程对象&#xff0c;调用start()启动线程

机器学习李宏毅学习笔记34

文章目录 前言一、Knowledge distillation二、Parameter quantization三、Architecture design四、Dynamic computation总结 前言 神经网络压缩&#xff08;二&#xff09;其他方法 一、Knowledge distillation 先train一个大的network叫做teacher network&#xff0c;小的ne…

selenium-wire简介

目录 前言&#xff1a; 一.简介 二.用法 1.安装selenium-wire库 2.获取请求信息 3.获取响应信息 4.实例 前言&#xff1a; Selenium Wire 是一个 Python 库&#xff0c;它扩展了 Selenium WebDriver 的功能&#xff0c;使其能够轻松地拦截、修改和检查浏览器与服务器之…

【Vue3】学习笔记-watch函数

与Vue2.x中watch配置功能一致 两个小“坑”&#xff1a; 监视reactive定义的响应式数据时&#xff1a;oldValue无法正确获取、强制开启了深度监视&#xff08;deep配置失效&#xff09;。监视reactive定义的响应式数据中某个属性时&#xff1a;deep配置有效。 <template&…

再述时序约束

再述时序约束 一、为什么要加时序约束&#xff1f;二、时序分析是什么&#xff1f;三、时序分析的一些基本概念三、 时序分析的一些基本公式 一、为什么要加时序约束&#xff1f; 一次笔者在调试HDMI输出彩条&#xff0c;出现彩条时有时无现象&#xff0c;笔者视频输出芯片的驱…

MATLAB 之 非线性方程数值求解、最优化问题求解和常微分方程初值问题的数值求解

这里写目录标题 一、非线性方程数值求解1. 单变量非线性方程求解2. 非线性方程组的求解 二、最优化问题求解1. 无约束最优化问题求解2. 有约束最优化问题求解3. 线性规划问题求解 三、常微分方程初值问题的数值求解1. 龙格—库塔法简介2. 龙格—库塔法的实现 一、非线性方程数值…

React hooks文档笔记(四) useRef

useRef 当想让组件记住一些信息&#xff0c;又不想触发新的渲染&#xff0c;可以使用ref&#xff1a;总是返回同一个对象。 1. state 和 refs 的比较 refs&#xff08;普通的 JavaScript 对象&#xff09; state 更改时不触发重新渲染 更改时触发重新渲染 可变的——修改/…

华为OD机试真题 Python 实现【核酸检测人员安排】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同&#xff0c;采样效率为N人/小时。 由于外界变化&…