Симулятор iOS GL_OES_standard_derivatives - PullRequest
2 голосов
/ 11 мая 2011

На iOS4 GL_OES_standard_derivatives поддерживается только на устройстве (из того, что я вижу при выводе расширений), есть ли возможность:

  1. Определить в фрагментном шейдере, поддерживается ли расширение или нет

  2. Если не поддерживается, есть ли у кого-нибудь код для dFdx и dFdy? Не могу найти что-нибудь найти в Google.

ТИА!

1 Ответ

1 голос
/ 30 мая 2011

У меня была такая же проблема для сглаживающих шрифтов SDM. Вы можете рассчитать аналогичные dfdx / dfdx по Перевод 2 2d векторов с использованием текущей матрицы преобразования:

vec2 p1(0,0); vec2 p2(1,1);

p1=TransformUsingCurrentMatrix(p1);
p2=TransformUsingCurrentMatrix(p2);

float magic=35; // you'll need to play with this - it's linked to screen size I think :P

float dFdx=(p2.x-p1.x)/magic;
float dFdy=(p2.y-p1.y)/magic;

затем отправьте dFdx / dFdy на ваш шейдер в виде униформы - и просто умножьте его на свой параметр, чтобы получить ту же функциональность, т.е.

dFdx(myval) теперь становится

dFdx*myval;
dFdy(myval)   dFdy*myval;
fwidth(myval) abs(dFdx*myval)+abs(dFdy*myval);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...