Skip to content

Commit

Permalink
Release 0.3.9 !
Browse files Browse the repository at this point in the history
  • Loading branch information
tommyettinger committed Sep 15, 2022
1 parent fa0aba0 commit cf13d00
Show file tree
Hide file tree
Showing 21 changed files with 208 additions and 147 deletions.
21 changes: 12 additions & 9 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.8"
api "com.github.tommyettinger:anim8-gdx:0.3.9"
}
```

Expand All @@ -57,7 +57,7 @@ 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.8:sources"`. The PNG-related code isn't available on GWT because
`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:
```xml
Expand Down Expand Up @@ -89,15 +89,18 @@ different API).
- This is Floyd-Steinberg error-diffusion dithering.
- It tends to look very good in still images, and very bad in animations.
- SCATTER and NEUE are mostly the same as this algorithm, but use blue noise to break up unpleasant patterns.
- SCATTER or especially NEUE are usually preferred.
- SCATTER or especially NEUE are usually preferred over this, as error-diffusion dithers go.
- BLUE_NOISE
- Blue noise, if you haven't heard the term, refers to a kind of sequence of values where low-frequency patterns
don't appear at all, but mid- and high-frequency patterns are very common. 2D blue noise is common in graphics
code, often as a texture but sometimes as a sequence of points; it is used here because most vertebrate eyes
employ a blue-noise distribution for sensory cells, and this makes blue noise appear natural to the human eye.
- This is probably a typical blue-noise dither; it uses a different blue noise texture for each channel, and one
texture that is shared across all RGB channels.
- BLUE_NOISE looks good for many animations because the dithered pixels don't move around between frames.
- This is mostly a typical blue-noise dither; it uses a different blue noise texture for each channel, but it also
uses a 8x8 Bayer matrix (the type used by PATTERN dither, just larger here) to adjust lightness.
- The combination of a Bayer matrix and blue noise disrupts both the spongy pattern of the blue noise and the
repetitive/linear artifacts of the matrix.
- BLUE_NOISE looks good for many animations because the dithered pixels don't move around between frames. This is
especially true for pixel art animations, where flat areas of one color should really stay that color.
- I should probably credit Alan Wolfe for writing so many invaluable articles about blue noise,
such as [this introduction](https://blog.demofox.org/2018/01/30/what-the-heck-is-blue-noise/).
- This also uses a triangular-mapped blue noise texture, which means most of its pixels are in the middle of the
Expand All @@ -106,17 +109,17 @@ different API).
- This may have some issues when the palette is very small; it may not dither strongly enough by default for small
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 to improve saturation's appearance.
behavior on small palettes. It changed again in 0.3.8 and 0.3.9 to improve saturation's appearance.
- CHAOTIC_NOISE
- Like BLUE_NOISE, but it will dither different frames differently, and looks much more dirty/splattered.
- This is an okay algorithm here for animations, but NEUE is much better, followed by SCATTER or PATTERN.
- 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.
- SCATTER
- A hybrid of DIFFUSION and BLUE_NOISE, this avoids some regular artifacts in Floyd-Steinberg by adjusting diffused
error with blue-noise values.
- This used to be the default and can still sometimes be the best here.
- Unlike DIFFUSION, this is quite suitable for animations, but some fluid shapes look better with CHAOTIC_NOISE or
- Unlike DIFFUSION, this is somewhat suitable for animations, but fluid shapes look better with BLUE_NOISE or
GRADIENT_NOISE, and subtle gradients in still images are handled best by PATTERN and well by NEUE and BLUE_NOISE.
- You may want to use a lower dither strength with SCATTER if you encounter horizontal line artifacts; 0.75 or 0.5
should be low enough to eliminate them (not all palettes will experience these artifacts).
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.8 API)</title>
<title>All Classes and Interfaces (anim8-gdx 0.3.9 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.8 API)</title>
<title>All Packages (anim8-gdx 0.3.9 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.8 API)</title>
<title>AnimatedGif (anim8-gdx 0.3.9 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.8 API)</title>
<title>AnimatedPNG (anim8-gdx 0.3.9 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.8 API)</title>
<title>AnimationWriter (anim8-gdx 0.3.9 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.8 API)</title>
<title>Dithered.DitherAlgorithm (anim8-gdx 0.3.9 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
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.8 API)</title>
<title>Dithered (anim8-gdx 0.3.9 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.8 API)</title>
<title>OtherMath.BiasGain (anim8-gdx 0.3.9 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.8 API)</title>
<title>OtherMath (anim8-gdx 0.3.9 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
4 changes: 2 additions & 2 deletions 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.8 API)</title>
<title>PNG8 (anim8-gdx 0.3.9 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 Expand Up @@ -667,7 +667,7 @@ <h3>write</h3>
colors in pixmap. When computePalette is true, if there are 256 or less colors and none are transparent, this
will use 256 colors in its palette exactly with no transparent entry, but if there are more than 256 colors or
any are transparent, then one color will be used for "fully transparent" and 255 opaque colors will be used. When
computePalette is false, this uses the last palette this had computed, or the 256-color "Haltonic" palette if no
computePalette is false, this uses the last palette this had computed, or the 256-color "Aurora" palette if no
palette had been computed yet.</div>
<dl class="notes">
<dt>Parameters:</dt>
Expand Down
Loading

0 comments on commit cf13d00

Please sign in to comment.