在OpenGL ES中缓存三角函数有意义吗?

大卫

我知道在GPU之前进行图形处理时,trig函数缓存非常流行,但是使用一维纹理查找表从OpenGL ES着色器中的预计算值中计算出sin / cos是否有意义?如果不需要超高精度,是否可以节省时间?

固体像素

这是那些“取决于”问题之一。

高精度任意sin()cos()特别往往是昂贵的操作,因为它们不是经常在显卡直接使用并获得全精度往往需要细化迭代的某一水平。因此,就个别而言,如果纹理化可以更快,也不会令我感到惊讶。

一些警告。首先,余弦照明的多数用途是基于单位长度向量之间的角度,所以你并不需要任意cos()-只要使用dot()其GPU是非常的有效。

其次,值得注意的是,如果您进行mediump精确计算,某些实现(特别是移动GPU)可能已经能够为您提供更快,更不准确的结果这将减少任何基线费用,sin()cos()在下面的逻辑。

剩下的问题实际上是的成本是否sin()比的成本好texture(),这很可能很大程度上取决于着色程序的其余部分以及目标GPU中的功能单元平衡。

  • 如果由于其他不相关的纹理操作,着色器已被纹理化性能所支配,则添加更多的纹理化将使其变慢,即使单个texture()调用的速度比还要快sin()
  • 如果您的着色器以算术(或执行sin()调用的任何单位)为主导,则可以通过将一些负载移到纹理路径上来提高性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

存储三角函数调用的结果是否有意义?

来自分类Dev

OpenGL:在OpenGL-ES外部可以接受三角带中的退化三角形吗?

来自分类Dev

OpenGL / GLUT照明没有意义

来自分类Dev

OpenGL / Glut照明没有意义

来自分类Dev

OpenGL / GLUT照明没有意义

来自分类Dev

Android OpenGl ES三角风扇

来自分类Dev

无法在OpenGL中绘制三角形

来自分类Dev

OpenGL计算三角导数

来自分类Dev

使用OpenGL ES在现实世界中绘制三角形

来自分类Dev

CSS三角形没有意义

来自分类Dev

CSS三角形没有意义

来自分类Dev

JPA中的三角函数

来自分类Dev

JPA中的三角函数

来自分类Dev

如何使用OpenGL ES绘制具有不同变换矩阵的多个三角形?

来自分类Dev

在OpenGL ES中绘制三角形风扇需要多少次绘制调用?

来自分类Dev

尝试在OpenGL中绘制带有三角形的复杂多边形时出现错误

来自分类Dev

OpenGL:创建彩色三角形

来自分类Dev

OpenGL不渲染三角形

来自分类Dev

OpenGL三角形邻接索引

来自分类Dev

OpenGL拒绝绘制三角形

来自分类Dev

无法使简单的OpenGL三角形旋转

来自分类Dev

OpenGL GLFW,三角形不渲染

来自分类Dev

OpenGL三角形旋转错误

来自分类Dev

OpenGL三角形未绘制

来自分类Dev

OpenGL三角形未渲染

来自分类Dev

Opengl使用哪种三角剖分算法?

来自分类Dev

Delphi OpenGL三角形不旋转

来自分类Dev

OpenGL绘制三角形

来自分类Dev

用OpenGL渲染意外的三角形