【问题标题】:Is there a double floating point data type in Godot shaders?Godot 着色器中是否有双浮点数据类型?
【发布时间】:2021-06-05 06:10:40
【问题描述】:

我正在尝试在 Godot 中使用着色器,我需要一个非常精确的计算(不仅仅是浮点数)。 Godot着色器中是否有可能有一个double?我搜索了文档,但一无所获...

编辑:我制作了一个 Mandelbrot 集合浏览器,并且在经过一些缩放后使用浮点数,图像会全部像素化,因为达到了精度限制,我认为使用双打我可以进一步放大不失品质。你可以查看我的代码herebtw

【问题讨论】:

  • 我不这么认为,很多 GPU 不支持双打。您能否更具体地说明您需要双打做什么?
  • 根据gpuinfo.org GL_ARB_gpu_shader_fp64doubles in OpenGL shaders71% 的 GPU 支持

标签: double shader precision godot


【解决方案1】:

Godot 不支持着色器中的 FP64,因为 OpenGL 3.3/OpenGL ES 3.0 不强制要求在 GPU 上支持它们。 GPU 上的 double 价格昂贵,而且在消费级 GPU 上通常会受到影响,这使得它们不适合大多数实时应用程序(尤其是需要以高帧速率运行的游戏)。

【讨论】:

  • 哦,好吧,当Godot采用Vulkan作为后端时,这可能吗?
  • 我对此表示怀疑,因为 Godot 的首要目标是满足游戏用例。即使使用 Vulkan,FP64 性能在消费级 GPU 上仍然存在缺陷。 Supporting double-precision floats for physics on the CPU side是另外一回事,4.0可能会实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 2012-02-21
  • 2012-07-15
  • 2015-02-20
  • 2011-04-06
  • 2018-05-30
相关资源
最近更新 更多