Rename render step
This commit is contained in:
@@ -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})
|
||||
|
||||
|
||||
+1
-1
@@ -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"
|
||||
|
||||
+2
-2
@@ -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
|
||||
+8
-8
@@ -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<float32_t, int32_t>& fragementArrayMap,
|
||||
const PixelShaderStep::FragementArray& fragementArray, RenderTarget& renderTarget);
|
||||
const RasterizerStep::FragementArray& fragementArray, RenderTarget& renderTarget);
|
||||
|
||||
template<int32_t kSampleSize, uint32_t kSampleMask>
|
||||
void mergeFragement_with_AA(int32_t x, int32_t y,
|
||||
const std::multimap<float32_t, int32_t>& fragementArrayMap,
|
||||
const PixelShaderStep::FragementArray& fragementArray, RenderTarget& renderTarget);
|
||||
const RasterizerStep::FragementArray& fragementArray, RenderTarget& renderTarget);
|
||||
};
|
||||
|
||||
template<int32_t kSampleSize, uint32_t kSampleMask>
|
||||
void OutputMergerStep::mergeFragement_with_AA(int32_t x, int32_t y, const std::multimap<float32_t, int32_t>& 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<float32_t, int32_t>::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++;
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
+1
-1
@@ -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"
|
||||
+2
-2
@@ -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");
|
||||
+5
-5
@@ -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<float32_t, int32_t>& 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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user