Skip to content

Commit

Permalink
Release 0.3.10 !
Browse files Browse the repository at this point in the history
  • Loading branch information
tommyettinger committed Oct 4, 2022
1 parent f809dc6 commit 92fcde8
Show file tree
Hide file tree
Showing 20 changed files with 157 additions and 89 deletions.
23 changes: 18 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ A typical Gradle dependency on anim8 looks like this (in the core module's depen
dependencies {
//... other dependencies are here, like libGDX 1.9.11 or higher
// libGDX 1.11.0 is recommended currently, but versions as old as 1.9.11 work.
api "com.github.tommyettinger:anim8-gdx:0.3.9"
api "com.github.tommyettinger:anim8-gdx:0.3.10"
}
```

Expand All @@ -57,9 +57,9 @@ You can also get a specific commit using JitPack, by following the instructions
commit, unless you are experiencing problems with one in particular.)

A .gwt.xml file is present in the sources jar, and because GWT needs it, you can depend on the sources jar with
`implementation "com.github.tommyettinger:anim8-gdx:0.3.9:sources"`. The PNG-related code isn't available on GWT because
it needs `java.util.zip`, which is unavailable there, but PaletteReducer and AnimatedGif should both work. The GWT
inherits line, which is needed in `GdxDefinition.gwt.xml` if no dependencies already have it, is:
`implementation "com.github.tommyettinger:anim8-gdx:0.3.10:sources"`. The PNG-related code isn't available on GWT
because it needs `java.util.zip`, which is unavailable there, but PaletteReducer and AnimatedGif should both work. The
GWT inherits line, which is needed in `GdxDefinition.gwt.xml` if no dependencies already have it, is:
```xml
``<inherits name="anim8" />
```
Expand All @@ -74,7 +74,9 @@ different API).
- GRADIENT_NOISE
- A solid choice of an ordered dither, though it may have visible artifacts in the form of zig-zag diagonal lines.
- This changed slightly in 0.2.12, and should have less noticeable artifacts starting in that version.
- It changed again in 0.3.10, and now essentially has no artifacts at the boundaries between large similar areas.
- A variant on Jorge Jimenez' Gradient Interleaved Noise.
- This is very similar to ROBERTS dither, but is a little stronger, usually.
- PATTERN
- A more traditional ordered dither that emphasizes accurately representing lightness changes.
- Has a strong "quilt-like" square artifact that is more noticeable with small palette sizes.
Expand Down Expand Up @@ -110,8 +112,11 @@ different API).
palettes, which makes it look closer to NONE in those cases. It does fine with large palettes.
- This changed in 0.2.12, and handles smooth gradients better now. In version 0.3.5, it changed again to improve
behavior on small palettes. It changed again in 0.3.8 and 0.3.9 to improve saturation's appearance.
- As of 0.3.10, this acts like ROBERTS and GRADIENT_NOISE, but is weaker than either of those (it is closer to using
the NONE dither mode than the other two are).
- CHAOTIC_NOISE
- Like BLUE_NOISE, but it will dither different frames differently, and looks much more dirty/splattered.
- This is much "harsher" than BLUE_NOISE currently is.
- This is an okay algorithm here for animations, but BLUE_NOISE is much better, followed by NEUE or PATTERN.
- This may be somewhat more useful when using many colors than when using just a few.
- It's rather ugly with small palettes, and really not much better on large palettes.
Expand All @@ -136,12 +141,20 @@ different API).
- NEUE may sometimes look "sandy" when there isn't a single good matching color for a flat span of pixels; if this
is a problem, SCATTER can look better.
- NEUE is the most likely algorithm to change in new versions, unless another new algorithm is added.
- BLUE_NOISE will likely look better in pixel art animations, but NEUE can look better for still pixel art.
- BLUE_NOISE, GRADIENT_NOISE, or ROBERTS will likely look better in pixel art animations, but NEUE can look better
for still pixel art.
- ROBERTS
- This is another ordered dither, this time using a softer, "fuzzy" pattern discovered by Dr. Martin Roberts that
distributes extra error well, but always adds some error to an image.
- The dithering algorithm is really just adding or subtracting a relatively small amount of error from each pixel,
before finding the closest color to that pixel's value with error.
- This is much like GRADIENT_NOISE, but milder, or BLUE_NOISE, but stronger.
- Most algorithms have artifacts that stay the same across frames, which can be distracting for some palettes and some
input images.
- PATTERN has an obvious square grid.
- BLUE_NOISE, SCATTER, ane NEUE have varying forms of a spongy blue noise texture.
- GRADIENT_NOISE has a network of diagonal lines.
- ROBERTS has a tilted grid pattern, approximately, of lighter or darker pixels.
- DIFFUSION tends to have its error corrections jump around between frames, which looks jarring.
- CHAOTIC_NOISE has the opposite problem; it never keeps the same artifacts between frames, even if those frames are
identical. This was also the behavior of NEUE in 0.3.0, but has since been changed.
Expand Down
2 changes: 1 addition & 1 deletion docs/apidocs/allclasses-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>All Classes and Interfaces (anim8-gdx 0.3.9 API)</title>
<title>All Classes and Interfaces (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="class index">
Expand Down
2 changes: 1 addition & 1 deletion docs/apidocs/allpackages-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>All Packages (anim8-gdx 0.3.9 API)</title>
<title>All Packages (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="package index">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>AnimatedGif (anim8-gdx 0.3.9 API)</title>
<title>AnimatedGif (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, class: AnimatedGif">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>AnimatedPNG (anim8-gdx 0.3.9 API)</title>
<title>AnimatedPNG (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, class: AnimatedPNG">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>AnimationWriter (anim8-gdx 0.3.9 API)</title>
<title>AnimationWriter (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, interface: AnimationWriter">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Dithered.DitherAlgorithm (anim8-gdx 0.3.9 API)</title>
<title>Dithered.DitherAlgorithm (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, interface: Dithered, enum: DitherAlgorithm">
Expand Down Expand Up @@ -144,9 +144,10 @@ <h2>Enum Constant Summary</h2>
</div>
<div class="col-first odd-row-color"><code><a href="#GRADIENT_NOISE" class="member-name-link">GRADIENT_NOISE</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Jorge Jimenez' Gradient Interleaved Noise, modified slightly to use as an ordered dither here; this can be,
well, noisy, but doesn't have different amounts of noise on different frames or different parts of an image
(which is a potential problem for <a href="#DIFFUSION"><code>DIFFUSION</code></a>).</div>
<div class="block">Jorge Jimenez' Gradient Interleaved Noise, modified slightly to use as an ordered dither here; this can have
subtle repetitive artifacts, but doesn't have different amounts of noise on different frames or different
parts of an image (which is a potential problem for <a href="#DIFFUSION"><code>DIFFUSION</code></a> and the other error-diffusion
dithers).</div>
</div>
<div class="col-first even-row-color"><code><a href="#NEUE" class="member-name-link">NEUE</a></code></div>
<div class="col-last even-row-color">
Expand All @@ -163,8 +164,12 @@ <h2>Enum Constant Summary</h2>
<div class="block">Thomas Knoll's Pattern Dither (with a 4x4 matrix), as originally described by Joel Yliluoma in
<a href="https://bisqwit.iki.fi/story/howto/dither/jy/">this dithering article</a>.</div>
</div>
<div class="col-first odd-row-color"><code><a href="#SCATTER" class="member-name-link">SCATTER</a></code></div>
<div class="col-first odd-row-color"><code><a href="#ROBERTS" class="member-name-link">ROBERTS</a></code></div>
<div class="col-last odd-row-color">
<div class="block">An ordered dither built around the lightness-dispersing R2 point sequence, by Martin Roberts.</div>
</div>
<div class="col-first even-row-color"><code><a href="#SCATTER" class="member-name-link">SCATTER</a></code></div>
<div class="col-last even-row-color">
<div class="block">This tries to subtly alter the more rigidly-defined error-diffusion dither of <a href="#DIFFUSION"><code>DIFFUSION</code></a> with a small
amount of triangular-distributed blue noise, and unlike <a href="#CHAOTIC_NOISE"><code>CHAOTIC_NOISE</code></a>, it doesn't introduce white
noise.</div>
Expand Down Expand Up @@ -226,14 +231,16 @@ <h3>NONE</h3>
<section class="detail" id="GRADIENT_NOISE">
<h3>GRADIENT_NOISE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Dithered.DitherAlgorithm.html" title="enum class in com.github.tommyettinger.anim8">Dithered.DitherAlgorithm</a></span>&nbsp;<span class="element-name">GRADIENT_NOISE</span></div>
<div class="block">Jorge Jimenez' Gradient Interleaved Noise, modified slightly to use as an ordered dither here; this can be,
well, noisy, but doesn't have different amounts of noise on different frames or different parts of an image
(which is a potential problem for <a href="#DIFFUSION"><code>DIFFUSION</code></a>). There's a sometimes-noticeable diagonal line pattern
in the results this produces, and in animations, this pattern appears in the same place on every frame, which
can be either desirable (small changes won't snowball into big ones) or undesirable (it makes the pattern
appear to be part of the image). Although <a href="#BLUE_NOISE"><code>BLUE_NOISE</code></a> is mostly similar, it has a "scaly" artifact
instead of the diagonal line artifact this can have. <a href="#BLUE_NOISE"><code>BLUE_NOISE</code></a> does have less noticeable patterns,
though, in many cases.</div>
<div class="block">Jorge Jimenez' Gradient Interleaved Noise, modified slightly to use as an ordered dither here; this can have
subtle repetitive artifacts, but doesn't have different amounts of noise on different frames or different
parts of an image (which is a potential problem for <a href="#DIFFUSION"><code>DIFFUSION</code></a> and the other error-diffusion
dithers). There's a sometimes-noticeable diagonal line pattern in the results this produces, and in
animations, this pattern appears in the same place on every frame, which can be either desirable (small
changes won't snowball into big ones) or undesirable (it makes the pattern appear to be part of the image).
Although <a href="#BLUE_NOISE"><code>BLUE_NOISE</code></a> is mostly similar, it has a "spongy" artifact instead of the diagonal line
artifact this can have. <a href="#BLUE_NOISE"><code>BLUE_NOISE</code></a> does have less noticeable small-scale patterns, though, for many
input images. This handles gradients quite well. For pixel art, you may want to reduce the dither strength to
0.5 or so.</div>
</section>
</li>
<li>
Expand Down Expand Up @@ -333,6 +340,18 @@ <h3>NEUE</h3>
Neue preserves both. This is currently the default dither.</div>
</section>
</li>
<li>
<section class="detail" id="ROBERTS">
<h3>ROBERTS</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Dithered.DitherAlgorithm.html" title="enum class in com.github.tommyettinger.anim8">Dithered.DitherAlgorithm</a></span>&nbsp;<span class="element-name">ROBERTS</span></div>
<div class="block">An ordered dither built around the lightness-dispersing R2 point sequence, by Martin Roberts. This is
similar to <a href="#GRADIENT_NOISE"><code>GRADIENT_NOISE</code></a>; both add or subtract from lightness at each pixel, but usually add a very
different value to each pixel than to any of its neighbors. Compared to GRADIENT_NOISE, this is milder,
softer, and may need larger changes to dither strength to get a noticeable effect. This is an ordered dither,
so it won't change what artifacts it shows across different frames of an animation (the behavior here is
usually desirable, but not always).</div>
</section>
</li>
</ul>
</section>
</li>
Expand Down
2 changes: 1 addition & 1 deletion docs/apidocs/com/github/tommyettinger/anim8/Dithered.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Dithered (anim8-gdx 0.3.9 API)</title>
<title>Dithered (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, interface: Dithered">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>OtherMath.BiasGain (anim8-gdx 0.3.9 API)</title>
<title>OtherMath.BiasGain (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, class: OtherMath, class: BiasGain">
Expand Down
2 changes: 1 addition & 1 deletion docs/apidocs/com/github/tommyettinger/anim8/OtherMath.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>OtherMath (anim8-gdx 0.3.9 API)</title>
<title>OtherMath (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, class: OtherMath">
Expand Down
2 changes: 1 addition & 1 deletion docs/apidocs/com/github/tommyettinger/anim8/PNG8.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>PNG8 (anim8-gdx 0.3.9 API)</title>
<title>PNG8 (anim8-gdx 0.3.10 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="declaration: package: com.github.tommyettinger.anim8, class: PNG8">
Expand Down
Loading

0 comments on commit 92fcde8

Please sign in to comment.