unfocused camera light!!!!
This commit is contained in:
parent
6c317c8ac3
commit
d18195fb91
@ -346,6 +346,7 @@ void Renderer::draw() {
|
|||||||
.proj = p,
|
.proj = p,
|
||||||
.time = time,
|
.time = time,
|
||||||
.cam_pos = cam.pos,
|
.cam_pos = cam.pos,
|
||||||
|
.cam_dir = cam.dir(),
|
||||||
.viewport = glm::vec2(viewport.width, viewport.y),
|
.viewport = glm::vec2(viewport.width, viewport.y),
|
||||||
.tess_factor = tess_factor,
|
.tess_factor = tess_factor,
|
||||||
.tess_edge_size = tess_edge_size,
|
.tess_edge_size = tess_edge_size,
|
||||||
|
|||||||
@ -9,6 +9,22 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
/* Uniform:
|
||||||
|
*
|
||||||
|
* layout (set = 0, binding = 0) uniform Matrices {
|
||||||
|
* mat4 view;
|
||||||
|
* mat4 proj;
|
||||||
|
* float time;
|
||||||
|
* vec3 cam_pos;
|
||||||
|
* vec3 cam_dir;
|
||||||
|
* vec4 frustum[6];
|
||||||
|
* vec2 viewport;
|
||||||
|
* float tess_factor;
|
||||||
|
* float tess_edge_size;
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
struct UniformData {
|
struct UniformData {
|
||||||
glm::mat4 view;
|
glm::mat4 view;
|
||||||
glm::mat4 proj;
|
glm::mat4 proj;
|
||||||
@ -18,6 +34,8 @@ struct UniformData {
|
|||||||
float pad2;
|
float pad2;
|
||||||
glm::vec3 cam_pos;
|
glm::vec3 cam_pos;
|
||||||
float pad3;
|
float pad3;
|
||||||
|
glm::vec3 cam_dir;
|
||||||
|
float pad4;
|
||||||
glm::vec4 frustum[6];
|
glm::vec4 frustum[6];
|
||||||
glm::vec2 viewport;
|
glm::vec2 viewport;
|
||||||
float tess_factor;
|
float tess_factor;
|
||||||
|
|||||||
@ -14,7 +14,12 @@ struct Camera {
|
|||||||
|
|
||||||
glm::vec3 pos = glm::vec3(0.0f);
|
glm::vec3 pos = glm::vec3(0.0f);
|
||||||
|
|
||||||
inline glm::mat4 view() {
|
inline glm::vec3 dir() {
|
||||||
return glm::lookAt(pos, pos+glm::vec3(sin(theta) * cos(phi), cos(theta), sin(theta) * sin(phi)), glm::vec3(0.0, 1.0, 0.0));
|
return glm::vec3(sin(theta) * cos(phi), cos(theta), sin(theta) * sin(phi));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline glm::mat4 view() {
|
||||||
|
return glm::lookAt(pos, pos+dir(), glm::vec3(0.0, 1.0, 0.0));
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -10,6 +10,7 @@ layout (set = 0, binding = 0) uniform Matrices {
|
|||||||
mat4 proj;
|
mat4 proj;
|
||||||
float time;
|
float time;
|
||||||
vec3 cam_pos;
|
vec3 cam_pos;
|
||||||
|
vec3 cam_dir;
|
||||||
vec4 frustum[6];
|
vec4 frustum[6];
|
||||||
vec2 viewport;
|
vec2 viewport;
|
||||||
float tess_factor;
|
float tess_factor;
|
||||||
|
|||||||
Binary file not shown.
@ -6,9 +6,15 @@ layout (location = 2) in vec3 pos;
|
|||||||
layout (location = 0) out vec4 FragColor;
|
layout (location = 0) out vec4 FragColor;
|
||||||
|
|
||||||
layout (set = 0, binding = 0) uniform Matrices {
|
layout (set = 0, binding = 0) uniform Matrices {
|
||||||
mat4 mvp;
|
mat4 view;
|
||||||
|
mat4 proj;
|
||||||
float time;
|
float time;
|
||||||
vec3 cam_pos;
|
vec3 cam_pos;
|
||||||
|
vec3 cam_dir;
|
||||||
|
vec4 frustum[6];
|
||||||
|
vec2 viewport;
|
||||||
|
float tess_factor;
|
||||||
|
float tess_edge_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
layout (set = 0, binding = 1) uniform sampler2D tex;
|
layout (set = 0, binding = 1) uniform sampler2D tex;
|
||||||
|
|||||||
Binary file not shown.
@ -10,6 +10,7 @@ layout (set = 0, binding = 0) uniform Matrices {
|
|||||||
mat4 proj;
|
mat4 proj;
|
||||||
float time;
|
float time;
|
||||||
vec3 cam_pos;
|
vec3 cam_pos;
|
||||||
|
vec3 cam_dir;
|
||||||
vec4 frustum[6];
|
vec4 frustum[6];
|
||||||
vec2 viewport;
|
vec2 viewport;
|
||||||
float tess_factor;
|
float tess_factor;
|
||||||
@ -19,8 +20,8 @@ layout (set = 0, binding = 0) uniform Matrices {
|
|||||||
layout (set = 0, binding = 1) uniform sampler2D heightmap;
|
layout (set = 0, binding = 1) uniform sampler2D heightmap;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
//vec3 light_pos = vec3(10.0*cos(time), 10.0, 0.0);
|
/* extract L (light direction) from view matrix */
|
||||||
vec3 L = normalize(cam_pos-pos);
|
vec3 L = -cam_dir;
|
||||||
float r = length(cam_pos-pos);
|
float r = length(cam_pos-pos);
|
||||||
float t = clamp(dot(L, norm), 0.0, 1.0) * 20.0/(r*r);
|
float t = clamp(dot(L, norm), 0.0, 1.0) * 20.0/(r*r);
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -6,6 +6,7 @@ layout (set = 0, binding = 0) uniform Matrices {
|
|||||||
mat4 proj;
|
mat4 proj;
|
||||||
float time;
|
float time;
|
||||||
vec3 cam_pos;
|
vec3 cam_pos;
|
||||||
|
vec3 cam_dir;
|
||||||
vec4 frustum[6];
|
vec4 frustum[6];
|
||||||
vec2 viewport;
|
vec2 viewport;
|
||||||
float tess_factor;
|
float tess_factor;
|
||||||
|
|||||||
Binary file not shown.
@ -5,6 +5,7 @@ layout (set = 0, binding = 0) uniform Matrices {
|
|||||||
mat4 proj;
|
mat4 proj;
|
||||||
float time;
|
float time;
|
||||||
vec3 cam_pos;
|
vec3 cam_pos;
|
||||||
|
vec3 cam_dir;
|
||||||
vec4 frustum[6];
|
vec4 frustum[6];
|
||||||
vec2 viewport;
|
vec2 viewport;
|
||||||
float tess_factor;
|
float tess_factor;
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user