【毛发教程】使用 Maya、XGen 和虚幻引擎创建马尾辫发型

Malte Resenberger-Loosmann是国外一名首席艺术家,他负责指导整个艺术部门来制作独立游戏项目中的3D建模。在本文中,Loosmann展示了马尾辫发型背后的工作流程,分享了 Maya 和虚幻引擎中的场景设置,并解释了 GS CurveTools 如何帮助创建逼真的头发。

来源:80.lv

1.马尾辫发型

和任何 3D 项目一样,Loosmann在网上搜索参考资料和想要的风格。在制作头发时,形状和体积非常重要。分层处理发型,并逐步构建,可以为头部某些部位带来良好的体积感和覆盖效果。

来源:80.lv

通过分析参考资料,Loosmann发现大多数发卡都需要聚集在一起,以符合头发的自然形态。同时,实现有机且非线性的外观非常重要。这可以通过在FiberShop中使用不同的修饰工具来实现,例如夹紧、卷曲,以及随机调整发根和发梢的长度和厚度。

来源:80.lv

Loosmann表示,艺术家通常在 Maya 中使用 XGen 和 Arnold 渲染所有必要的贴图,比如环境遮挡、流动贴图和根部渐变等。不过,在 FiberShop 中,这些都可以一次性烘焙完成。之后,Loosmann在 Maya 中使用 XGen 生成单根飘逸的头发,以简化工作流程。

来源:80.lv

2.Maya场景设置

在创建了第一批发卡后,我们可以使用 GS CurveTools 将它们实现到 Maya 中。Loosmann将纹理的前三个发卡应用到绑定在曲线上的实际几何体上。这样,你可以选择各种发卡变体,同时覆盖头部几何体。通常,随着你创建更多不同层次的发型变化,这种曲面几何体将不断增长。

注意不要使用“Delete All by Type -> Delete History”,因为这会破坏 GS CurveTools 创建的绑定关系。

来源:80.lv

在过程中,Loosmann首先尝试用简单的头发和较大的发卡网格覆盖所有几何区域。此外,他还使用更长的头发卡片来定义马尾辫的体积和形状,并设置了第一个分层发卡,使头发流向更具变化性,整体感觉更自然。

来源:80.lv

然后就是不断检查硬交点、头发流向和有机排列。最初的几张发卡可能看起来不太理想,但它们很快会组合成一个非常漂亮的发型。设置一个基本的材质,并烘焙流向图、环境遮挡图和漫射/透明度贴图,以便在着色器中使用。

来源:80.lv

为了增加发量,Loosmann使用了更长的头发,并在侧面增加了发束。他从前额到脖子,镜像了大部分曲线,然后重新调整它们,以使头部的每一侧看起来更加独特。

3.Maya XGen

Loosmann使用重拓扑技术为头部的基础几何体创建引导发丝。通过不断检查头发的正确位置和梳理方向,优化了头发的整体流向和外观,以配合主马尾的造型。为了在保持性能的同时实现更凌乱的外观,他使用了噪声和卷曲等修饰器,并仔细考虑了使用的发丝数量。

来源:80.lv

一旦曲线放置和微调完成,就可以使用 GS CurveTools 绑定发卡几何,并设置每张卡片朝向基础头部的方向。

来源:80.lv

4.创建LOD

考虑到性能和 LOD(细节层次)的要求,Loosmann首先将几何体导出为 LOD0,然后进一步减少细节创建 LOD1,而 LOD2 则包含最少的多边形。他还手动删除了可能会使纹理变形的低分辨率发卡。

来源:80.lv

5.虚幻引擎设置

最后导入到虚幻引擎场景中。背景是单色反转的球体背景,并设置了经典的肖像灯光,包括冷色边缘灯、温暖填充灯、区域光和前方光,以获得柔和的外观和质感。在后期处理体积中,Loosmann启用了光线追踪以实现全局光照和反射,使用环境立方体 HDRI 实现头发的额外反射,并添加了色调阴影、晕影和曝光等多种效果。

来源:80.lv

此外,为了确保能在游戏中正常显示,没有剪裁或闪烁等问题。Loosmann还调整了头发的碰撞设置,以确保不会影响角色的移动或动画。

来源:80.lv

以上就是国外大神分享的毛发教程啦~当然,毛发渲染通常非常耗时!在本地电脑算力资源有限的情况下,可以尝试使用蓝海创意云渲染农场。蓝海创意云渲染农场icon-default.png?t=N7T8https://render-film.vsochina.com/cn

蓝海创意云icon-default.png?t=N7T8https://render-film.vsochina.com/cn蓝海创意云利用云计算的强大算力,结合大规模集群调度和高速传输解决方案,大幅提升渲染速度和效率。这不仅有效解决了Arnold、Unreal Engine渲染毛发闪退、崩溃的问题,还确保了渲染任务的稳定性和高效性。现在更是配置4090等高配GPU服务器保障用户的渲染体验。感兴趣的可以来平台0费测试速度哦!

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

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

相关文章

SQLSERVER 有哪些关键字不能作为字段需要注意的

今天遇到一个错误: 2024-07-05 08:42:33.150 ERROR 8220 --- [io-17001-exec-1] c.alibaba.druid.filter.stat.StatFilter : merge sql error, dbType sqlserver, druid-1.1.21, sql : SELECT dydm,dymc,byzd1,byzd3,byzd4,in_date,out,out_date FROM dianyuan WHE…

Linux 查看修改系统时间| date -s

Linux 查看修改系统时间 date 命令的介绍date基本语法date命令使用示例显示指定条件的时间设置指定条件的时间时间加减操作显示文件最后修改时间显示 UTC 时间 备注 date 命令的介绍 date 命令在 Linux/Unix 系统上的使用。 date 命令可以用于查看和设置系统时间。 date基本语…

基于IIS的Windows系统Django项目本地部署

参考: 1. 基于Windows平台的Django本地部署和腾讯云服务器上部署(1)_如何在服务器上发布部署django程序 csdn-CSDN博客 2.Windows server iis部署Django详细操作 - Django中文 - 博客园 (cnblogs.com) 3.在IIS中部署pythonDjango项目时出…

Python: 分块读取文本文件

在处理大文件时,逐行或分块读取文件是很常见的需求。下面是几种常见的方法,用于在 Python 中分块读取文本文件: 1、问题背景 如何分块读取一个较大的文本文件,并提取出特定的信息? 问题描述: fopen(blank.txt,r) quot…

使用任意电脑通过内网穿透生成的公网地址远程SSH连接本地Windows电脑

文章目录 前言1. Windows安装SSH服务2. Windows本地连接测试3. Windows安装Cpolar工具4. 配置SSH公网地址5. 远程SSH 连接测试6. 固定SSH公网地址7. 固定SSH地址测试 前言 在当今的数字化转型时代,远程连接和管理计算机已成为日常工作中不可或缺的一部分。对于Wind…

Warning message:package ‘ggplot2’ is not available (for R version 3.2.3)

install.packages(ggplot2) Installing package into ‘/usr/local/lib/R/site-library’ (as ‘lib’ is unspecified) Warning message: package ‘ggplot2’ is not available (for R version 3.2.3) 根据你提供的信息,警告消息表明在你的R版本(3.2.3…

微信小程序留言板1

wxml&#xff1a; <view class"view2"> <text class"test1">留言&#xff1a;</text><input type"text" class"input1" bindinput"ipt"/><button class"btn" bindtap"btn"…

spring mvc学习

第四章 Spring MVC 第一节 Spring MVC 简介 1. Spring MVC SpringMVC是一个Java 开源框架&#xff0c; 是Spring Framework生态中的一个独立模块&#xff0c;它基于 Spring 实现了Web MVC&#xff08;数据、业务与展现&#xff09;设计模式的请求驱动类型的轻量级Web框架&am…

重要性采样求泊松分布期望

我也不是数值模拟或者统计物理的学生。所以蒙特卡洛之类的概念性的东西也说的不好。下面是我的统计物理的期末作业。关于用重要性分布求离散函数泊松分布的数学期望的。 我觉得这个挺有意思的&#xff0c;所以也花了点时间加上chatgpt折腾了一下&#xff0c;提供一个参考吧&…

CatBoost原生接口和Sklearn接口参数详解

CatBoost原生接口和Sklearn接口参数详解 LightGBM原生接口和Sklearn接口参数详解XGBoost原生接口和Sklearn接口参数详解CatBoost一、Sklearn风格接口CatBoostRegressor参数CatBoostRegressor.fit参数CatBoostRegressor.predict参数 二、Catboost原生接口CatBoost PoolCatBoost可…

「媒体邀约」全国巡演,多地推介会,如何做好媒体宣传

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 我们在做多地活动的时候&#xff0c;比如演唱会&#xff…

【LeetCode】十一、滑动窗口:长度最小的子数组 + 定长子串的元音最大数目

文章目录 1、滑动窗口2、leetcode209&#xff1a;长度最小的子数组3、leetcode1456&#xff1a;定长子串中元音的最大数目 1、滑动窗口 如下&#xff0c;有一个数组&#xff0c;现三个元素为一组&#xff0c;求最大的和&#xff0c;自然可以while循环实现&#xff1a;i 、i1、…

数据结构(Java):迭代器遍历【底层源码解析】

1、引言 我们知道&#xff0c;对于List系列集合&#xff0c;添加的元素是有序、可重复、有索引的&#xff1b;而对于Set系列集合&#xff0c;添加的元素是无序、不重复、无索引的。 那么使用for循环通过下标来对Set系列集合进行遍历&#xff0c;那显然是不行的。 迭代器就可…

Spring的AOP概念详解

AOP详解&#xff1a; 1.介绍&#xff1a; 面向切面编程&#xff0c;是一种将非业务代码与业务代码进行分离的一种思想&#xff0c;在实际开发中,往往有许多重复操作,例如事务提交,权限验证,保存口志等功能需要在业务代码重复调用&#xff0c;面向切面编程,就是将非业务代码进…

51单片机-让一个LED灯闪烁、流水灯(涉及:自定义单片机的延迟时间)

目录 设置单片机的延迟&#xff08;睡眠&#xff09;函数查看单片机的时钟频率设置系统频率、定时长度、指令集 完整代码生成HEX文件下载HEX文件到单片机流水灯代码 (自定义延迟时间) 设置单片机的延迟&#xff08;睡眠&#xff09;函数 查看单片机的时钟频率 检测前单片机必…

算法:递归数组求和

递归数组求和 给定一个数组&#xff0c;求所有元素的和 算法思想&#xff1a; 传入数组和下标&#xff0c;如果下标越界就返回0&#xff0c;否则返回当前值和下一个值的和&#xff0c;递归操作。 Java实现&#xff1a; public class Main {public static int func(int[] a…

数据结构第09节:二叉树

树是一种非线性的数据结构&#xff0c;它由节点和边组成。每个节点可以有零个或多个子节点。在树中&#xff0c;没有循环&#xff0c;并且所有的节点都是通过边连接的。 树的基本概念&#xff1a; 根节点&#xff1a;没有父节点的唯一节点。子节点&#xff1a;一个节点可以直接…

JVM的五大内存区域

JVM的五大内存区域 JVM内存区域最粗略的划分可以分为 堆 和 栈 &#xff0c;当然&#xff0c;按照虚拟机规范&#xff0c;可以划分为以下几个区域&#xff1a; JVM内存分为线程独享区和线程共享区&#xff0c; 其中 方法区 和 堆 是线程共享区&#xff0c; 虚拟机栈, 本地方法…

[知识点]-[宽搜bfs]

离开中山路 #include<bits/stdc.h> #define fi first #define se second #define pb push_back #define PII pair<int,int > #define int long long #define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;const int N 1e6…

延边幼儿园1*3 OLED柔性屏翻页一体机安装项目

一、产品介绍 本次项目在吉林省延吉市延边幼儿园内&#xff0c;引入了先进的55寸1*3 OLED柔性屏翻页一体机。该设备集高清显示、灵活翻页、互动教学等功能于一体&#xff0c;专为现代幼儿教育环境设计&#xff0c;旨在通过科技手段提升教学质量&#xff0c;丰富教学手段&#x…