for(i = 0;i<256;i++) {
redmap[i]=i/255.;
greenmap[i]=rand()%RAND_MAX;
bluemap[i]=1.0-i/255.;
}
glPixelMapfv(GL_PIXEL_MAP_I T0_R, 256, redmap); glPixelMapfv(GL_PIXEL_MAP_rT0_G, 256, greenmap); glPixelMapfv(GL_PIXEL_MAP_I~T0_B, 256, bluemap);
Если посчитаете нужным, можете самостоятельно включить в программу другой алгоритм формирования карты соответствия цветов. Функция отображения включает всего две операции - очистку экрана и передачу в буфер кадра значения кодов засветки из массива image.
void display() {
glClear(GL_C0L0R_BUFFER BIT);
glDrawPixels(n,m,GL_C0L0R_INDEX, GL_UNSIGNED_BYTE, image);
}
Глава И. Процедурные методы
11.9. Резюме В этой главе мы кратко познакомились с двумя новыми подходами к моделированию - физической моделью системы материальных частиц и языковыми методами моделирования графических образов. В обоих случаях важное место отводится технологии рекурсивного выполнения процедур, которая позволяет формировать графические образы с контролируемой степенью проработки деталей.
Основное достоинство процедурных методов формирования графических объектов - возможность управлять процессом создания примитивов для отображения конкретного набора объектов из всех имеющихся в сцене с учетом их характеристик именно в данной ситуации. Процедурные методы хорошо сочетаются с объектно-ориентированным подходом к созданию моделей реальных объектов и явлений. Поэтому следует ожидать интенсивное развитие этих методов уже в самом ближайшем будущем.
Объединение в единой системе информации о физической природе явлений с технологией компьютерной графики порождает совершенно новые технологии создания таких популярных в последнее время приложений, как компьютерная анимация в самых различных областях - от видеофильмов до научных исследований. Та система материальных частиц, о моделировании которой шла речь в этой главе, - лишь пример использования физических моделей в задачах компьютерной графики. Она позволила продемонстрировать, насколько широкими возможностями обладает подобная технология.