您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 2浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

为uniform变量添加hint类型提示

开发游戏的老王 发布时间:2019-09-01 08:08:17 ,浏览量:2

Godot官方对于hint的介绍非常简单:"Additionally, Godot provides optional shader hints to make the compiler understand for what the uniform is used"然后给出了简单的范例和可用hint列表。

按照官方文档的说法Godot Shader的hint主要是针对编译器(Compiler)的,会提示编译器变量用途并提供特定的默认值。使用中发现,部分hint在编辑器中也可以起到提示作用,下文仅针对第二种作用加以介绍。

在编写Godot Shader的时候常常要声明uniform变量,以供我们在编辑器中修改。Shader中很多类型的变量是“一专多能”的,比如vec4可以当rgba颜色也可以当普通的四维向量(x,y,z,d),某些时候我们可能只想把它当颜色用,这时编辑器中该属性旁要能直接出现调色盘该多好;再比如float变量,我们可能想把它的取值范围限定在10.0-100.0之间,这样我们在编辑器中就不会误填一个超出范围的值了。当你有类似需求的时候,就要用到Godot Shader提供的hint了。

先看一下,Godot 3.1版本为Shader提供的全部可用的hint

目标类型提示Compiler意义Editor意义vec4hint_color用做颜色用做颜色int, floathint_range(min,max [,step] )用作范围(最小值,最大值[,步长])用作范围(最小值,最大值[,步长])sampler2Dhint_albedo用作图片, 默认为白色无sampler2Dhint_black_albedo用作图片, 默认为黑色无sampler2Dhint_normal用作图片, 默认为法线无sampler2Dhint_white用作值矩阵,默认为全白值无sampler2Dhint_black用作值矩阵,默认为全黑值无sampler2Dhint_aniso用作flowmap, 默认为为向右无

使用范例

shader_type spatial;
uniform vec4 color : hint_color;
uniform float amount : hint_range(0, 1);
uniform vec4 other_color : hint_color = vec4(1.0);

效果 hint

小结 实际上在Editor中有作用的只有vec4hint_colorintfloathint_range。而sampler2D的所有hint都仅在Compiler中起作用。 此处如有理解不当请大家指正。

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0382s