frio Posted November 8, 2023 Posted November 8, 2023 (edited) Effects->Render->Seamless Simplex Clouds Download: F_SeamlessSimplexClouds.zip Description: Since I make a lot of 3D model textures, basic fractal noise (Perlin, simplex, etc.) is great for natural looking details. The downside is that not many generative effects are seamless and hacking it into seamlessness after generating is messy and rarely works well, so here's a (Open)Simplex noise cloud generator that always creates a tiling texture. The effect appears quite similar to the built in Clouds effect but has slightly different parameters on top of the seamlessness. No blend mode selection here, sorry. The effect is rendered using the primary and secondary colors like Clouds. The clouds are also squished into the image/rectangle aspect ratio to stay seamless, but any rotated or non-rectangular selection won't be properly seamless. Demo image: Settings: Scale: much like Clouds, chooses the base scale. Detail: increases simplex noise octaves (i.e. how many smaller copies of the clouds are added up together), also increases rendering time. Roughness: increases how intense the detail is, has no effect at minimum (1.0) detail. Lacunarity: changes the frequency of the detail, each detail level is 1/lacunarity in scale compared to the previous one. Normalize color range: ensures the intensity can never go below 0 or above 1, or in other words, it is scaled by the number of detail levels. Lower contrast but more stable results as other settings change. Balance: biases the colors towards one end or the other. Contrast: compresses or expands the color range, the middle level stays put. Gamma: kind of like the middle output value on the Levels adjustment, biases the color curve towards one end or the other. Use static seed & Seed string: if you want to generate the same clouds on every call, check this and input any text (up to 32 characters) to lock the pattern. Randomize: if static seed isn't in use, randomizes the pattern. Notes: Uses the 4-dimensional OpenSimplex 2S algorithm: https://github.com/KdotJPG/OpenSimplex2/blob/master/csharp/OpenSimplex2S.cs Modified to have Fractional Brownian motion detail adjustment. 4D to 2D seamless adaptation: https://www.gamedev.net/blog/33/entry-2138456-seamless-noise/ Change log: Version 2.0, 2024-11-13: Some futureproofing, now requires Paint.NET 5.1 Added options: lacunarity, normalize color range, contrast Changed options: brightness renamed to balance, seed integer changed to seed string: a CRC32 hash is computed for the string and used as the seed integer About 40-50% faster at default settings Version 1.0, 2023-11-09: Initial release Edited November 13 by frio Version 2.0 3 4 Quote
lynxster4 Posted November 9, 2023 Posted November 9, 2023 Thanks for this @frio! I love the brightness slider. I have already used it in a composition. 👍😊 1 Quote My Art Gallery | My Shape Packs | ShapeMaker Mini Tut | Air Bubble Stained Glass Chrome Text with Reflections | Porcelain Text w/ Variegated Coloring | Realistic Knit PatternOpalescent Stained Glass | Frosted Snowman Cookie | Leather Texture | Plastic Text | Silk Embroidery Visit my Personal Website "Never, ever lose your sense of humor - you'll live longer"
frio Posted November 13 Author Posted November 13 (edited) Version 2.0 out now that Paint.NET 5.1 is. New features to bring it almost up to par to Blender's Noise texture node in fBm mode: lacunarity affects how the detail levels are scaled in relation to each other and normalize color range ensures the intensity never goes outside the 0-1 range, at least without doing any other color adjustments, by scaling it by the number of detail levels. Brightness renamed to balance since it feels weird to "increase brightness" when the second color is black and get a darker image. Added contrast to scale the colors away from/towards the middle point. The seed integer has been changed to a seed string since it's just easier to use that way: input up to 32 characters of any text, and it'll compute the seed number from that. As a bonus, also 40-50% faster on default settings in my benchmarks by being smarter about trigonometry and squeezing in tiny optimizations into the OpenSimplex2S library code. Edited November 13 by frio oh it's faster than what I wrote first 3 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.