OpenGL поплавковый буфер - PullRequest
       1

OpenGL поплавковый буфер

1 голос
/ 05 сентября 2011

Я пишу свой первый трассировщик лучей.Я хочу, чтобы это работало в режиме реального времени.Я хочу использовать OpenGL для отображения.Я хочу записать мой экран в буфер с плавающей запятой и отобразить буфер.Какое расширение и / или тип буфера мне нужно?

Заранее спасибо!

1 Ответ

3 голосов
/ 05 сентября 2011

Я пишу свой первый трассировщик лучей. Я хочу, чтобы это работало в режиме реального времени.

Амбициозный!

Я хочу использовать opengl для отображения. Я хочу записать свой экран в буфер с плавающей запятой и отобразить буфер.

OpenGL может читать напрямую из буферов с плавающей запятой, например,

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, data);

Но OpenGL может выбрать любой внутренний формат, соответствующий вашему выбору. Внутренний формат GL_RGB может быть любым, что может как-то хранить данные RGB. Вы можете быть конкретными о том, что вы хотите. Например, GL_RGB16 сообщает OpenGL, что вы хотите разрешение 16 бит на канал. Реализация может выбрать использование 24 битов на канал, поскольку это позволяет сохранять 16 битов. Но в конечном итоге реализация решает, какой это будет внутренний формат, основываясь на ограничениях, которые вы на нее накладываете.

Кадровые буферы с плавающей точкой и текстуры поддерживаются в OpenGL с помощью расширений GL_ARB_texture_float, GLX_ARB_fbconfig_float, WGL_ARB_fbconfig_float, но из-за проблем с патентами не все реализации OpenGL реализуют это (ATI и NVidia делают).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...