Skip to content

Commit

Permalink
Merge pull request #106 from pajama/main
Browse files Browse the repository at this point in the history
more hlsl unity fixes
  • Loading branch information
patriciogonzalezvivo committed Oct 12, 2023
2 parents 0deb997 + c34cb3a commit e973093
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 57 deletions.
2 changes: 1 addition & 1 deletion filter/median/2D_fast5.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ MEDIAN2D_FAST5_TYPE median2D_fast5(in SAMPLER_TYPE tex, in float2 st, in float2
}
}

MEDIAN2D_FAST5_TYPE temp = MEDIAN2D_FAST5_TYPE(0.);
MEDIAN2D_FAST5_TYPE temp = MEDIAN2D_FAST5_TYPE(0.,0.,0.,0.);
MEDIAN_25(0, 1, 3, 4, 2, 4, 2, 3, 6, 7);
MEDIAN_25(5, 7, 5, 6, 9, 7, 1, 7, 1, 4);
MEDIAN_25(12, 13, 11, 13, 11, 12, 15, 16, 14, 16);
Expand Down
5 changes: 4 additions & 1 deletion filter/noiseBlur.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
#ifndef RANDOM_SCALE
#define RANDOM_SCALE float3(443.897, 441.423, .0973)
#endif
#ifndef RANDOM_SCALE_4
#define RANDOM_SCALE_4 float4(443.897, 441.423, .0973, 1.6334)
#endif
#include "../generative/random.hlsl"

#include "../sample.hlsl"
Expand Down Expand Up @@ -79,4 +82,4 @@ NOISEBLUR_TYPE noiseBlur(SAMPLER_TYPE tex, float2 st, float2 pixel) {
return rta / total;
}

#endif
#endif
127 changes: 72 additions & 55 deletions generative/random.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -20,107 +20,124 @@ examples:

#ifndef FNC_RANDOM
#define FNC_RANDOM
float random(in float x) {
#if defined(RANDOM_SINLESS)

float random(float x)
{
#if defined(RANDOM_SINLESS)
x = frac(x * RANDOM_SCALE.x);
x *= x + 33.33;
x *= x + x;
return frac(x);
#else
#else
return frac(sin(x) * 43758.5453);
#endif
#endif
}

float random(in float2 st) {
#if defined(RANDOM_SINLESS)
float3 p3 = frac(st.xyx * RANDOM_SCALE.xyz);
float random(float2 st)
{
#if defined(RANDOM_SINLESS)
float3 p3 = frac(st.xx * RANDOM_SCALE.xyz);
p3 += dot(p3, p3.yzx + 33.33);
return frac((p3.x + p3.y) * p3.z);
#else
#else
return frac(sin(dot(st.xy, float2(12.9898, 78.233))) * 43758.5453);
#endif
#endif
}

float random(in float3 pos) {
#if defined(RANDOM_SINLESS)
float random(float3 pos)
{
#if defined(RANDOM_SINLESS)
pos = frac(pos * RANDOM_SCALE.xyz);
pos += dot(pos, pos.zyx + 31.32);
return frac((pos.x + pos.y) * pos.z);
#else
#else
return frac(sin(dot(pos.xyz, float3(70.9898, 78.233, 32.4355))) * 43758.5453123);
#endif
#endif
}

float random(in float4 pos) {
#if defined(RANDOM_SINLESS)
float random(float4 pos)
{
#if defined(RANDOM_SINLESS)
pos = frac(pos * RANDOM_SCALE);
pos += dot(pos, pos.wzxy + 33.33);
pos += dot(pos, pos.wzyx + 33.33);
return frac((pos.x + pos.y) * (pos.z + pos.w));
#else
float dot_product = dot(pos, float4(12.9898, 78.233, 45.164, 94.673));
return frac(sin(dot_product) * 43758.5453);
#endif
#else
return frac(sin(dot(pos, float4(12.9898, 78.233, 45.164, 94.673))) * 43758.5453);
#endif
}

float2 random2(float p) {
float2 random2(float p)
{
float3 p3 = frac(float3(p, p, p) * RANDOM_SCALE.xyz);
p3 += dot(p3, p3.yzx + 19.19);
return frac((p3.xx+p3.yz)*p3.zy);
return frac((p3.xx + p3.yz) * p3.zy);
}

float2 random2(float2 p) {
float3 p3 = frac(p.xyx * RANDOM_SCALE.xyz);
float2 random2(float2 p)
{
float3 p3 = frac(float3(p.x, p.x, p.x) * RANDOM_SCALE.xyz);
p3 += dot(p3, p3.yzx + 19.19);
return frac((p3.xx+p3.yz)*p3.zy);
return frac((p3.xx + p3.yz) * p3.zy);
}

float2 random2(float3 p3) {
float2 random2(float3 p3)
{
p3 = frac(p3 * RANDOM_SCALE.xyz);
p3 += dot(p3, p3.yzx + 19.19);
return frac((p3.xx+p3.yz)*p3.zy);
return frac((p3.xx + p3.yz) * p3.zy);
}

float3 random3(float p) {
float3 p3 = frac(float3(p) * RANDOM_SCALE.xyz);
p3 += dot(p3, p3.yzx+19.19);
return frac((p3.xxy+p3.yzz)*p3.zyx);
float3 random3(float p)
{
float3 scale = float3(RANDOM_SCALE.x, RANDOM_SCALE.y, RANDOM_SCALE.z);
float3 p3 = frac(float3(p, p, p) * scale);
p3 += dot(p3, p3.yzx + 19.19);
return frac((p3.xxy + p3.yzz) * p3.zyx);
}

float3 random3(float2 p) {
float3 p3 = frac(float3(p.xyx) * RANDOM_SCALE.xyz);
p3 += dot(p3, p3.yxz + 19.19);
return frac((p3.xxy+p3.yzz)*p3.zyx);

float3 random3(float2 p)
{
float3 scale = float3(RANDOM_SCALE.x, RANDOM_SCALE.y, RANDOM_SCALE.z);
float3 p3 = frac(float3(p.x, p.x, p.x) * scale);
p3 += dot(p3, p3.yzx + 19.19);
return frac((p3.xxy + p3.yzz) * p3.zyx);
}

float3 random3(float3 p) {

float3 random3(float3 p)
{
p = frac(p * RANDOM_SCALE.xyz);
p += dot(p, p.yxz + 19.19);
return frac((p.xxy + p.yzz)*p.zyx);
p += dot(p, p.yzx + 19.19);
return frac((p.xxy + p.yzz) * p.zyx);
}

float4 random4(float p) {
float4 p4 = frac(p * RANDOM_SCALE);
p4 += dot(p4, p4.wzxy+19.19);
return frac((p4.xxyz+p4.yzzw)*p4.zywx);
float4 random4(float p)
{
float4 p4 = frac(float4(p, p, p, p) * RANDOM_SCALE_4);
p4 += dot(p4, p4.wzyx + 19.19);
return frac((p4.xxyz + p4.yzzw) * p4.zywx);
}

float4 random4(float2 p) {
float4 p4 = frac(p.xyxy * RANDOM_SCALE);
p4 += dot(p4, p4.wzxy+19.19);
return frac((p4.xxyz+p4.yzzw)*p4.zywx);
float4 random4(float2 p)
{
float4 p4 = frac(float4(p.xx, p.yy) * RANDOM_SCALE_4);
p4 += dot(p4, p4.wzyx + 19.19);
return frac((p4.xxyz + p4.yzzw) * p4.zywx);
}

float4 random4(float3 p) {
float4 p4 = frac(p.xyzx * RANDOM_SCALE);
p4 += dot(p4, p4.wzxy+19.19);
return frac((p4.xxyz+p4.yzzw)*p4.zywx);
float4 random4(float3 p)
{
float4 p4 = frac(float4(p.xyz, 1.0) * RANDOM_SCALE_4);
p4 += dot(p4, p4.wzyx + 19.19);
return frac((p4.xxyz + p4.yzzw) * p4.zywx);
}

float4 random4(float4 p4) {
p4 = frac(p4 * RANDOM_SCALE);
p4 += dot(p4, p4.wzxy+19.19);
return frac((p4.xxyz+p4.yzzw)*p4.zywx);
float4 random4(float4 p4)
{
p4 = frac(p4 * RANDOM_SCALE_4);
p4 += dot(p4, p4.wzyx + 19.19);
return frac((p4.xxyz + p4.yzzw) * p4.zywx);
}


#endif

0 comments on commit e973093

Please sign in to comment.