[Unity] ShaderGraph实现伪室内效果,性能大解放

这篇具有很好参考价值的文章主要介绍了[Unity] ShaderGraph实现伪室内效果,性能大解放。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用版本为:2023.1.19f1 

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

更详细的实现逻辑及步骤参考Mert Kirimgeri的视频:

UNITY SHADER GRAPH with Fake Interiors Shader (youtube.com)

OS:这简直是个降低性能的天才技术!!!

目录

一、构建虚拟立方体

 二、切线空间与视角射线

 三、赋予贴图

四、天空盒环境反射

五、两侧空间与插值混合

七、最终效果 

八、文件下载

一、构建虚拟立方体

        首先新增一个Vector 2(Tiling)用来定义房间的数量,并与UV连接于Tiling And Offset。如下图所示,X为横向房间数,Y为纵向房间数。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity
此为Tiling最终效果演示

        PS:如果是单间房效果,那直接这样也行。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

         在此基础上,添加一个虚拟立方体公式[会用就行],并将参数混合并传出。此处新增一个Float(Depth)来控制房间深度。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity
为了节省空间看着干净,没用的窗口视图都折叠了。
框选要成组的节点,右键选择Group Selection就能成组,框内右键Cut就是解组删除。
[Unity] ShaderGraph实现伪室内效果,性能大解放,unity
此为Depth最终效果演示

        PS:公式的具体原理如下所示,有兴趣的可以去看完整论文InteriorMapping.pdf (proun-game.com)

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

 二、切线空间与视角射线

        构造一个判断视图空间的View Direction,记得要选切线,这样后期在赋予CubeMap的时候才不会产生变形。 乘以一个-1 Float是为了将贴图正过来,这个看视览颜色就知道了。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        这部分依旧是原论文中的数学理论,取切线空间的1/2用于判断当前视角在观察房间中的哪一侧。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        计算当前视线分别与X Y Z轴的相交角度,以最小相交角来判断当前视线位置。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        将计算出的轴线与切线空间相乘,并将结果与之前计算的虚拟立方体相乘。 如图所示,连接点注意同色箭头。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        将计算出的结果与Vector 3(-1,-1, 1)相乘,将除深度以外的边缘进行翻转 。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

 三、赋予贴图

        写了半天,终于到贴图了[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        记得给法线一个零值Float,保存一下回到场景,可以看到伪室内的效果已经有了。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

—— 现阶段连连看总览 ——

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

四、天空盒环境反射

        新建一个CubeMap(SkyReflectionCubeMap)用于反射窗户外侧的天空盒,同时与FresnelEffect节点相乘,用于塑造窗户边框的黑色阴影。另:Float(SkyReflection)节点用于控制天空盒反射强度。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        将天空盒反射的计算结果与室内贴图效果Blend混合,新增一个Float(Blend)控制混合强度,并选择Screen模式(不了解的可看[Unity] ShaderGraph实现一块破洞的裂纹玻璃-CSDN博客这篇的文末)。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

         如图所示,SkyReflectionCubeMap用于调整反射强度,Blend用于调整混合强度。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

五、两侧空间与插值混合

        如下图所示,新增点积控制,增强侧面空间反射感。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        给最终计算结果一个插值和平滑。 

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        新建Lerp节点,连接贴图、天空反射、与侧面平滑。如图所示,连接点注意同色箭头。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

        新建另一个Lerp节点,连接混合效果、前一个Lerp、侧面插值。如图所示,连接点注意同色箭头。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

七、最终效果 

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity真的已经尽力让他变得容易理解了,最终效果即如下所示。

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

[Unity] ShaderGraph实现伪室内效果,性能大解放,unity

八、文件下载

UnityShaderGraph实现伪室内效果资源-CSDN文库文章来源地址https://www.toymoban.com/news/detail-818642.html

到了这里,关于[Unity] ShaderGraph实现伪室内效果,性能大解放的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity ShaderGraph】| 快速制作一个 抖动效果

    前言 本文将使用ShaderGraph制作一个抖动效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧! 资源下载

    2024年02月03日
    浏览(37)
  • 【Unity ShaderGraph】| 制作一个 高级流体水球效果

    前言 本文将使用ShaderGraph制作一个 高级流体水球 ,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧! 资

    2024年02月08日
    浏览(38)
  • 【Unity ShaderGraph】| 快速制作一个 卡通阴影色块效果

    前言 本文将使用ShaderGraph制作一个卡通阴影色块的效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧

    2024年02月06日
    浏览(34)
  • 【Unity ShaderGraph使用雪碧图制作导航光效效果】

    效果: ShaderGraph的制作: shader中uv数和雪碧图的uv数对上就能出效果。 直接上代码: 代码绑定: 下面是雪碧图:

    2024年02月15日
    浏览(33)
  • 【Unity ShaderGraph】| 给模型添加一个 边缘光效果 实战

    前言 本文将使用Unity ShaderGraph制作一个 模型边缘光 的效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个

    2024年02月08日
    浏览(33)
  • 【Unity ShaderGraph】| 快速制作一个实用的 模型溶解效果

    前言 本文将使用ShaderGraph制作一个模型溶解的效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧! 资

    2024年02月08日
    浏览(41)
  • 【Unity ShaderGraph】| 如何快速制作一个 马赛克效果 实战

    前言 本文将使用Unity 的ShaderGraph制作一个 马赛克 的效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧

    2024年02月08日
    浏览(53)
  • 【Unity ShaderGraph】| 快速制作一个 钛金化不锈钢效果

    前言 本文将使用ShaderGraph制作一个 钛金化不锈钢 效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧!

    2024年02月08日
    浏览(39)
  • 【Unity ShaderGraph】| 快速制作一个 表面水纹叠加效果

    前言 本文将使用ShaderGraph制作一个表面水纹叠加效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个吧!

    2024年01月19日
    浏览(42)
  • 【Unity ShaderGraph】| 如何快速制作一个炫酷的 全息投影效果

    前言 本文将使用ShaderGraph制作一个 炫酷的 全息投影效果 ,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包