I wanted to have blinking buttons on mine sweeper app. It is a necessary function to make the app go far. How do I make a button blinking? I had no idea to implement it. I search the way to button becoming luminous on computer display. I learned the way is named bloom.
Double buffering for postprocess
I read some articles about bloom effect. I need to have some rendering buffers to produce a single image.
- to be rendered object on scene.
- to be rendered luminous object effect.
- to be shown the game scene which are mixed above two buffers.
First of all I have the way render scene on back buffer and copy it front buffer without side effect. Actually I did it on 2 months ago and replaced the app secretly.
Bloom effect and gaussian curve
The bloom effect is rendered with a lowpass filter. You render some objects which become luminous on blank render buffer. The all pixels are blurred by blending picked neighbor pixels. A pixel is effected by neighbor color with weight according to distance. How do I choose weight for a effecting color ? Lot of articles use weights from gaussian curve. It is called normal distribution. I thought also that It is reasonable to choose some weights from gaussian curve.
Applying bloom effect a button
I did render bloomed object and mixed it and render scene into final scene. The result did not satisfy me. It is difficult to see the object becoming luminous. I changed some parameter to blur effect again and again. But I was not satisfied the result. I thought the way to blur some object for about one day. I had an idea that I made luminous object little bigger than normal one. I rendered the little bigger object with blur effect. That was nice for me! I was happy to have nice rendering result.
Made darker than before
I had nice bloom effect. But old mine sweeper lighting is little brighter for bloom effect. It is difficult to see blinking buttons. Actually my wife said “You change a button color brighter than before are not you?” I was disappointed to hear that. So I had to change some light and color setting to be darker than before.
Changed initial game setting
I changed a game setting at starting the game. I would like to blink a button which you open safely. The game starting logic is changed.
- You can choose a button without being game over on first initial tap. This is new game logic.
- You are not in game over on first tab button. At Initial tapped button is always safe and all Ng locations are decided when initial tap. This is old game logic.
Before release the game with bloom effect
It was time to release the game. I checked some functions on my app site. I found the bug not to translate from English to Japanese with some lang setting option. I had to do some extra tasks to fixed it.
Bloom effected mine sweeper is out
Now You can play mine sweeper with bloom effect.