返回介绍

着色器运算精度设置

发布于 2021-07-10 18:17:39 字数 1793 浏览 1125 评论 0 收藏 0

通过设置着色器数值的精度可以更好的配置资源,可以根据需要,在不太影响渲染效果前提下,可以尽量降低运算精度。

lowpmediumphighp关键字

声明变量精度高低的三个关键子lowpmediumphighp

关键子精度
lowp低精度
mediump中精度
highp高精度

声明单个WebGL着色器变量的精度

// 低精度pos变量
lowp vec3 pos;
// 高精度浮点数变量k
highp float k;

precision关键字

通过precision关键字可以批量声明一些变量精度。

比如顶点着色器代码设置precision highp float;,表示顶点着色器中所有浮点数精度为高精度。

precision mediump float;

比如片元着色器代码设置precision lowp int;,表示片元着色器中所有整型数精度为低精度。

precision mediump float;

顶点和片元着色器不同类型数据默认精度

除了片元着色器浮点数的精度意外,WebGL系统其它的数值精通全部设置了默认精度,所以如果片元着色器中使用了浮点数类型的变量,比如声明精度,否则会报错。

片元着色器中设置浮点数变量精度,可以单独设置一个变量,也可以使用关键子precision批量设置。

//所有float类型数据的精度是lowp
precision lowp float;

顶点着色器默认精度

数据类型默认精度
int高精度hight
float高度hight
sampler2D低精度lowp
samplerCube低精度lowp

片元着色器默认精度

数据类型默认精度
int中精度mediump
float无默认值,如果片元着色器用到浮点数,注意一定手动设置
sampler2D低精度lowp
samplerCube低精度lowp

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文