Jump to content
• Advertisement

# How to light a colored line or simple polygon?

This topic is 1843 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

## Recommended Posts

Advertisement

I'm guessing the transparent areas are just textures with some semitransparancy (alpha) in them

behind the line, you can draw a quad with a texture with the glow.

You'd actually need 3 quads, one for each endpoint and one for the middle. (the middle will be stretched to draw different length lines, and if you stretch the whole thing, the ends will get oblong and not look that good).

Then play a bit with alpha-value for blending them to get a nice glowy effect.

#### Share this post

##### Share on other sites

That is what is usually referred to as a 'bloom', and it is more or less just using a Gaussian filter to blur the colors.  There is a sample chapter about how a similar effect is used in the game Tron from way back in the original GPU Gems book, which you can find online now for free.  It tells you lots about how to implement such a system, and should get you on your way!

#### Share this post

##### Share on other sites
The reason I don't think it's a proper bloom, is the circular areas with double light intensity in the corners.

Looks very much like two layers of "glow-texture".

Also, not blurring is faster (even though modern mobile devices shouldn't have a problem) Edited by Olof Hedman

#### Share this post

##### Share on other sites

That is what is usually referred to as a 'bloom', and it is more or less just using a Gaussian filter to blur the colors.  There is a sample chapter about how a similar effect is used in the game Tron from way back in the original GPU Gems book, which you can find online now for free.  It tells you lots about how to implement such a system, and should get you on your way!

When I use the Gaussian filter to blur a line(1-2 pixels)  in the whole black background, the blurred line is dark and it's "glowing" range is small. Then I compose the tow lines, the final effect is not as clear as the game's. May be I missed something?

I haven't read the book, but I will check it later.

Anyway, thanks for your reply.

I'm guessing the transparent areas are just textures with some semitransparancy (alpha) in them

behind the line, you can draw a quad with a texture with the glow.

You'd actually need 3 quads, one for each endpoint and one for the middle. (the middle will be stretched to draw different length lines, and if you stretch the whole thing, the ends will get oblong and not look that good).

Then play a bit with alpha-value for blending them to get a nice glowy effect.

I have no idea with "a texture with the glow", could you give me some examples? Or you can tell me where I can find the texture? (I have already "googled" it, but can't find something useful.)

Thanks a lot.

#### Share this post

##### Share on other sites
1-2 pixels is too little for a bloom, you need to use a bigger kernel. A way to increase the kernel "for free" is to do the blurring on a downscaled image and finally draw a re-upscaled overlay. This can also improve performance.

Here's a image you can use for the fake bloom:

Or you could do it procedurally in a pixel shader like so:

float fade(float2 uv)
{
float2 radius = uv * 2 - 1;           // de-normalize tex-coords
return saturate(1 - length(radius));  // fade according to distance to center
}


Then use this this value e.g. for an alpha. Give it a tint for the desired color and blend additively (or alpha-additively).

This is what the tex-coords should look for the three quads.

(0,0)  (0.5, 0)       (0.5, 0)   (1,0)
..+--------+--------------+---------+
..|........|..............|.........|
..|........|..............|.........|
..|........|..............|.........|
..|........|..............|.........|
..+--------+--------------+---------+
(0,1)  (0.5, 1)       (0.5, 1)   (1,1)

I'm with Olof, this looks like a fake bloom.

#### Share this post

##### Share on other sites

When I use the Gaussian filter to blur a line(1-2 pixels) in the whole black background, the blurred line is dark and it's "glowing" range is small. Then I compose the tow lines, the final effect is not as clear as the game's. May be I missed something?

I haven't read the book, but I will check it later.

Anyway, thanks for your reply.

Can you post a screenshot of what you are getting?  I think we could easily work through the issue.  I also think it would be worth your while to check out that chapter - even if you just skim through it, there is some good information in there.

#### Share this post

##### Share on other sites

Can you post a screenshot of what you are getting?  I think we could easily work through the issue.

This is the screenshot: http://flic.kr/p/eDFLwx

I do this in GIMP:
1. I begin with a black background(layer 1).
2. Then draw the red(255, 0, 0) line (4 pixels) in the layer 2.
3. Copy layer 2 to layer 3
4. Use gaussian fliter(kernel size is 10x10) to blur the layer 2.
5. layer 3's mode is addition.

The problem is:
1. The middle red line isn't as bright as I expected. I guess it didn't blend correctly.
2. The "glowing" is also too dark.

I also think it would be worth your while to check out that chapter - even if you just skim through it, there is some good information in there.

Thank you for the advice.

Edited by Sachs

#### Share this post

##### Share on other sites

1-2 pixels is too little for a bloom, you need to use a bigger kernel. A way to increase the kernel "for free" is to do the blurring on a downscaled image and finally draw a re-upscaled overlay. This can also improve performance.

Here's a image you can use for the fake bloom:

Or you could do it procedurally in a pixel shader like so:


float fade(float2 uv)
{
float2 radius = uv * 2 - 1;           // de-normalize tex-coords
return saturate(1 - length(radius));  // fade according to distance to center
}


Then use this this value e.g. for an alpha. Give it a tint for the desired color and blend additively (or alpha-additively).

This is what the tex-coords should look for the three quads.

(0,0)  (0.5, 0)       (0.5, 0)   (1,0)
..+--------+--------------+---------+
..|........|..............|.........|
..|........|..............|.........|
..|........|..............|.........|
..|........|..............|.........|
..+--------+--------------+---------+
(0,1)  (0.5, 1)       (0.5, 1)   (1,1)

I'm with Olof, this looks like a fake bloom.

I got it! This method is easy and effective. Thanks a lot.

#### Share this post

##### Share on other sites

• Advertisement

### Announcements

• Advertisement
• ### Popular Tags

• Advertisement

• 11
• 20
• 12
• 10
• 38
• ### Forum Statistics

• Total Topics
631401
• Total Posts
2999864
×

## Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!