unity3d - HLSL / GLSL 高精度sqrt可行吗?
问题描述
声波图后处理 Math.Sqrt() 质量高,CPU 速度慢。在 Unity 游戏引擎上使用 HLSL 在 GFX 卡上速度快且质量低。它看起来像12位,大概是16位。
有没有办法在 GFX 卡上进行精确的sqrt()近似/等效?
这是代码,它是 HLSL
void surf (Input IN, inout SurfaceOutput o) {
float4 c = tex2D (_MainTex, IN.uv_MainTex);
c = sqrt(c);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
解决方案
将此行添加到您的着色器代码中:
#pragma fragmentoption ARB_precision_hint_nicest
推荐阅读
- javascript - 如何在 Angular 6 中保护会话和 cookie?
- powershell - 隐藏源脚本 PowerShell GUI
- excel - 提取两个给定日期之间的数据
- azure - 在 Debian9 上安装 Azure IoT Edge
- reactjs - npm 从反应开始错误
- wordpress - 我的主题字体有问题!!它显示不安全的内容被阻止。告诉我怎么修?
- c++ - 对于具有引用返回类型的搜索算法,默认返回值应该是什么?
- c++ - 如何从内存缓冲区加载张量流图
- docker - 如何在 Web 浏览器中运行 Kubernetes 服务?
- haskell - 用 Haskell 的 Parsec 解析浮点数