当前位置: 首页 > news >正文

判断网站模板版本/郑州优化网站公司

判断网站模板版本,郑州优化网站公司,网站空间多大,海南在线新闻中心引言: 我是一名泛开发者(Generalist developer ),大约在2年前开始着手研究3D和游戏开发相关的主题。我刚开始主要是专注于学习虚幻4和摄影测量(Photogrammetry)技术,现在在研究SD。同时,我也在研…

605a94693d92f3df8f4a837487242ebd.png

引言: 我是一名泛开发者(Generalist developer ),大约在2年前开始着手研究3D和游戏开发相关的主题。我刚开始主要是专注于学习虚幻4和摄影测量(Photogrammetry)技术,现在在研究SD。同时,我也在研究角色和生物体的建模,对Hair & Fur生成也很感兴趣。

原文作者:Olivier Lau 开发者,TA

译者:如果大家在做毛发纹理生成工具设计,可以了解一下Olivier Lau的整体制作思路,挺有趣的。

了解头发生成

我看Johan Lithval的CGMA网络研讨会 <游戏中的头发生成>视频时,第一次了解了实时头发制作。视频中展示的品质和技术,让我感到惊叹。不过,我最后明白了各个部分是如何串联起来的。我不用Maya,所以得找其他方法来生成头发纹理。我试过很多其他的工具,但要想在合理的时间内轻松地生成毛发,并不顺利。

据我所知,通常游戏中的头发/毛发是用插片(Hair card)来做的,把发束(Hair clump)纹理映射在低模几何体上。然后会用特定的shader来实现深度、透明度、各向异性反射等多种效果。我们需要的纹理贴图的类型及Shader使用它们的方式,不一定适用所有的工作流程,这取决于Shader的运作和性能要求。我觉得,某些工作流要求一些特殊的贴图,而另外的工作流可能有时只是更改了贴图的命名而不是功能,这些会给美术师的理解造成混乱,起码刚开始我就中招了。 Hair & Fur 工具可提供10种不同贴图(含衍生的,不算上全部可能的生成方式),基本能解决大部分的需求。

与此同时,我也在研究Substance Designer,特别是我对它的编程功能很感兴趣。看Vincent Gault的 FX-Map introduction stream (法语)视频时受到启发,我才真正开始把SD和头发纹理制作结合起来。那时我明白了,大部分的SD节点都是基于一组简化的原子节点,而FX-Map实际扮演着一个高级的屏幕设备角色,通过各种选项将任意位置的图案显示到纹理中。大多数能被函数驱动。将之用于迭代上,能使FX-Map节点成为一个可自由编程的内含纹理的生成器。我开始尝试实现了一个Bézier曲线,随后发现它能被用来生成头发/毛发纹理。

在此,我想感谢Allegorithmic公司的Nicolas Wirrmann,他帮我了解了SD的编程特性、优化技巧,给了我很多建议。Hair/Fur工具的研究离不开他的支持。

Hair & Fur工具的特点

7316fb4695aaa44e570e63e8e7ca9e42.png

9b6894a5b7176ea7a5729867d9c4a173.png

29da7af78e931f960092621799f88026.png

4c87c51c49e2babc8b47a39d0abc70ee.png

Hair & Fur工具允许用户去制作不同类型的头发和发型以用作插片,并生成PBR纹理贴图及其他头发shader所需的贴图。它还提供了tilling工具将发束合成较大的纹理,以减少渲染引擎的纹理处理量。这个工具也能用于2D创作(我们提供了样本)。Hair&Fur工具提供两种可供选择的上色模式。举个例子,深度贴图能在Hair & Fur工具外部上色,在SD或其他软件中上色。本文中,我提供了示例,模板(范本文件)和预设(基础设计),以便各位能快速做出各种发型。

虽然是在SD中运行,但因为大部分功能都内含于Substance工具中,所以你只需要你懂一点基础的Substance知识即可。Substance Academy上有一些不错的 SD的UI基础介绍 视频教程,Hair & Fur第一节教程视频中也包含了关于SD的UI介绍。

发束塑形Hair Clump Shaping)

头发纹理生成的难点之一在于:发型(含颜色)种类非常多,但又只能在功能集和用户界面上暴露很少的参数。所以每当我希望给一个特定的发型做一些支持时,都需要把它从特定的发型中抽象成更通用的,能方便用于其他项目。

我的解决办法是,从一些角度观察并给每一层提供塑形的功能。头发最外层叫做父级,代表发束或部分发束。通过这种方法,最多可生成10股父级"发丝(Strand)",每股父级发丝(Parent Strands)通常代表该发束的最主要特征。它们和相关发丝(子级发丝和子细分发丝)都可被单独定位、旋转和显示/隐藏。子级发丝(Child Strands)由父级发丝生成,数量不限,用于“填充”与父级发丝相关的发束区域。然后是子细分发丝(Subdivision strands),由父级或子级发丝生成。子细分发丝提供厚度,因为发丝会拧成一团,如卷发般有相同的形状。最后,相关的发丝(Related strand)共享一个组织关系,用于制作辫子或者绳索。

a5eebb58cbc1996ce4e943982e7ec70a.png

发丝的形状和设计,可用十多个控制点来调节。它们的位置可通过各种参数,或直接在SD的2D视图中移动位置来调整。

0e7e24654fc3eca304f044d8562c20af.gif
多种父级发丝的形状

c1100b151e43c7f1af3aa7826473bcbe.png
随意调整发束的形状

子级发丝可被整簇梳开或只是一部分被梳理。

f6d2e110ba7cdef84e4ceb10c0ce1dc5.png
梳发

图案管理(Pattern Management)

发丝由图案(位图或由SD生成的程序纹理)组成。默认有四种图案可供选择,用户也可用自己的图案,颜色或灰度图都行。图案的大小和分辨率可自选,图案能设置为跟随发束的形状变化或者不跟随,而且能动态调整尺寸,以减少计数生成连续的线条。动态尺寸也能用于制作绒毛效果,甚至可以设置一个极端值做成吸管。

d9900cbcdfcbf3bc16c6ddcc08577005.png

发丝的厚度,渐变和长度(Strand Thickness, Fading, and Length

可随意调控发丝(发根到发丝)的厚度。这个功能很适合做厚厚的头发,能做风格化的头发。

504c350b6628ec1c71dcdd17c1b40a5d.png

发根至发尾的渐变效果可应用于多张贴图中的发丝中,效果取决于用户,可以设置为均匀的渐变,或随机不均匀的渐变。

d823a05f9b98f3723f8d8483ae85cccd.png

通过邻近因子(proximity factor),调整发丝的长度和对发根分组。

d28073dc5ad788fd609c5d6ddd9a93dd.gif
发丝长度变体和发根分组(Root grouping)

子细分发丝(Subdivision Stands)

子细分发丝由父级或子级发丝生成,一般非常靠近它们的子级发丝,能增强厚度感。用户通过定义子细分发丝的“扩散范围(spreading space)”以控制子细分发丝的分散程度,深度多少都会受它们的子级发丝影响。子级发丝的深度能在“扩散范围”的侧面(侧面深度)处衰减,辫子利用此功能可实现圆滑的效果。一些细分发丝可能是杂碎的,飘散在“扩散范围”之外,能实现头发的飘逸感。子细分发丝可随机分布于其子级发丝间,可实现更丰富的表现。

9206e2d5798ffc833f01d3c75e737bbe.png

调制(Modulation

当和相关的发丝(Related Strands)关联时,调制能用于生成波浪/卷发和辫子/绳子。有两个调制函数可供使用,正弦(有变形)和三角形,后者可用于非发型设计。用户可定义波的频率/幅度。通过使用频率调制,幅度可随频率随机变化。这些设置能增强真实感,每个卷的形状也不完全相同。

调制也能影响深度,从而实现3D效果,其位置是可调控的,且能与实际的发丝深度结合。调制幅度能从发根到发尖减弱。比如,可让发根的波浪度小于发尖。调制跟随发丝的走向,所以能用于设计任意方向的发丝,如圆形(卷发或丸子头)。

81a1250814dd2af1e7fc97623d65830c.png
多种可供选择的发丝调制

生成头发贴图(Texture Map Generation

Hair & Fur工具能生成多种贴图,能用于shader或2D创作。

df6e0b86a1ffd3dcefbb66f80e496054.png
  • 遮罩:二进制mask。把发丝从背景中分离出来。
  • Alpha(不透明):维持图案的不透明度,并支持发根到发尾的渐变效果。
  • ID (灰度/颜色):每股发丝代表在一定调控范围内的随机灰度或颜色。Shaders可用ID来区分不同的发丝,并将其应用于不同的效果。
  • 深度(高度):深度/高度图包含被深度配置文件(depth profiles)驱动的高度信息,可自动生成或者用户自己提供。深度贴图可被当成Shader的像素深度偏移来使用,实现头发的厚度感。也可用作其他目的,如镜面反射遮罩或强度。
  • 渐变梯度(Root map):类似于遮罩贴图,但用于控制发根处的渐变。能在发根使用可配置的渐变。Shader通过它来改变发根的颜色(如变暗)。
  • 颜色(漫反射/Albedo):Shader不一定总需要有颜色贴图。因为我们能从其他贴图或用户的参数中实时生成颜色贴图。但是,它对2D作品或需要此类输入的shader很有用。Hair & Fur工具提供了多种头发上色的方法,如可沿着发丝的长度(按长度着色),头发组(按组着色),深度驱动和多种模式组合进行上色。后文会详细说明。
  • Flow贴图 (方向):这是一张包含沿发束流动的发丝方向的矢量贴图。Shader可用这张贴图来驱动头发上的各向异性反射,使其跟随头发流动。Flow信息可基于每股发丝生成,也可以基于多股发丝全面生成(或两者中任选一种)。它还能生成一张定向的背景图(实心或使用扩张)。

92d2df837127dddf8024bd2865ca1ad0.png
  • 法线贴图:法线贴图是用SD节点从深度贴图中衍生得到的。并非所有shader都需要法线贴图。
  • 环境光遮蔽(Ambient Occlusion):也是从深度贴图中衍生得到的,不是所有shader都需要这张贴图。
  • 功能性(Utility)贴图:这张贴图通常不会被导出,但是会被用在头发的设计上。它的功能是,显示带有可选控制点覆盖的所有贴图,及Flow贴图,以便用户验证流动效果是否符合预期。

深度管理Depth Management

我们通过一个独立的深度配置文件(depth profile)来管理头发的深度。生成一张纹理,其中每列代表一个可以与发丝关联的不同深度信息。

深度配置文件是由如深度变化的频率/振幅等通用参数自动生成的。前10列深度配置文件纹理保留给父级发丝。可以常规/特定生成参数,或者使用用户提供的外部深度配置文件(用SD节点或其他软件生成)。

4e29a07769eba91e7ec2e87265655651.png

上色(Colorization

在Hair&Fur工具中,有两种上色模式:按长度或按分组。可二选一,也可组合使用。两种模式都用用户提供的颜色源纹理进行操作。按长度上色是指沿着头发的长度对发丝进行着色,而按组上色则是指把颜色分组至颜色源,并将它们适用于发丝组。两种模式能用多种混合模式进行组合,如“乘法,柔光,叠加”等等。

e3a956bcc33ebdc64302714b13765729.png

7e067b743552991e7e089712b1512f1a.png
在发丝长度颜色源上应用色调变化(按长度+分组方式)

按分组和按长度上色都能应用于头发组中:“父级”,“子级”或“相关发丝”(辫子)。按分组上色的话,每个父级和相关发丝(子级,细分)或每个子级和相关发丝(细分)都能使用不同的颜色组。对于辫子,每个辫子组件可用不同的颜色组。

84b61111c12a5aa877258dafff618ba9.png

颜色源纹理可有多种不同的组织形态,下面是一些示例和效果。

按长度上色通常是按行来组织颜色源,因为每一列代表发丝沿其长度的潜在颜色变化。颜色在横向不必是完全均匀分布,下图是通过调整亮度或沿着纹理宽度颜色实现的示例。

7d2ee220c2560923e1679930193f96b7.png

而按组上色,下图展示了如何利用颜色源形态来制作颜色组。在没有指定颜色组织的情况下,一个组由圆来定义,该圆的中心是随机选取的,半径可调节。对于水平或垂直向的颜色源,使用随机中心颜色和颜色变化方向上的范围来进行分组。一旦在颜色源中定义了一个组,便可在其中选择随机颜色并将其分配给“父级”,“子级”或“相关发丝”的发束。

7a3ed5422156fbc0d680f842727abc3e.png

fd99995afd034fb9b2d7c61db68fbe6b.png

我们也可以不使用上色功能进行着色。以下是用一个SD节点对深度贴图进行上色的示例。

7351fde653bce1cae89d2b89687ff770.png

发型(Hairstyles

cc6b7973b08e38567628a8b5b0617b28.png

Hair & Fur工具能生成多种发型:直发,波浪,烫发,大卷,辫子(绳索)以及丸子头。但需注意,目前它仅能生成纹理,所以一般在发片上使用如辫子或大卷发的设计来实现小的特点。对于较大的网格,我们要3D定位映射(如对编织物进行隔行扫描)以获得更真实的效果。所以头发纹理不必弄成辫子形状,直发就行,因为3D模型可以处理辫子设计。

辫子能从不同的角度决定调制的频度和幅度、组件之间的空隙、整体形状,以及当被其他组件压下后辫子被压扁的程度,增加头发的飘逸感等等。

407f9344a5f4494bbc5fa9c43d28bb09.png

2426f0232c4326f7ec3f3f61f626f048.png

我们可以通过多种方式来调整大卷发的厚度、深度及形状设计。

044e860f71446a87d02ae3f8ff7c9c19.png

Tiling

关于头发插片,在游戏中,为了减少引擎的纹理数量,开发者通常会把几种发丝组合成一张较大的纹理。为此,我们会提供tilling工具:

  • Tiler(灰度和彩色):平铺(tile)一种纹理,灰度或颜色,如生成一张tiled深度贴图或tiled Flow贴图。
  • Global Tiler:一次性平铺几种类型的纹理。即,一次性平铺好头发生成器实例的所有类型的发丝。还可以为tiled Flow贴图生成定向背景。
  • AutoCrop:从一个视角比率裁减发束纹理的功能。

这些Tiling工具不仅可以处理头发纹理,还能用于组织图集(Atlases)。

ae00a11e907ec6cd03efa18fdd44e61e.png
利用Global Tiler生成的贴图纹理

Tiling工具允许用户设置输入(将发束纹理tile,通常为正方形)和输出的长宽比(此处为矩形2:1纹理)。我们能同时操作所有发束的间距/大小/偏移,以此来快速得到一个平铺好的纹理。然后,我们可单独定位/旋转/调整发束的大小,需要进一步调整。请注意,在此处理过程中,输入的发束永远不会被放大,各种大小调节都会被组合,然后在原发束上只展示缩小的结果,以此来保证纹理的品质不受损失。

5efe37bbda26028c3ed55db54c35c85b.gif

程序化生成纹理的优势(Benefits of Procedural Texturing

程序化生成头发纹理的优势:

  • 程序化生成允许用户独立处理影响头发某些方面的设置,同时将它们与其他头发属性的设置无损地组合在一起。我们可用特殊的方式对发束进行造型,并检查将它们变成卷发,小波浪或直发时的样子,而无需调整其他发束的设置。

4d2cd747a08dae0963d4b494a29fe006.png
  • Hair & Fur 参数控制固定和基于随机的设置。后者生成随机值,和用户可调控的随机种子相关。这意味着当随机种子变化时,随机值也会被修改。如此一来,通过简单地调节滑块,便可根据已有的设计创建出数千种变体,查看并选择我们喜欢的变体。此外,重置给定的随机种子值,也总能得到重置的完全相同的设计,可将其保存为“预设”,再重新打开。
  • 我们可以创建一个包含不同设计的预设库,做为创新的基础。
  • 不受分辨率的限制。我们可做一张8K的头发纹理,表现出更多的细节。如果将其他纹理tile到一个普通的纹理贴图中,则可以使用1K或更小的相同设计。
  • 3D可视化预览效果,有利于深度校准。
  • 无需烘焙,所见即所得。
  • 通过结合Hair & Fur与Substance Designer的功能,可提高对可能性的处理。在SD中,能用多种方式对纹理进行预处理或后处理。
  • 如果由于某种原因导致无法使用单个头发生成器实例进行特殊设计,则可用专门的SD混合节点组合多个实例输出。

0aefaee9bf76c4ade5d321da1347c70f.png

在SD中集成(Integration into Substance Designer

Substance Designer是一个程序化纹理生成器,很适合生成Hair & Fur。其优势在于模块化,无损工作流及与毛发生成器结合使用的其他功能,给我们的创造带来了更多可能。以下是与SD交互的功能实现列表(非详尽)。

  • 用户可用自己的图案来绘制发丝,图案可由SD节点或外部应用程序生成。
  • SD节点可生成颜色渐变来为上色功能提供颜色源。在传递到头发生成器之前,通过任意SD节点对这些颜色源进行调整,以调节亮度/对比度/饱和度/颜色变化/变形等等。
  • 在传递到Hair&Fur之前,可使用任意的SD节点处理深度配置文件,通过这种方式可创建出许多效果,而头发生成器本身无法进行深度文件配置。
  • 由于SD具有的程序化生成属性,在导入Hair & Fur工具前,可调整节点并可视化查看实时效果。所以,我们能在2D或3D视图中直接查看头发结果,并同时更改SD节点上的颜色或深度信息。
  • 输出贴图在做好后,还能进一步处理和做混合。如,使用“乘法”操作混合“深度”和“颜色”贴图,通常在2D设计中能得到比较好的效果。
  • 2D美术师可用Blend节点将头发覆盖在角色图像上,实时修改发型设计,同时观察它在角色上的效果。
  • 使用SD属性及节点提供的所有选项(法线贴图算法选择,OpenGL或DirectX格式,各种AO属性等)来生成衍生贴图,例如法线贴图和AO贴图。
  • 在使用适当的SD节点导出之前,可将贴图转换并打包到纹理通道中。
  • 使用OpenGL或iRay渲染器对头发纹理进行可视化和3D渲染(使用置换)。这有助于可视化并可修复深度效果,因为在2D视图中可能看得不那么明显。(如用于裁剪)。

4db91e68c93f7f85d9e41e77515faf2a.png

在应用中使用头发纹理(Hair Textures Usage in Applications

生成的纹理可用于3D应用程序中,有时也可用在2D中混合合适的贴图。请注意,样本展示了为2D制作的各种范例。

输出纹理通常能直接在3D应用程序(例如游戏引擎)中使用,无需进一步调整。如有需要,可在SD内部进一步处理输出或在外部应用程序中进行修改。该软件包提供一个Toolbag 模板和Unreal Engine 4 头发Shader和Toolbag的使用说明。

1dedaa8e44cf2802e90275dc5f421ad1.png

b40c61207030cf74bc79e42fb08e1008.png

最后,为了更便于用户使用,我会提供详尽的使用指南,其中涵盖了所有参数,各种概念以及制作特殊发型的技巧,这是一个免费的试用版应用程序。包含时长4小时(分为5节)的视频教程:

  • Part 1:Substance Designer简介,基本的Hair&Fur概念和输出贴图
  • Part 2:头发和毛皮参数
  • Part 3:上色
  • Part 4:在Toolbag和UE4中处理tilling和使用贴图
  • Part 5:7个头发设计范例

我迫不及待想知道美术师们是如何使用这些工具的!期待大家的反馈(如使用 Polycount thread), 我们会基于当前正在规划的功能,一起来增强和创建其他功能。相关进一步的更新,请关注我的 Twitter and Artstation 。Enjoy!

本文仅限于学习参考交流,请勿做商业用途和随意转载。

原文链接:

Hair & Fur: Procedural Hair Texture Generation Tool​80.lv
50456cdda6b70375f26485a28f45400e.png

译 Qinfei

2019/11/27

http://www.lbrq.cn/news/161353.html

相关文章:

  • 怎么做定制软件开发/系统优化软件排行榜
  • 做简单网站用什么软件有哪些内容/seo网站排名的软件
  • 郑州400建站网站建设/seo网页优化工具
  • 网站开发技术难度/网站收录软件
  • 相机网站建设策划书/seo到底是做什么的
  • 手机网站申请/友情链接交换软件
  • 襄阳seo站内优化/百度sem优化师
  • 徐州网站定制公司/seo系统培训课程
  • 做网站放哪个科目/员工培训课程
  • 做的物流网站有哪些/网络推广是做什么的
  • 学java做网站需要学什么/网站建设运营
  • 手机ppt免费制作软件/怎么seo网站关键词优化
  • wordpress 卡顿/优化疫情防控
  • 有关设计的网站/百度如何发布作品
  • 为什么做网站还要续费/常德seo招聘
  • 网站空间多少/优化网站排名如何
  • 公司电商网站开发合同范本/营销策划品牌策划
  • 网站建设基础教程视频/广州网络推广seo
  • 用层做的网站/免费加客源
  • 书店如何做网站/输入关键词搜索
  • 合肥专业做网站建设内容/谷歌浏览器网页版在线
  • 做网站复制国家机关印章/申京效率值联盟第一
  • 响应式网页需要设计几张图/长沙优化网站哪家公司好
  • akcms做的网站/百度seo优化关键词
  • 长安网站建设培训机构/网络建站公司
  • 建设汽车行业网站/网站怎么优化自己免费
  • 网站制作需要什么人员/杭州百度快照推广
  • linux主机做网站/网络销售网站
  • asp.net商务网站 包括哪些文件/临沂seo推广外包
  • 做dj音乐网站/沈阳seo代理计费
  • 【AI智能体】Dify 基于知识库搭建智能客服问答应用详解
  • 小型客厅如何装修设计?
  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理
  • 【PTA数据结构 | C语言版】二叉树层序序列化
  • Redis作缓存时存在的问题及其解决方案
  • 破局与重构:文心大模型开源的产业变革密码