30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
#include "fs_debug_normal_texture.h"
|
|
#include "device/dvc_device.h"
|
|
#include "device/dvc_uniform_buffer.h"
|
|
#include "asset/dvc_texture.h"
|
|
#include "shader/dvc_shader_functions.h"
|
|
#include "pipe/dvc_render_pipe.h"
|
|
|
|
const char* DebugFragementShader_NormalTexture::getName(void) const
|
|
{
|
|
return "debug:normal_texture";
|
|
}
|
|
|
|
void DebugFragementShader_NormalTexture::prepare(const davinci::RenderPipe* pipe, davinci::MaterialConstPtr material)
|
|
{
|
|
m_pipe = pipe;
|
|
m_material = material;
|
|
}
|
|
|
|
void DebugFragementShader_NormalTexture::process(const davinci::VertexDesc& veretexDesc, const float32_t* pixelData, davinci::fVector4& color)
|
|
{
|
|
const davinci::UniformBuffer& uniformBuffer = m_pipe->getUniformBuffer();
|
|
|
|
const davinci::VertexDesc::Element* v_uv_Element = veretexDesc.getElement("v_uv");
|
|
const davinci::fVector2* v_uv = (const davinci::fVector2*)(pixelData + (v_uv_Element->offset / sizeof(float32_t)));
|
|
|
|
davinci::fVector4 u_baseColor = davinci::shader::texture2D(*m_pipe, m_material->getNormalTexture(), (*v_uv), davinci::fVector4::WHITE);
|
|
|
|
color = davinci::fVector4(u_baseColor.xyz(), 1);
|
|
}
|