Ребята, интересует функция - которая будет выводить объект на экран, например куб. Но так, чтобы закраска поверхности - была моей функцией (мне нужно закрасить его по методу Фонга - если есть такая уже). С 3Д графикой не работал вообще...
Вероятно имеется ввиду phong shading. Закраска выполняется для каждой точки:
float dot = L.x * N.x + L.y * N.y + L.z * N.z; // dot product (diffuse cosine)
final_color,red = diffuse_color.red * dot * light.red;
final_color,green = diffuse_color.green * dot * light.green;
final_color,blue = diffuse_color.blue * dot * light.blue;
где:
L (x, y, z) - вектор из точки в источник света (длина = 1)
N (x, y, z) - вектор нормали (перпендикудяр) к поверхности (длина = 1)
light (r, g, b) - цвет источника света
diffuse_color (r, g, b) - изначальный цвет объекта (напр куба) без учета освнщенности
final_color (r, g, b) - цвет объекта c учетом освнщенности
P.S. Конечнно, в обращении "ребята" нет ничего плохого. Но если собеседник на 20-30 лет старше - это может быть неуместно