Внутренняя функция dot , на которую ссылается Damon , является реализацией кода математического точечного произведения.Я не очень хорошо знаком с OpenGL, поэтому я не уверен, каков точный вызов функции, но математически точечный продукт выглядит следующим образом:
С учетом vector a
и vector b
, 'dot' product a 'dot' b
дает скалярный результат c
:
c = a.x * b.x + a.y * b.y + a.z * b.z
Большинство современного графического оборудования (и, в данном случае, процессоров) способны выполнять операции такого рода за один проход.В вашем конкретном случае вы можете легко вычислить среднее значение с помощью точечного произведения, например, так:
highp vec4 = (1/3, 1/3, 1/3, 0) //or zero
Я всегда получаю 4-й компонент в однородных векторах и матрицах, по некоторым причинам перепутанных.
Это умножит каждый компонент theColor на 1/3
(а 4-й компонент на 0), а затем сложит их вместе .