我有点惊讶自己之前不知道这个,但承认自己还在学习从来不会有错 :)
在GLSL中有min
和 max
函数,根据它们的文档说明:
返回两个值中较小/较大的一个。
但是当输入的值是向量时,如何确定最小值和最大值呢? 显然,(1, 1)
小于 (2, 2)
,但是 (1, 3)
和 (4, -2)
的最小值和最大值是什么? 这个逻辑被正式描述在哪里?
引用自我能找到的第一个来源(PDF),在第132页§8.3 Common Functions的顶部:
这些都是按组件操作的。描述是针对每个组件的。
几乎所有作用于向量但实际上只对标量有意义的函数都是按组件操作的。(包括abs
,sign
,floor
,trunc
,round
,roundEven
,ceil
,fract
,mod
,modf
,min
,max
,clamp
,mix
,step
,smoothstep
等等)
因此,例如,(1, 3)
和(4, -2)
的最小值是(1, -2)
。