[Unity] 【转载】Unity中的程序化随机纹理制作功能

查看:838 |回复:1 | 2019-11-25 14:09:51

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 源支始 于 2019-11-26 20:51 编辑

Snipaste_2019-11-26_20-50-58.jpg
你是否尝试过使用可平铺纹理覆盖大型表面,或者为网格添加精致细节?那么你一定发现使用较大平铺值会生成明显重复图案的问题。Unity Labs开发了一种新的纹理制作技术,它会避免此类问题的发生,这种技术称为程序化随机纹理制作(Procedural Stochastic Texturing)。





可平铺纹理是为3D场景添加细节的实用工具,但是使用可平铺纹理和细节贴图,为大型区域制作纹理或实现高度精细的表面时,平铺图案会重复明显而不自然。

通常减少重复图案要使用较大的纹理,或使用额外对象来隐藏明显的重复图案。本文中,我们会提供一个插件解决该问题,给纹理提供随机的外表效果,例如:生锈、长苔或损耗等效果。

下载插件:

https://github.com/UnityLabs/procedural-stochastic-texturing

如下图所示,左图是具有规则纹理的生锈金属材质,右图是使用新技术实现的效果,可以对比出右侧的效果更为自然而真实。

d4bd0e7a-0c5c-427f-976d-5f0c92912d16_640.jpeg


只要提供输入纹理,该插件就会程序化生成符合与输入外观匹配的无限纹理。

我们通过利用最先进的纹理混合函数来实现这种功能。该函数会处理输入纹理的修改版本,每个片段只需要三个纹理样本,并通过获取小型查找表来完成。

由于该插件避免了平铺,它可以使用较小纹理和较高等级的细节覆盖大型表面,而且不会出现任何重复的瑕疵。

使用StandardStochastic着色器

该插件提供了标准着色器的变体,它包含在Unity资源包中。当导入该资源包后,为材质选择StandardStochastic着色器。



StandardStochastic着色器的界面和标准着色器界面一样,在顶部添加了二个新控件,对应着二个必需的设置步骤:                                       


  • Stochastic Inputs(随机输入)菜单允许你指定对哪个输入纹理使用我们的技术,你可以设为任何对象或者具体纹理,例如:反照率贴图和法线贴图。
  • Apply按钮会为所选随机输入预先计算数据,更新材质,然后完成过程。对于每个输入纹理,该步骤都会在相同文件夹生成二个中间纹理。




补充说明

因为发现已有中间纹理时,插件会加载这些中间纹理并跳过生成过程,所以对原始纹理做修改时,需要在按下Apply按钮前删除已有的中间纹理,从而使它们重新生成。

当切换Standard着色器和StandardStochastic着色器时,参数会随着切换而传递。StandardStochastic(Specular镜面设置)着色器也为使用Specular工作流程的材质而提供。

下面的展示了使用小型(2562)输入纹理处理不同材质的原型制作效果。



带有反照率、法线和遮蔽纹理的木材细节贴图






带有反照率、法线、遮蔽和高度纹理的石块材质






带有反照率、法线、金属度/光滑度纹理的铁块材质




限制

该技术仅兼容可平铺的随机纹理和几乎随机的纹理,例如:从远处观察时类似随机噪声的纹理,它们通常是没有精确几何形状的自然外观材质。



参考信息

你是否对插件的工作原理感兴趣?请查看阅读最近发表的二个相关研究论文,它们是创作这个插件的构建基础。


反馈

本文中的插件是一个研究原型,它并未进入稳定的开发阶段,暂时无法保证此后对它进行长期维护或支持,但是你可以在Unity官方论坛进行讨论和提供反馈,以便我们确定后续的开发计划。





评分

参与人数 2元素币 +40 活跃度 +12 展开 理由
元素界王神 + 30 算是很强吧!
源支始 + 10 + 12

查看全部评分

2019-11-25 14:09:51  
 赞 赞 0

使用道具 登录

1个回答,把该问题分享到群,邀请大神一起回答。
2#
谢谢楼主分享~~~~~~~!!!!
回复 收起回复
2022-7-27 18:09:33   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

手机游戏引擎手游引擎Unity3D技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表