环境
Unity : 2020.3.37f1
Pipeline : BRP
原因
因为美术发现有些贴图太糊,但是经过研究发现,mipmap0就是完全够精度的
但是不可能还要提升贴图的尺寸,因为经过多方咨询(咨询TA大佬)
发现是 unity 纹理一个 mipmapBias 的 import 属性,但结果设置了一样木有效果
最后TA大佬说,试试 shader 修改 tex2D => tex2Dbias,结果就OK了
Texture.mipmapBias 无效的原因在 unity 官方上有写:
- 使用了 MaterialPropertyBlocks 也不行
- 如果 Graphics API 是 metal, OpenGL ES 都不行,除非自己调整 shader
而我们项目 Graphics API 刚刚好是 OpenGL ES 所以没有效果

解決方案
将 float4 sample_val = tex2D(xxxMap, uv); 修改为 float4 sample_val = tex2Dbias(xxxMap, float4(uv, 0.0, -0.5); // mipmapBias : -0.5
因此对纹理的 mipmapBias import 属性设置是没有用的
只能在材质面板中添加一个 _xxx_mipmapBias 的参数
比如:_MainTex 的 mipmapB

文章讲述了在Unity2020.3.37f1版本中,使用BRP管线时遇到的贴图模糊问题。原因为mipmapBias设置无效,特别是在使用OpenGLES的GraphicsAPI时。解决方案是通过修改shader,使用tex2Dbias方法来调整mipmap级别。需要注意,过度的mipmapBias负偏移可能导致纹理cachemiss,影响渲染性能。文章提供了参考资料,包括Unity官方文档和其他相关教程。
最低0.47元/天 解锁文章
1043

被折叠的 条评论
为什么被折叠?



