mirror of
https://github.com/bailwillharr/engine.git
synced 2024-09-21 04:51:18 +00:00
Make the lighting directional again
This commit is contained in:
parent
cda6a99e5c
commit
dfd892b146
@ -48,7 +48,7 @@ void main() {
|
||||
float light_distance = length(fragLightPosTangentSpace - fragPosTangentSpace);
|
||||
float attenuation = 1.0 / (1.0 + 0.09 * light_distance +
|
||||
0.032 * (light_distance * light_distance));
|
||||
light_colour *= 5.0 * attenuation;
|
||||
//light_colour *= 5.0 * attenuation;
|
||||
|
||||
const vec3 emission = vec3(0.0, 0.0, 0.0);
|
||||
|
||||
@ -56,7 +56,7 @@ void main() {
|
||||
const vec3 N = GetNormal();
|
||||
|
||||
const vec3 V = normalize(fragViewPosTangentSpace - fragPosTangentSpace);
|
||||
const vec3 L = normalize(fragLightPosTangentSpace - fragPosTangentSpace);
|
||||
const vec3 L = normalize(fragLightPosTangentSpace /* - fragPosTangentSpace */ );
|
||||
//const vec3 L = normalize(vec3(5.0, 0.0, 3.0));
|
||||
const vec3 H = normalize(V + L);
|
||||
|
||||
|
@ -39,8 +39,8 @@ void main() {
|
||||
fragUV = inUV;
|
||||
fragPosTangentSpace = worldToTangentSpace * vec3(worldPosition);
|
||||
fragViewPosTangentSpace = worldToTangentSpace * vec3(inverse(frameSetUniformBuffer.view) * vec4(0.0, 0.0, 0.0, 1.0));
|
||||
//fragLightPosTangentSpace = worldToTangentSpace * vec3(-0.4278,0.7923,0.43502);
|
||||
fragLightPosTangentSpace = worldToTangentSpace * vec3(10.0, 0.0, 10.0);
|
||||
fragLightPosTangentSpace = worldToTangentSpace * vec3(-0.4278,0.7923,0.43502); // directional light
|
||||
//fragLightPosTangentSpace = worldToTangentSpace * vec3(10.0, 0.0, 10.0);
|
||||
|
||||
fragNormWorldSpace = N;
|
||||
fragViewPosWorldSpace = vec3(inverse(frameSetUniformBuffer.view) * vec4(0.0, 0.0, 0.0, 1.0));
|
||||
|
@ -72,7 +72,7 @@ static constexpr uint32_t FRAMES_IN_FLIGHT = 2; // This improved FPS by 5x
|
||||
static constexpr size_t PUSH_CONSTANT_MAX_SIZE = 128; // bytes
|
||||
static constexpr VkIndexType INDEX_TYPE = VK_INDEX_TYPE_UINT32;
|
||||
|
||||
static constexpr int kShadowmapSize = 1024;
|
||||
static constexpr int kShadowmapSize = 2048;
|
||||
|
||||
// structures and enums
|
||||
|
||||
|
@ -32,12 +32,12 @@ Renderer::Renderer(Application& app, gfx::GraphicsSettings settings) : Applicati
|
||||
}
|
||||
global_uniform.layout = device_->CreateDescriptorSetLayout(globalSetBindings);
|
||||
global_uniform.set = device_->AllocateDescriptorSet(global_uniform.layout);
|
||||
// const glm::vec3 light_location = glm::vec3{-0.4278, 0.7923, 0.43502} * 10.0f;
|
||||
const glm::vec3 light_location = glm::vec3{10.0f, 0.0f, 10.0f};
|
||||
// const glm::mat4 light_proj = glm::orthoRH_ZO(-10.0f, 10.0f, -10.0f, 10.0f, 1.0f, 50.0f);
|
||||
const glm::mat4 light_proj = glm::perspectiveFovRH_ZO(glm::radians(90.0f), 1.0f, 1.0f, 5.0f, 50.0f);
|
||||
const glm::vec3 light_location = glm::vec3{-0.4278, 0.7923, 0.43502} * 40.0f;
|
||||
//const glm::vec3 light_location = glm::vec3{10.0f, 0.0f, 10.0f};
|
||||
const glm::mat4 light_proj = glm::orthoRH_ZO(-24.0f, 24.0f, -15.0f, 15.0f, 10.0f, 65.0f);
|
||||
//const glm::mat4 light_proj = glm::perspectiveFovRH_ZO(glm::radians(90.0f), 1.0f, 1.0f, 5.0f, 50.0f);
|
||||
const glm::mat4 light_view = glm::lookAtRH(light_location, glm::vec3{0.0f, 0.0f, 0.0f}, glm::vec3{0.0f, 0.0f, 1.0f});
|
||||
global_uniform.uniform_buffer_data.data.proj = glm::mat4{1.0f};
|
||||
global_uniform.uniform_buffer_data.data.proj = light_proj;
|
||||
global_uniform.uniform_buffer_data.data.lightSpaceMatrix = light_proj * light_view;
|
||||
global_uniform.uniform_buffer = device_->CreateUniformBuffer(sizeof(global_uniform.uniform_buffer_data), &global_uniform.uniform_buffer_data);
|
||||
device_->UpdateDescriptorUniformBuffer(global_uniform.set, 0, global_uniform.uniform_buffer, 0, sizeof(global_uniform.uniform_buffer_data));
|
||||
|
@ -77,6 +77,11 @@ void PlayGame(GameSettings settings)
|
||||
/* create camera */
|
||||
engine::Entity camera = main_scene->CreateEntity("camera");
|
||||
|
||||
auto camren = main_scene->AddComponent<engine::MeshRenderableComponent>(camera);
|
||||
camren->visible = true;
|
||||
camren->mesh = GenSphereMesh(app.renderer()->GetDevice(), 0.2f, 10);
|
||||
camren->material = app.GetResource<engine::Material>("builtin.default");
|
||||
|
||||
/* as of right now, the entity with tag 'camera' is used to build the view
|
||||
* matrix */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user