diff --git a/source/core/CMakeLists.txt b/source/core/CMakeLists.txt index 469053d..5e2fb71 100644 --- a/source/core/CMakeLists.txt +++ b/source/core/CMakeLists.txt @@ -109,10 +109,10 @@ set(DV_CORE_PIPE_INCLUDE_FILES include/pipe/dvc_render_pipe.h include/pipe/dvc_renderable.h include/pipe/dvc_renderable_entity.h - include/pipe/dvc_render_step_IA.h - include/pipe/dvc_render_step_VS.h - include/pipe/dvc_render_step_PS.h - include/pipe/dvc_render_step_OM.h + include/pipe/dvc_render_step0_input_assember.h + include/pipe/dvc_render_step1_vertex_shader.h + include/pipe/dvc_render_step2_rasterizer.h + include/pipe/dvc_render_step3_output_merge.h ) source_group("include/pipe" FILES ${DV_CORE_PIPE_INCLUDE_FILES}) @@ -120,10 +120,10 @@ set(DV_CORE_PIPE_SOURCE_FILES source/pipe/dvc_render_pipe.cpp source/pipe/dvc_renderable.cpp source/pipe/dvc_renderable_entity.cpp - source/pipe/dvc_render_step_IA.cpp - source/pipe/dvc_render_step_VS.cpp - source/pipe/dvc_render_step_PS.cpp - source/pipe/dvc_render_step_OM.cpp + source/pipe/dvc_render_step0_input_assember.cpp + source/pipe/dvc_render_step1_vertex_shader.cpp + source/pipe/dvc_render_step2_rasterizer.cpp + source/pipe/dvc_render_step3_output_merge.cpp ) source_group("source/pipe" FILES ${DV_CORE_PIPE_SOURCE_FILES}) diff --git a/source/core/include/pipe/dvc_render_step_IA.h b/source/core/include/pipe/dvc_render_step0_input_assember.h similarity index 100% rename from source/core/include/pipe/dvc_render_step_IA.h rename to source/core/include/pipe/dvc_render_step0_input_assember.h diff --git a/source/core/include/pipe/dvc_render_step_VS.h b/source/core/include/pipe/dvc_render_step1_vertex_shader.h similarity index 92% rename from source/core/include/pipe/dvc_render_step_VS.h rename to source/core/include/pipe/dvc_render_step1_vertex_shader.h index 5927d8d..ee174ce 100644 --- a/source/core/include/pipe/dvc_render_step_VS.h +++ b/source/core/include/pipe/dvc_render_step1_vertex_shader.h @@ -1,7 +1,7 @@ #pragma once #include "dvc_config.h" -#include "dvc_render_step_IA.h" +#include "dvc_render_step0_input_assember.h" #include "device/dvc_uniform_buffer.h" #include "device/dvc_vertex_desc.h" diff --git a/source/core/include/pipe/dvc_render_step_PS.h b/source/core/include/pipe/dvc_render_step2_rasterizer.h similarity index 88% rename from source/core/include/pipe/dvc_render_step_PS.h rename to source/core/include/pipe/dvc_render_step2_rasterizer.h index 7d0a905..3fe0c1a 100644 --- a/source/core/include/pipe/dvc_render_step_PS.h +++ b/source/core/include/pipe/dvc_render_step2_rasterizer.h @@ -1,11 +1,11 @@ #pragma once #include "dvc_config.h" -#include "dvc_render_step_VS.h" +#include "dvc_render_step1_vertex_shader.h" DV_CORE_BEGIN_NAMESPACE -class PixelShaderStep +class RasterizerStep { public: struct Fragement diff --git a/source/core/include/pipe/dvc_render_step_OM.h b/source/core/include/pipe/dvc_render_step3_output_merge.h similarity index 74% rename from source/core/include/pipe/dvc_render_step_OM.h rename to source/core/include/pipe/dvc_render_step3_output_merge.h index 0f70a40..55606ab 100644 --- a/source/core/include/pipe/dvc_render_step_OM.h +++ b/source/core/include/pipe/dvc_render_step3_output_merge.h @@ -1,30 +1,30 @@ #pragma once #include "dvc_config.h" -#include "dvc_render_step_PS.h" +#include "dvc_render_step2_rasterizer.h" DV_CORE_BEGIN_NAMESPACE class OutputMergerStep { public: - void process(const PixelShaderStep::StartOffsetArray& startOffsetArray, const PixelShaderStep::FragementArray& fragementArray, + void process(const RasterizerStep::StartOffsetArray& startOffsetArray, const RasterizerStep::FragementArray& fragementArray, AntiAliasingTech aaTech, RenderTarget& renderTarget); private: void mergeFragement_without_AA(int32_t x, int32_t y, const std::multimap& fragementArrayMap, - const PixelShaderStep::FragementArray& fragementArray, RenderTarget& renderTarget); + const RasterizerStep::FragementArray& fragementArray, RenderTarget& renderTarget); template void mergeFragement_with_AA(int32_t x, int32_t y, const std::multimap& fragementArrayMap, - const PixelShaderStep::FragementArray& fragementArray, RenderTarget& renderTarget); + const RasterizerStep::FragementArray& fragementArray, RenderTarget& renderTarget); }; template void OutputMergerStep::mergeFragement_with_AA(int32_t x, int32_t y, const std::multimap& fragementArrayMap, - const PixelShaderStep::FragementArray& fragementArray, RenderTarget& renderTarget) + const RasterizerStep::FragementArray& fragementArray, RenderTarget& renderTarget) { if (fragementArrayMap.empty()) { @@ -32,7 +32,7 @@ void OutputMergerStep::mergeFragement_with_AA(int32_t x, int32_t y, const std::m } else if (fragementArrayMap.size() == 1) { - const PixelShaderStep::Fragement& fragement = fragementArray[fragementArrayMap.begin()->second]; + const RasterizerStep::Fragement& fragement = fragementArray[fragementArrayMap.begin()->second]; fVector4 finalColor = fragement.color; finalColor.w = MathUtil::popcount((uint16_t)(fragement.mask & kSampleMask)) / (float32_t)kSampleSize; @@ -48,7 +48,7 @@ void OutputMergerStep::mergeFragement_with_AA(int32_t x, int32_t y, const std::m std::multimap::const_iterator it, end = fragementArrayMap.end(); for (it = fragementArrayMap.begin(); it != end; ++it) { - const PixelShaderStep::Fragement& fragement = fragementArray[it->second]; + const RasterizerStep::Fragement& fragement = fragementArray[it->second]; for (int32_t k = 0; k < kSampleSize; k++) { if ((fragement.mask & (1 << k)) != 0) @@ -66,7 +66,7 @@ void OutputMergerStep::mergeFragement_with_AA(int32_t x, int32_t y, const std::m int32_t fragementID = samples[k]; if (fragementID < 0 || fragementID >= fragementArray.size()) continue; - const PixelShaderStep::Fragement& fragement = fragementArray[fragementID]; + const RasterizerStep::Fragement& fragement = fragementArray[fragementID]; finalColor += fragement.color.xyz(); bitCounts++; } diff --git a/source/core/include/pipe/dvc_renderable.h b/source/core/include/pipe/dvc_renderable.h index 63b8151..86e889b 100644 --- a/source/core/include/pipe/dvc_renderable.h +++ b/source/core/include/pipe/dvc_renderable.h @@ -2,7 +2,7 @@ #include "dvc_config.h" #include "math/dvc_matrix4.h" -#include "pipe/dvc_render_step_IA.h" +#include "pipe/dvc_render_step0_input_assember.h" DV_CORE_BEGIN_NAMESPACE diff --git a/source/core/source/device/dvc_render_target.cpp b/source/core/source/device/dvc_render_target.cpp index 59fff77..1fa1e09 100644 --- a/source/core/source/device/dvc_render_target.cpp +++ b/source/core/source/device/dvc_render_target.cpp @@ -24,9 +24,6 @@ void RenderTarget::setPixel(int32_t x, int32_t y, const fVector4& color, float32 { if (x < 0 || x >= m_width || y < 0 || y >= m_height) return; - if (depth > m_depthBuffer.getPixel(x, y)) { - // return; - } m_colorBuffer.setPixel(x, y, color); m_depthBuffer.setPixel(x, y, depth); } diff --git a/source/core/source/pipe/dvc_render_pipe.cpp b/source/core/source/pipe/dvc_render_pipe.cpp index c79a97e..15fa0c2 100644 --- a/source/core/source/pipe/dvc_render_pipe.cpp +++ b/source/core/source/pipe/dvc_render_pipe.cpp @@ -1,9 +1,9 @@ #include "pipe/dvc_render_pipe.h" #include "scene/dvc_scene_node.h" -#include "pipe/dvc_render_step_IA.h" -#include "pipe/dvc_render_step_VS.h" -#include "pipe/dvc_render_step_PS.h" -#include "pipe/dvc_render_step_OM.h" +#include "pipe/dvc_render_step0_input_assember.h" +#include "pipe/dvc_render_step1_vertex_shader.h" +#include "pipe/dvc_render_step2_rasterizer.h" +#include "pipe/dvc_render_step3_output_merge.h" #include "scene/component/dvc_camera_component.h" DV_CORE_BEGIN_NAMESPACE @@ -34,12 +34,12 @@ void RenderPipe::process(RenderTarget& renderTarget) VS.process(m_uniformBuffer, IA.m_nodes); //Pixel shader - PixelShaderStep PS; - PS.process(VS.m_nodes, m_aaTech, renderTarget.getWidth(), renderTarget.getHeight()); + RasterizerStep rasterizerStep; + rasterizerStep.process(VS.m_nodes, m_aaTech, renderTarget.getWidth(), renderTarget.getHeight()); //Output Merge OutputMergerStep OM; - OM.process(PS.m_startOffsetArray, PS.m_fragementArray, m_aaTech, renderTarget); + OM.process(rasterizerStep.m_startOffsetArray, rasterizerStep.m_fragementArray, m_aaTech, renderTarget); } DV_CORE_END_NAMESPACE diff --git a/source/core/source/pipe/dvc_render_step_IA.cpp b/source/core/source/pipe/dvc_render_step0_input_assember.cpp similarity index 89% rename from source/core/source/pipe/dvc_render_step_IA.cpp rename to source/core/source/pipe/dvc_render_step0_input_assember.cpp index e33d23d..7297962 100644 --- a/source/core/source/pipe/dvc_render_step_IA.cpp +++ b/source/core/source/pipe/dvc_render_step0_input_assember.cpp @@ -1,4 +1,4 @@ -#include "pipe/dvc_render_step_IA.h" +#include "pipe/dvc_render_step0_input_assember.h" #include "pipe/dvc_renderable.h" DV_CORE_BEGIN_NAMESPACE diff --git a/source/core/source/pipe/dvc_render_step_VS.cpp b/source/core/source/pipe/dvc_render_step1_vertex_shader.cpp similarity index 98% rename from source/core/source/pipe/dvc_render_step_VS.cpp rename to source/core/source/pipe/dvc_render_step1_vertex_shader.cpp index b95b746..c6f947a 100644 --- a/source/core/source/pipe/dvc_render_step_VS.cpp +++ b/source/core/source/pipe/dvc_render_step1_vertex_shader.cpp @@ -1,4 +1,4 @@ -#include "pipe/dvc_render_step_VS.h" +#include "pipe/dvc_render_step1_vertex_shader.h" #include "shader/dvc_shader_interface.h" #include "device/dvc_buffer_accessor.h" #include "math/dvc_math_util.h" diff --git a/source/core/source/pipe/dvc_render_step_PS.cpp b/source/core/source/pipe/dvc_render_step2_rasterizer.cpp similarity index 94% rename from source/core/source/pipe/dvc_render_step_PS.cpp rename to source/core/source/pipe/dvc_render_step2_rasterizer.cpp index 529dc91..6e917fd 100644 --- a/source/core/source/pipe/dvc_render_step_PS.cpp +++ b/source/core/source/pipe/dvc_render_step2_rasterizer.cpp @@ -1,4 +1,4 @@ -#include "pipe/dvc_render_step_PS.h" +#include "pipe/dvc_render_step2_rasterizer.h" #include "shader/dvc_shader_interface.h" #include "device/dvc_buffer.h" #include "rasterizer/dvc_rasterizer_triangle.h" @@ -6,7 +6,7 @@ DV_CORE_BEGIN_NAMESPACE -void PixelShaderStep::process(const VertexShaderStep::NodeArray& vsNodeArray, AntiAliasingTech aaTech, int32_t canvasWidth, int32_t canvasHeight) +void RasterizerStep::process(const VertexShaderStep::NodeArray& vsNodeArray, AntiAliasingTech aaTech, int32_t canvasWidth, int32_t canvasHeight) { ShaderFileInterface* shaderInterface = davinci::LoadShaderFile("TestShader.dll"); PixelShaderInterface* pixelShader = shaderInterface->getPixelShader("xxx"); diff --git a/source/core/source/pipe/dvc_render_step_OM.cpp b/source/core/source/pipe/dvc_render_step3_output_merge.cpp similarity index 74% rename from source/core/source/pipe/dvc_render_step_OM.cpp rename to source/core/source/pipe/dvc_render_step3_output_merge.cpp index f0e6f29..f391946 100644 --- a/source/core/source/pipe/dvc_render_step_OM.cpp +++ b/source/core/source/pipe/dvc_render_step3_output_merge.cpp @@ -1,8 +1,8 @@ -#include "pipe/dvc_render_step_OM.h" +#include "pipe/dvc_render_step3_output_merge.h" DV_CORE_BEGIN_NAMESPACE -void OutputMergerStep::process(const PixelShaderStep::StartOffsetArray& startOffsetArray, const PixelShaderStep::FragementArray& fragementArray, +void OutputMergerStep::process(const RasterizerStep::StartOffsetArray& startOffsetArray, const RasterizerStep::FragementArray& fragementArray, AntiAliasingTech aaTech, RenderTarget& renderTarget) { int32_t canvasWidth = renderTarget.getWidth(); @@ -17,7 +17,7 @@ void OutputMergerStep::process(const PixelShaderStep::StartOffsetArray& startOff while (fragementID >=0 && fragementID < (int32_t)fragementArray.size()) { - const PixelShaderStep::Fragement& fragement = fragementArray[fragementID]; + const RasterizerStep::Fragement& fragement = fragementArray[fragementID]; fragementArrayMap.insert(std::make_pair(-fragement.depth, fragementID)); fragementID = fragement.next; } @@ -39,14 +39,14 @@ void OutputMergerStep::process(const PixelShaderStep::StartOffsetArray& startOff } void OutputMergerStep::mergeFragement_without_AA(int32_t x, int32_t y, const std::multimap& fragementArrayMap, - const PixelShaderStep::FragementArray& fragementArray, RenderTarget& renderTarget) + const RasterizerStep::FragementArray& fragementArray, RenderTarget& renderTarget) { if (fragementArrayMap.empty()) { return; } - const PixelShaderStep::Fragement& firstFragement = fragementArray[fragementArrayMap.rbegin()->second]; + const RasterizerStep::Fragement& firstFragement = fragementArray[fragementArrayMap.rbegin()->second]; renderTarget.setPixel(x, y, firstFragement.color, firstFragement.depth); }