本文整理汇总了C++中PixelShader::Main方法的典型用法代码示例。如果您正苦于以下问题:C++ PixelShader::Main方法的具体用法?C++ PixelShader::Main怎么用?C++ PixelShader::Main使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PixelShader
的用法示例。
在下文中一共展示了PixelShader::Main方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FillSpan
void Renderer::FillSpan( float x0, float x1, int y, VertexShaderOutput& va0, VertexShaderOutput& va1, PixelShader& ps )
{
int startX = Float2Int(x0);
int endX = Float2Int(x1);
float lenR = 1.0f / (x1 - x0);
float xt = x0;
VertexShaderOutput va;
for (int x = startX; x < endX; x++)
{
xt = float(x + 1);
Lerp(va, va0, va1, (x1 - xt) * lenR);
// early z-test (before executing pixel shader)
if (!m_depthBuffer->TestDepth(x, y, va.position.z))
{
continue;
}
// execute the pixel shader
Vector4& color = ps.Main(va);
int r = Float2Int(color.x * 255.0f);
int g = Float2Int(color.y * 255.0f);
int b = Float2Int(color.z * 255.0f);
m_renderTarget->SetPixel(x, y, COLOR_RGB(r, g, b));
}
}