Unity中纹理启用SRGB的坑

这篇具有很好参考价值的文章主要介绍了Unity中纹理启用SRGB的坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity中纹理启用SRGB的坑

__先说结论,在shader中不使用SRGB与Linear的转换函数的前提下,如果该纹理是Albedo、Emissive、Ramp或者其它颜色贴图,建议勾上SRGB,如果是Normal、Mask、Metallic等数据纹理,不需要勾SRGB。

Unity中纹理启用SRGB的坑

__在PS中,导出的纹理默认是SRGB,这个可以在首选项中看到。
Unity中纹理启用SRGB的坑
__开启SRGB,没有使用SRGB与Linear的转换函数。
Unity中纹理启用SRGB的坑
__关闭SRGB,没有使用SRGB与Linear的转换函数。
Unity中纹理启用SRGB的坑
__开启SRGB,使用SRGB与Linear的转换函数。
Unity中纹理启用SRGB的坑
____关闭SRGB,使用SRGB与Linear的转换函数。
Unity中纹理启用SRGB的坑
__很明显,只有第1个和第4个是正确的(看脸! )。

__这两种情况该怎么选择呢,一般情况下是勾上SRGB,不用在Shader中使用转换函数,因为勾上SRGB后纹理会做预处理,相当于在Shader中使用了转换函数,这样做可以优化游戏性能(省了shader中转换函数的操作消耗)。其他情况本人小白还没有遇到过,应该在自定义管线那部分可能会涉及到吧。

__最后,在一般情况下,如果在shader使用了转换函数,只需要使用SRGBToLinear,不需要在输出的时候使用LinearToSRGB,因为在Unity中最后输出的一步是DrawDynamic。
Unity中纹理启用SRGB的坑

__这个步骤跑了一个pass
Unity中纹理启用SRGB的坑
来看一下这个pass做了什么。
Unity中纹理启用SRGB的坑
使用了LinearToSRGB转换函数,也就是说,unity在最后做了统一的处理,这样就不用每个pass中使用转换函数了,减少操作开销(少写代码 )。文章来源地址https://www.toymoban.com/news/detail-495604.html

到了这里,关于Unity中纹理启用SRGB的坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Blender——将模型及其所有纹理与材质导入unity

    前期准备 参考视频:7分钟教会你如何将Blender的模型材质导入unity_哔哩哔哩_bilibili 实验模型官网下载地址:Hoi An Ancient House Model free VR / AR / low-poly 3D model CSDN下载链接: 【免费】Blender三维模型-古代房屋模型(HoiAnAncientHouseModel)  对于常见的Blender文件,可以直接导入Unity,但

    2024年01月19日
    浏览(38)
  • Unity3D Shader系列之深度纹理

    这篇总结下场景扫描的效果。场景扫描背后的原理其实挺简单,先获取相机的深度图,再获取相机绘制的画面,然后从深度图中取出当前像素的深度值,如果深度值在我们扫描线的深度值的范围内,那么当前像素的颜色就为扫描线的颜色与原画面颜色的叠加。所以实现这个效

    2023年04月11日
    浏览(30)
  • 【Unity-UGUI控件全面解析】| RawImage 显示纹理组件详解

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:

    2024年02月08日
    浏览(35)
  • 【Unity】Gif图片播放插件(支持UI及模型纹理渲染两种模式)

    unity本身不支持GIF格式文件直接渲染, 因此一般的做法是通过加载图片,通过代码控制其循环播放、停止等,模拟动画效果,本文简单介绍一下某个现有开源工具,感谢开源作者。 1、unity3d Gif图片播放插件 支持移动设备 不需要System.Drawing 2、UnityShowGifDemo 打开项目demo关卡,直

    2024年02月17日
    浏览(54)
  • Unity 如何启用MSAA?

    抗锯齿对跑在性能受限的平台上的应用来说非常重要,因为使用这种技术可以让图像的边缘显得更加平滑,并减少毛边线下。 如果我们在项目中使用Forward Rendering,那么就需要在Quality Setting中启用MSAA。 启用MSAA的方法如下: Edit-ProjectSettings。  选择您的质量类别。 Quality-Ant

    2024年02月16日
    浏览(38)
  • unity发布WebGL遇到的坑(持续更新)

    1、unity默认字体在网页中不会显示 解决方法:自己新导入一个字体,使用导入的字体 2、之前打过包并运行过,后面又在unity中进行了修改,重新打包,运行发现还是修改之前的效果,虽然是新包, 解决方法:这是因为网页中有缓存, 点击浏览器右边的三个点,选择设置–隐

    2024年02月12日
    浏览(38)
  • Unity 创建/删除/启用/禁用组件的惯用方法

    1、创建组件: Unity 创建组件可以通过编辑器中的\\\"Add Component\\\"创建,或者代码动态创建:GameObject.AddComponentT(),如: 2、删除组件: Unity 删除组件可以通过编辑器中组件的“Remove Component”删除,或者代码动态,使用Destroy()或DestroyImmediate()方法,如: 3、启用/禁用组件: 对于

    2024年02月04日
    浏览(30)
  • Unity适配Android12所遇到的坑记录

    unity项目将targetSdk升级至32 遇到启动黑屏、热更新失效的问题 1、项目中舍弃了unity自带的splash(毕竟功能有限) 在Java层新加了SplashView Activity 升级到12后当需要切换到unity activity的时候,无法触发unity的OnApplicationPause以及OnApplicationFocus函数。 然后就无法执行后边的逻辑直接黑屏…

    2024年02月13日
    浏览(27)
  • Unity快速入门教程-创建并启用c#脚本

    提示:本篇文章主要提供新手入门学习,初次发文,多多指教 unity通过c#脚本构建项目逻辑关系,本篇介绍c#脚本创建,启用及其简单示例 提示:以下是本篇文章正文内容,下面案例可供参考 在Project窗口依次单击右键–Create–C#Script,创建脚本,假设命名为【Test】。

    2024年02月11日
    浏览(40)
  • [Unity]将所有 TGA、TIFF、PSD 和 BMP(可自定义)纹理转换为 PNG,以减小项目大小,而不会在 Unity 中造成任何质量损失

    如何使用 只需在“项目”窗口中创建一个名为“编辑器”的文件夹,然后在其中添加此脚本即可。然后,打开窗口-Convert Textures to PNG,配置参数并点击“Convert to PNG! ”。 就我而言,它已将某些 3D 资源的总文件大小从 1.08 GB 减少到 510 MB。 只要禁用“Keep Original Files”或将项

    2024年02月02日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包