added readme
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Solid Noise Generator — Krita Plugin
|
||||
|
||||
A Krita plugin that generates solid Perlin noise at your canvas resolution. Supports configurable octave detail, scale, seed, and invert. Output is always contrast-stretched so the darkest pixel is pure black and the brightest is pure white.
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
1. In Krita, go to **Tools → Scripts → Import Python Plugin from File…**
|
||||
2. Select `solid_noise_plugin.zip`
|
||||
3. Restart Krita
|
||||
4. Go to **Settings → Configure Krita → Python Plugin Manager**, check **Solid Noise Generator**, click OK
|
||||
5. Restart Krita again
|
||||
6. Open the docker via **Settings → Dockers → Solid Noise Generator**
|
||||
|
||||
> **Manual install:** If you prefer, extract the zip and copy `solid_noise.desktop` and the `solid_noise/` folder into your Krita `pykrita` directory:
|
||||
> - **Linux/macOS:** `~/.local/share/krita/pykrita/`
|
||||
> - **Windows:** `%APPDATA%\krita\pykrita\`
|
||||
|
||||
---
|
||||
|
||||
## Controls
|
||||
|
||||
| Control | Description |
|
||||
|---|---|
|
||||
| **Octaves (1–16)** | Number of noise layers stacked together. 1 is smooth and cloud-like; 16 is highly detailed. Each octave doubles the frequency and halves the amplitude. |
|
||||
| **Scale** | Zoom level of the noise pattern. Higher values show more features across the canvas. |
|
||||
| **Seed** | Determines the random pattern. Same seed always produces the same result. Hit **Random** for a new one. |
|
||||
| **Invert** | Flips light and dark values. |
|
||||
| **Generate on new layer** | When checked, noise is painted onto a new layer so your existing content is untouched. |
|
||||
|
||||
---
|
||||
|
||||
## Performance
|
||||
|
||||
On first use the plugin compiles a small C noise kernel using `gcc` (available by default on Linux, and via Xcode Command Line Tools on macOS). This makes generation very fast — around 0.1–0.5 seconds at 1080p depending on octave count. The status bar shows `[C]` when the fast path is active.
|
||||
|
||||
If `gcc` is not found, the plugin falls back to a pure Python implementation automatically — same results, just slower.
|
||||
|
||||
---
|
||||
|
||||
## How it works
|
||||
|
||||
Perlin noise is computed using **fractal Brownian motion (fBm)**: multiple octaves of noise are summed, each at double the frequency and half the amplitude of the last:
|
||||
|
||||
```
|
||||
value = Σ 0.5^i × perlin(x × 2^i, y × 2^i)
|
||||
i=0..octaves-1
|
||||
```
|
||||
|
||||
After all octaves are accumulated, the result is **contrast-stretched** so the minimum value maps to pure black (0) and the maximum to pure white (255), guaranteeing full tonal range regardless of settings.
|
||||
Reference in New Issue
Block a user