Я пытаюсь добавить зеркальные отражения в игру Stage3D, и это ПОЧТИ работает, но я не думаю, что достаточно хорошо разбираюсь в математике, происходящей на этапе фактического отражения.
У меня есть вектор входящего света и у меня лицо нормальное; Я знаю, что делать с результирующим вектором отражения (нормализовать, а затем произвести скалярное произведение с нормализованным вектором, указывающим на «камеру» игрока), но каковы коды операций AGAL для отражения исходного вектора света от лица? Я не могу понять это. Любая помощь приветствуется...
Логика отражения света для трехмерных зеркальных отражений
Ответы (1)
В отличие от GLSL с функцией Reflect(), в AGAL нет вспомогательных средств для этого. Но вы все равно можете рассчитать вектор отражения самостоятельно - даже справочная страница GLSL для reflect() упоминает формулу, используемую для расчета:
For a given incident vector I and surface normal N reflect returns the reflection direction calculated as I - 2.0 * dot(N, I) * N.
person
Varnius
schedule
08.10.2013
Спасибо за это. Мне также пришлось ограничить конечный скалярный продукт между 0 и 1; отрицательные значения по какой-то причине вызывали второй набор отражений.
- person moosefetcher; 09.10.2013