在GLSL中确定最小/最大向量的逻辑是什么?

34

我有点惊讶自己之前不知道这个,但承认自己还在学习从来不会有错 :)

在GLSL中有minmax 函数,根据它们的文档说明

返回两个值中较小/较大的一个。

但是当输入的值是向量时,如何确定最小值和最大值呢? 显然,(1, 1) 小于 (2, 2),但是 (1, 3)(4, -2) 的最小值和最大值是什么? 这个逻辑被正式描述在哪里?

1个回答

68

引用自我能找到的第一个来源(PDF),在第132页§8.3 Common Functions的顶部:

这些都是按组件操作的。描述是针对每个组件的。

几乎所有作用于向量但实际上只对标量有意义的函数都是按组件操作的。(包括abssignfloortruncroundroundEvenceilfractmodmodfminmaxclampmixstepsmoothstep等等)

因此,例如,(1, 3)(4, -2)的最小值是(1, -2)


7
太棒了!这正是我所假设的,但我很难找到文件来证实它。谢谢! - Toji

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接