Skip to content

Commit

Permalink
Add ShadowMapingOnmi for Android
Browse files Browse the repository at this point in the history
  • Loading branch information
engineer1109 committed Jan 17, 2022
1 parent b046b63 commit 0da3889
Show file tree
Hide file tree
Showing 6 changed files with 586 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//
// Created by wjl on 2021/8/16.
//

#include "OnmiCamera.h"

#include <glm/gtc/matrix_transform.hpp>

BEGIN_NAMESPACE(VulkanEngine)

void OnmiCamera::prepareUniformBuffers() {
VK_CHECK_RESULT(m_context->vulkanDevice->createBuffer(
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
&m_uniformBuffer, sizeof(m_mvp), &m_mvp));
VK_CHECK_RESULT(m_uniformBuffer.map());
updateUniformBuffers();
}

void OnmiCamera::updateUniformBuffers() {
m_mvp.projection = glm::perspective((float)(M_PI / 2.0), 1.0f, 0.1f, 64.0f);
m_mvp.view = glm::mat4(1.0f);
m_mvp.model = glm::translate(glm::mat4(1.0f), glm::vec3(-m_mvp.lightpos.x, -m_mvp.lightpos.y, -m_mvp.lightpos.z));
memcpy(m_uniformBuffer.mapped, &m_mvp, sizeof(m_mvp));
}

END_NAMESPACE(VulkanEngine)
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//
// Created by wjl on 2021/8/16.
//

#ifndef LEARNVULKAN_ONMICAMERA_H
#define LEARNVULKAN_ONMICAMERA_H

#include "VulkanBuffer.h"

BEGIN_NAMESPACE(VulkanEngine)

class OnmiCamera : public VulkanBuffer {
public:
struct {
glm::mat4 projection;
glm::mat4 view;
glm::mat4 model;
glm::vec4 lightpos;
}m_mvp;
public:
OnmiCamera() = default;

virtual void prepareUniformBuffers() override;
virtual void updateUniformBuffers() override ;
};

END_NAMESPACE(VulkanEngine)

#endif //LEARNVULKAN_ONMICAMERA_H
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//
// Created by wjl on 21-4-10.
//

#include "ReflectParaBuffer.h"

BEGIN_NAMESPACE(VulkanEngine)

void ReflectParaBuffer::reflect() {
if(getReflect() <= 0.f){
setReflect(1.f);
}
else{
setReflect(0.f);
}
}

void ReflectParaBuffer::prepareUniformBuffers() {
VK_CHECK_RESULT(m_context->vulkanDevice->createBuffer(
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
&m_uniformBuffer, sizeof(m_para), &m_para));
VK_CHECK_RESULT(m_uniformBuffer.map());
updateUniformBuffers();
}

void ReflectParaBuffer::updateUniformBuffers() {
memcpy(m_uniformBuffer.mapped, &m_para, sizeof(m_para));
}

END_NAMESPACE(VulkanEngine)
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//
// Created by wjl on 21-4-10.
//

#ifndef LEARNVULKAN_REFLECTPARABUFFER_H
#define LEARNVULKAN_REFLECTPARABUFFER_H

#include "VulkanBuffer.h"

BEGIN_NAMESPACE(VulkanEngine)

class ReflectParaBuffer : public VulkanBuffer {
public:
struct ReflectPara{
glm::vec4 para;
} m_para;

public:
ReflectParaBuffer() = default;
~ReflectParaBuffer() = default;

void setReflect(float value) { m_para.para[0] = value; }

float getReflect() { return m_para.para[0];}

void reflect();

virtual void prepareUniformBuffers() override;
virtual void updateUniformBuffers() override ;
};

END_NAMESPACE(VulkanEngine)

#endif //LEARNVULKAN_REFLECTPARABUFFER_H
Loading

0 comments on commit 0da3889

Please sign in to comment.