mirror of
https://bitbucket.org/s_l_teichmann/mtsatellite
synced 2024-11-08 11:10:27 +01:00
Fix for issue #10. Set transparency level of pixels based on the alpha channel of colors.txt.
This commit is contained in:
parent
ecd599e44d
commit
80113b885f
5
SETUP.md
5
SETUP.md
|
@ -79,8 +79,9 @@ This contacts the `mtredisalize` server running at localhost port 6379 to fetch
|
||||||
need a `colors.txt` to map the block nodes to pixel colors of your map. The repository contains
|
need a `colors.txt` to map the block nodes to pixel colors of your map. The repository contains
|
||||||
[one](https://bitbucket.org/s_l_teichmann/mtsatellite/raw/default/colors.txt).
|
[one](https://bitbucket.org/s_l_teichmann/mtsatellite/raw/default/colors.txt).
|
||||||
If you want to have certain nodes to be transparent you can add `-transparent=true` to the
|
If you want to have certain nodes to be transparent you can add `-transparent=true` to the
|
||||||
options. In this case if the colors from colors.txt do have a forth color component with a numerical
|
options. In this case if a color from colors.txt does have a forth color component the numerical
|
||||||
value lower than 255 (e.g 128) the corresponding pixels on the resultung tiles would be transparent.
|
value between 0 (fully transparent) and 255 (fully opaque) will be the base transparency of the
|
||||||
|
pixel. Every depth meter of the same material will reduce the transparency by 2%.
|
||||||
See `mtseeder --help` for all options.
|
See `mtseeder --help` for all options.
|
||||||
|
|
||||||
The `-workers=` option and the `GOMAXPROCS=` environment variable are completely optional but very useful
|
The `-workers=` option and the `GOMAXPROCS=` environment variable are completely optional but very useful
|
||||||
|
|
|
@ -113,11 +113,13 @@ func (colors *Colors) BlendColors(span *Span, col color.RGBA, pos int32) color.R
|
||||||
if curr == nil {
|
if curr == nil {
|
||||||
return col
|
return col
|
||||||
}
|
}
|
||||||
const scale = float32(1) / float32(100)
|
const scale = float32(1) / 100
|
||||||
for ; curr != nil; curr = curr.Next {
|
for ; curr != nil; curr = curr.Next {
|
||||||
// At least 50% attenuation + 2% extra for each depth meter.
|
c := colors.Colors[curr.Value]
|
||||||
factor := float32(min(100, 50+(curr.To-curr.From)*2)) * scale
|
// At least alpha channel attenuation + 2% extra for each depth meter.
|
||||||
col = BlendColor(colors.Colors[curr.Value], col, factor)
|
base := (int32(c.A) * 100) / 255
|
||||||
|
factor := float32(min(100, base+(curr.To-curr.From)*2)) * scale
|
||||||
|
col = BlendColor(c, col, factor)
|
||||||
}
|
}
|
||||||
return col
|
return col
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user