当前位置: 首页>>代码示例>>C++>>正文


C++ PixelShader::Main方法代码示例

本文整理汇总了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));
	}
}
开发者ID:fancyblock,项目名称:STnL,代码行数:28,代码来源:Renderer.cpp


注:本文中的PixelShader::Main方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。