Подтвердить что ты не робот

Как добавить светящийся эффект в линию для OpenGL?

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

4b9b3361

Ответ 1

Вы можете реализовать эффект радиального размытия, описанный в Nehe Lesson 36. Основная идея состоит в том, чтобы сделать рисунок текстурой и сделать это N раз с небольшим смещением после каждого рендеринга, пока чертеж не будет готов к копированию в фреймбуфер.

Я написал небольшую демонстрацию, которая использует Qt и OpenGL. Вы можете увидеть исходный чертеж (без размытия) ниже:

enter image description here

На следующем рисунке показан эффект с эффектом размытия:

enter image description here

Я знаю это не так много, но это начало.

Ответ 2

Я тоже надеялся, что это очень простое решение, но, к сожалению, это немного сложно, по крайней мере, для новичка.

Способ свечения эффектов реализуется сегодня, независимо от API (D3D, OpenGL) с пиксельными/фрагментами-шейдерами. Обычно он включает в себя несколько проходов рендеринга, где вы визуализируете свою сцену, а затем визуализируете пропуск, где видны только "светящиеся объекты", затем вы применяете пиксельный пиксель и компилируете их вместе.

Подробнее см. ссылку, предоставленную @Valmond.

Изменить:

Следует добавить, что это может быть достигнуто при отсроченном рендеринге, где нормали, позиции и другая информация, такая как "индикатор свечения", передаются текстуре, то есть хранятся в разных компонентах текстуры. Затем шейдер будет считывать текстуры и делать вычисления молнии и эффекты последующей обработки за один проход, поскольку все данные, которые ему нужны, доступны из полученной текстуры.

Ответ 4

Без использования шейдеров вы также можете попробовать визуализировать текстуру и сделать радиальное размытие. В качестве отправной точки просмотрите NeHe-Tutorials.