How to add glowing effect to a line for OpenGL? [closed]

吃可爱长大的小学妹 提交于 2019-12-17 22:37:51

问题


How can I add a glowing effect to a line that I draw? I'm using OpenGL for Linux.


回答1:


You can implement the radial blur effect described on Nehe Lesson 36. The main idea is to render the drawing to a texture, and do that N times with a small offset after each render, until the drawing is ready to be copied to the framebuffer.

I've written a small demo that uses Qt and OpenGL. You can see the original drawing (without the blur) below:

The next image shows the drawing with the blur effect turned on:

I know it's not much, but it's a start.




回答2:


I too once hoped there was a very simple solution to this, but unfortunately it is a little complicated, at least for a beginner.

The way glowing effects are implemented today, regardless of API (D3D,OpenGL) is with pixel/fragment-shaders. It usually involves multiple render passes where you render your scene, then render a pass where only "glowing objects" are visible, then you apply a bloom pixelshader and compose them together.

See the link provided by @Valmond for details

Edit:

It should be added that this can be achieved with deferred rendering, where normals, positions and other information like a "glow flag" is rendered to a texture, i.e. stored in different components of the texture. Then a shader will read from the textures and do lightning computations and post-processing effects in a single pass since all data it needs is available from that rendered texture.




回答3:


Check this out : http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch21.html

It explains easily how to make glow effects.




回答4:


Without using shaders, you might also try rendering to texture and doing a radial blur. As a starting point check out NeHe-Tutorials.



来源:https://stackoverflow.com/questions/8293839/how-to-add-glowing-effect-to-a-line-for-opengl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!