XaeroX
Crystice Softworks
Регистрация: 05.09.2008
Адрес: Новосибирск
Возраст: 38
Сообщения: 9,254
|
2 Qwertyus:
Конечно, ничего сложного.
Нагугли функции чтения картинки нужного формата в массив байтов и записи из массива байтов.
Потом напиши сам операцию dot3. Это совсем просто, как-то так:
dot_pixel = (normal_pixel.r * 2 - 1) * light[0] + (normal_pixel.g * 2 - 1) * light[1] + (normal_pixel.b * 2 - 1) * light[2];
Ну а потом примени дот:
diffuse_pixel.r = diffuse_pixel.r * dot_pixel;
diffuse_pixel.g = diffuse_pixel.g * dot_pixel;
diffuse_pixel.b = diffuse_pixel.b * dot_pixel;
В цикле нужно пробежаться по всем пикселям.
В light прописываешь направление на источник света в локальном пр-ве текстуры, ну например (1, 1, -1).
Всё, пожалуй.
|