Как я могу добавить светящийся эффект к линии, которую я рисую? Я использую OpenGL для Linux.
Как добавить светящийся эффект в линию для OpenGL?
Ответ 1
Вы можете реализовать эффект радиального размытия, описанный в Nehe Lesson 36. Основная идея состоит в том, чтобы сделать рисунок текстурой и сделать это N раз с небольшим смещением после каждого рендеринга, пока чертеж не будет готов к копированию в фреймбуфер.
Я написал небольшую демонстрацию, которая использует Qt и OpenGL. Вы можете увидеть исходный чертеж (без размытия) ниже:
На следующем рисунке показан эффект с эффектом размытия:
Я знаю это не так много, но это начало.
Ответ 2
Я тоже надеялся, что это очень простое решение, но, к сожалению, это немного сложно, по крайней мере, для новичка.
Способ свечения эффектов реализуется сегодня, независимо от API (D3D, OpenGL) с пиксельными/фрагментами-шейдерами. Обычно он включает в себя несколько проходов рендеринга, где вы визуализируете свою сцену, а затем визуализируете пропуск, где видны только "светящиеся объекты", затем вы применяете пиксельный пиксель и компилируете их вместе.
Подробнее см. ссылку, предоставленную @Valmond.
Изменить:
Следует добавить, что это может быть достигнуто при отсроченном рендеринге, где нормали, позиции и другая информация, такая как "индикатор свечения", передаются текстуре, то есть хранятся в разных компонентах текстуры. Затем шейдер будет считывать текстуры и делать вычисления молнии и эффекты последующей обработки за один проход, поскольку все данные, которые ему нужны, доступны из полученной текстуры.
Ответ 3
Проверьте это: http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch21.html
Он легко объясняет, как создавать эффекты свечения.
Ответ 4
Без использования шейдеров вы также можете попробовать визуализировать текстуру и сделать радиальное размытие. В качестве отправной точки просмотрите NeHe-Tutorials.