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