если у тебя нормалкарта в тангентспейсе, то тебе нужно перевести источник света в тангент спейс как то так:
|
необяз, можно и тангент-нормалмапу переводить в обжектспейс, а потом применять N лайтов и прочие эффекты в обычном интуитивном обжектспейсе. я так делаю, но тут уж кому как нравится.
--
ddx/ddy позволяют примерно узнать, насколько изменится переменная на экране на следующем пикселе по x/y.
для нормали результат может выглядеть так:
http://www.gamedev.net/topic/599518-directx-ddxddy/
ну и собсно это можно юзать в некоторых случаях в качве TBN, имея только N, но гранёность будет.
есть на основе этого ещё более хитрозавёрнутый метод бампа через одноканальную карту высот и без TBN и без гранёности (но вблизи артефактово или медленно это фиксить):
http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf
http://www.rorydriscoll.com/2012/01/11/derivative-maps/