#include "fs_debug_geometry_normal.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" using namespace davinci; const char* DebugFragementShader_GeometryNormal::getName(void) const { return "debug:geometry_normal"; } bool DebugFragementShader_GeometryNormal::begin(const RenderPipe* pipe, MaterialConstPtr material, const VertexDesc& veretexDesc) { m_pipe = pipe; if (const VertexDesc::Element* element = veretexDesc.getElementByType(VET_NORMAL)) { m_vNormalOffset = element->offset / sizeof(float32_t); } else return false; return true; } void DebugFragementShader_GeometryNormal::process(const float32_t* pixelData, fVector4& color) { const UniformBuffer& uniformBuffer = m_pipe->getUniformBuffer(); fVector3 v_normal = *((const fVector3*)(pixelData + m_vNormalOffset)); fVector3 normalColor = v_normal; normalColor.normalise(); normalColor = normalColor * 0.5f + 0.5f; color = fVector4(normalColor, 1); } void DebugFragementShader_GeometryNormal::end() { }