有時(shí)候會(huì)在Unity ShaderLab代碼中看到兩個(gè)float3或者float4的顏色做乘法:
col = col1 * col2
一直沒(méi)搞懂這個(gè)乘法是怎么算的,float3是3個(gè)float,兩個(gè)float3直接相乘,從計(jì)算結(jié)果來(lái)看既不是點(diǎn)乘也不是叉乘,網(wǎng)上搜了半天最后終于找到了正規(guī)叫法。
Unity里的這種顏色相乘做的是哈達(dá)瑪積(Hadamard product),是一種矩陣乘法,只能用于兩個(gè)行和列長(zhǎng)度都相同的矩陣,運(yùn)算方式非常簡(jiǎn)單,直接把兩個(gè)矩陣對(duì)應(yīng)位置上的值乘起來(lái)就行了:

image.png