При разработке модели подумайте, насколько важна ее детализация. Можно потратить на модель много времени и труда, создавая модель тысячью и более полигонов, а пользователь и не заметит ее. Для примера можно взять игры типа CounterStrike, в которых на фоновые объекты практически не обращаешь внимания во время игрового процесса. Во многих случаях недостаток геометрической детализации хорошо компенсируется грамотной текстурой.
По аналогии с текстурами для моделей также можно ввести уровень детализации. Незачем выводить сотни полигонов, если в итоге они отобразятся в одну точку.
Минимизируйте обмен данных между обычной памятью и буфером кадра.
Постоянная подзагрузка текстур в видеопамять также снижает скорость вывода. Поэтому старайтесь минимизировать число текстур. Удобнее использовать одну текстуру для всей модели, а не несколько текстур для каждого полигона модели. Побочный эффект - возможность смены шкурки (skin) модели.
Во многих реализациях OpenGL функция gIColor работает быстрее, чем функция gIMaterial. Поэтому используйте текущий цвет для наиболее часто изменяемого свойства материала.
Если включена вертикальная синхронизация частоты смены кадров видеокарты с разверткой монитора, то значение fps не будет превышать текущей частоты монитора. Для отключения синхронизации можно воспользоваться расширением WGL_EXT_swap_control.
2. ФУНКЦИИ OpenGI
ChoosePixelFormat
Выбирает ближайший формат пикселя, указанный в структуре PIXELFORMATDESCRIPTOR, для указанного контекста устройства.
int ChoosePixelFormat
(
HDC hdc, // контекст устройства CONST PIXELFORMATDESCRIPTOR *ppfd ) ; Возвращаемые значения.
Индекс формата пикселя, 0 в случае ошибки.
Смотри также:
DescribePixelFormat, GetPixelFormat, SetPixelFormat.
DescribePixel Format
Сохраняет информацию об указанном формате пикселя контекста устройства.
int DescribePixelFormat (
HDC hdc, // контекст устройства
int iPixelFormat, // номер формата пикселя UINT nBytes, // размер структуры
LPPIXELFORMATDESCRIPTOR ppfd ) ; Подробнее о параметрах, ppfd
Структура, описывающая формат пикселя.
Возвращаемые значения.
Количество поддерживаемых форматов пикселей, 0 в случае ошибки.
GetPixelFormat
Определяет индекс выбранного формата пикселя в контексте устройства.
int GetPixelFormat (
HDC hdc ) ; Возвращаемые значения.
Значение индекса (от 1) выбранного формата пикселя, 0 в случае ошибки.
Смотри также:
DescribePixelFormat, ChoosePixelFormat, SetPixelFormat.
glAccum
Оперирует с буфером накопления.
void glAccum (
GLenum op, // операция
GLfloat value // значение ) ; Подробнее о параметрах, op
Определяет операцию над буфером накопления, может принимать одно из следующих значений:
• GL_ACCUM - получает RGBA значения из текущего буфера, выбранного для чтения. Каждая составляющая делится на 2п-1, где п - число битов на компоненту в том буфере. Полученное число находится в диапазоне от 0 до 1 и умножается на значение. Результат добавляется к соответствующей компоненте пикселя в буфере накопления, обновляя этот буфер;