Вычисление расхождения вектора в GLSL (или градиента вектора)

У меня есть ситуация в GLSL, когда мне нужно вычислить расхождение вектора во фрагментном шейдере.

vec3 posVector;

Дивергенция математически определяется выражением

введите здесь описание изображения

Это скалярное произведение между вектором и градиентом.

Кто-нибудь как это вычислить?


person ammar26    schedule 19.06.2014    source источник
comment
Вы уже можете получить частную производную экранного пространства от posVector в GLSL относительно X и Y, используя dFdx и dFdy. Часть, касающаяся Z, заставляет меня думать, что это не сильно вам поможет.   -  person Andon M. Coleman    schedule 19.06.2014
comment
Да вот в этом проблема. Я тоже так же думаю, как рассчитать dFdz?   -  person ammar26    schedule 19.06.2014


Ответы (1)


Дивергенция вектора положения - это дивергенция поля вектора идентичности

F: ℝ³ -> ℝ³

F(r_) = r_

и div, который является константным и известным:

дел (r_) = 3.

person Solkar    schedule 20.06.2014