This commit is contained in:
Piotrek
2021-05-04 20:26:15 +02:00
parent 78d3a43deb
commit 89934ba97c
13 changed files with 68 additions and 78 deletions
+10 -36
View File
@@ -1,26 +1,22 @@
#version 450
struct Material {
vec3 albedo;
float specular;
};
#include "structs.cginc"
// Variables
// Input output
layout(location=0) in vec2 _InUV;
layout(location=0) out vec4 _OutColor;
layout(set=0,binding=0) uniform Uniforms {
// Uniform
layout(set=0, binding=0) uniform Uniform {
mat4 _ViewMatrix;
mat4 _ProjMatrixInv;
vec3 _CamPos;
vec3 _SunDir;
float _Time;
};
layout(set=1,binding=0) uniform usampler3D _NodesTexture;
layout(set=2,binding=0) uniform usampler3D _BricksTexture;
layout(set=3, binding=0) uniform Materials {
Material _Materials[256];
};
layout(set=1, binding=0) uniform usampler3D _NodesTexture;
layout(set=2, binding=0) uniform usampler3D _BricksTexture;
layout(set=3, binding=0) uniform Materials { Material _Materials[256]; };
// Defines
#define EPSILON 0.00000001
@@ -29,34 +25,12 @@ layout(set=3, binding=0) uniform Materials {
#define BLOCK_TEX_SIZE 64
#define BLOCK_SIZE 32
// Include
#include "structs.cginc"
// Includes
#include "util.cginc"
#include "shading.cginc"
#include "raycasting.cginc"
float seed;
float random(float s) {
return fract(sin(seed++ + s)*43758.5453123);
}
vec3 randomHemisphere(vec3 dir)
{
vec3 uu = normalize(cross(dir, vec3(0.0,1.0,1.0)));
vec3 vv = cross(uu, dir);
vec2 rv2 = vec2(random(1), random(2));
float ra = sqrt(rv2.y);
float rx = ra*cos(6.2831*rv2.x);
float ry = ra*sin(6.2831*rv2.x);
float rz = sqrt(1.0-rv2.y);
vec3 rr = vec3(rx*uu + ry*vv + rz*dir );
return normalize(rr);
}
vec3 solve()
{
// Calculate ray direction
@@ -90,6 +64,6 @@ vec3 solve()
void main()
{
seed = 420 * _InUV.x + 1337 * _InUV.y + _Time * 1234;
random_seed = 420 * _InUV.x + 1337 * _InUV.y + _Time * 1234;
_OutColor = vec4(solve(), 1);
}