mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-03-04 06:34:48 +01:00
[Simple Noise] Add iterative scale and amplitude properties.
This commit is contained in:
parent
15f8f58a94
commit
69b982a10d
3 changed files with 38 additions and 23 deletions
|
@ -36,9 +36,15 @@ function Node_Noise_Simplex(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
|
||||
newInput(10, nodeValue_Rotation("Rotation", self, 0));
|
||||
|
||||
newInput(11, nodeValue_Float("Scaling", self, 2.));
|
||||
|
||||
newInput(12, nodeValue_Float("Amplitude", self, .5))
|
||||
.setDisplay(VALUE_DISPLAY.slider);
|
||||
|
||||
input_display_list = [
|
||||
["Output", false], 0,
|
||||
["Noise", false], 1, 10, 2, 8, 3, 9,
|
||||
["Advances", true], 11, 12,
|
||||
["Render", false], 4, 5, 6, 7,
|
||||
];
|
||||
|
||||
|
@ -71,6 +77,9 @@ function Node_Noise_Simplex(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
var _clb = _data[7];
|
||||
var _ang = _data[10];
|
||||
|
||||
var _adv_scale = _data[11];
|
||||
var _adv_amplit = _data[12];
|
||||
|
||||
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth());
|
||||
|
||||
surface_set_shader(_outSurf, sh_simplex);
|
||||
|
@ -85,7 +94,10 @@ function Node_Noise_Simplex(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
shader_set_2("colorRanG", _clg);
|
||||
shader_set_2("colorRanB", _clb);
|
||||
|
||||
draw_sprite_ext(s_fx_pixel, 0, 0, 0, _dim[0], _dim[1], 0, c_white, 1);
|
||||
shader_set_f("itrAmplitude", _adv_amplit);
|
||||
shader_set_f("itrScaling", _adv_scale);
|
||||
|
||||
draw_empty();
|
||||
surface_reset_shader();
|
||||
|
||||
return _outSurf;
|
||||
|
|
|
@ -819,7 +819,7 @@ function Panel_Animation() : PanelContent() constructor {
|
|||
|
||||
if(sca != timeline_scale) {
|
||||
var mfb = (mx - bar_x - timeline_shift) / timeline_scale;
|
||||
var mfa = (mx - bar_x - timeline_shift) / ui(sca);
|
||||
var mfa = (mx - bar_x - timeline_shift) / sca;
|
||||
|
||||
timeline_shift_to = timeline_shift_to - (mfa - mfb) * timeline_scale;
|
||||
timeline_shift = timeline_shift_to;
|
||||
|
|
|
@ -15,7 +15,6 @@ varying vec4 v_vColour;
|
|||
|
||||
uniform vec2 dimension;
|
||||
uniform vec3 position;
|
||||
uniform int layerMode;
|
||||
uniform float rotation;
|
||||
|
||||
uniform vec2 scale;
|
||||
|
@ -26,19 +25,24 @@ uniform vec2 iteration;
|
|||
uniform int iterationUseSurf;
|
||||
uniform sampler2D iterationSurf;
|
||||
|
||||
vec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
|
||||
vec4 mod289(vec4 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
|
||||
vec4 permute(vec4 x) { return mod289(((x * 34.0) + 10.0) * x); }
|
||||
vec4 taylorInvSqrt(vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }
|
||||
|
||||
uniform int colored;
|
||||
uniform vec2 colorRanR;
|
||||
uniform vec2 colorRanG;
|
||||
uniform vec2 colorRanB;
|
||||
|
||||
uniform float itrScaling;
|
||||
uniform float itrAmplitude;
|
||||
|
||||
uniform float phase;
|
||||
|
||||
vec2 sca;
|
||||
float itrMax, itr;
|
||||
|
||||
vec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
|
||||
vec4 mod289(vec4 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
|
||||
vec4 permute(vec4 x) { return mod289(((x * 34.0) + 10.0) * x); }
|
||||
vec4 taylorInvSqrt(vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }
|
||||
|
||||
vec3 hsv2rgb(vec3 c) {
|
||||
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
|
@ -71,6 +75,7 @@ float snoise(vec3 vec) {
|
|||
|
||||
// Permutations
|
||||
i = mod289(i);
|
||||
|
||||
vec4 p = permute( permute( permute(
|
||||
i.z + vec4(0.0, i1.z, i2.z, 1.0 ))
|
||||
+ i.y + vec4(0.0, i1.y, i2.y, 1.0 ))
|
||||
|
@ -130,17 +135,13 @@ float simplex(in vec2 st) {
|
|||
|
||||
float amp = pow(2., float(itr) - 1.) / (pow(2., float(itr)) - 1.);
|
||||
float n = 0.;
|
||||
if(layerMode == 0) n = 0.;
|
||||
else if(layerMode == 1) n = 1.;
|
||||
|
||||
for(float i = 0.; i < itrMax; i++) {
|
||||
if(i >= itr) break;
|
||||
|
||||
if(layerMode == 0) n += snoise(xyz) * amp;
|
||||
else if(layerMode == 1) n *= (snoise(xyz) * amp) + (1. - amp);
|
||||
|
||||
amp *= .5;
|
||||
xyz *= 2.;
|
||||
n += snoise(xyz) * amp;
|
||||
amp *= itrAmplitude;
|
||||
xyz *= itrScaling;
|
||||
}
|
||||
|
||||
return n;
|
||||
|
@ -168,12 +169,14 @@ void main() {
|
|||
|
||||
if(colored == 0) {
|
||||
gl_FragColor = vec4(vec3(simplex(st)), 1.0);
|
||||
|
||||
} else if(colored == 1) {
|
||||
float randR = colorRanR[0] + simplex(st) * (colorRanR[1] - colorRanR[0]);
|
||||
float randG = colorRanG[0] + simplex(st + vec2(1.7227, 4.55529)) * (colorRanG[1] - colorRanG[0]);
|
||||
float randB = colorRanB[0] + simplex(st + vec2(6.9950, 6.82063)) * (colorRanB[1] - colorRanB[0]);
|
||||
|
||||
gl_FragColor = vec4(randR, randG, randB, 1.0);
|
||||
|
||||
} else if(colored == 2) {
|
||||
float randH = colorRanR[0] + simplex(st) * (colorRanR[1] - colorRanR[0]);
|
||||
float randS = colorRanG[0] + simplex(st + vec2(1.7227, 4.55529)) * (colorRanG[1] - colorRanG[0]);
|
||||
|
|
Loading…
Add table
Reference in a new issue