Russian Qt Forum
Сентябрь 28, 2024, 18:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отрисовка и закраска методом Фонга  (Прочитано 5026 раз)
isidroalex
Гость
« : Июнь 22, 2010, 15:49 »

Ребята, интересует функция - которая будет выводить объект на экран, например куб. Но так, чтобы закраска поверхности - была моей функцией (мне нужно закрасить его по методу Фонга - если есть такая уже). С 3Д графикой не работал вообще...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Июнь 22, 2010, 16:46 »

Ребята, интересует функция - которая будет выводить объект на экран, например куб. Но так, чтобы закраска поверхности - была моей функцией (мне нужно закрасить его по методу Фонга - если есть такая уже). С 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 лет старше - это может быть неуместно  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.