码迷,mamicode.com
首页 > 其他好文 > 详细

dx11 入门 Tutorial 06: 明白context->updateSubsource和setConstantBuffers DirectXSampleBrowser(June 2010)

时间:2015-01-19 08:02:42      阅读:1039      评论:0      收藏:0      [点我收藏+]

标签:

需要明白constantBuffer传入数据到shader的正确使用::

cb1.vOutputColor = XMFLOAT4(0, 0, 0, 0);
	g_pImmediateContext->UpdateSubresource( g_pConstantBuffer, 0, NULL, &cb1, 0, 0 );
//更新cube的数据 // // Render the cube // g_pImmediateContext->VSSetShader( g_pVertexShader, NULL, 0 ); g_pImmediateContext->VSSetConstantBuffers( 0, 1, &g_pConstantBuffer );
//VS shader里需要constant数据
g_pImmediateContext->PSSetShader( g_pPixelShader, NULL, 0 ); g_pImmediateContext->PSSetConstantBuffers( 0, 1, &g_pConstantBuffer );
//PS shader里传入constant数据
g_pImmediateContext->DrawIndexed( 36, 0, 0 ); // // Render each light // for( int m = 0; m < 2; m++ ) { XMMATRIX mLight = XMMatrixTranslationFromVector( 5.0f * XMLoadFloat4( &vLightDirs[m] ) ); XMMATRIX mLightScale = XMMatrixScaling( 0.2f, 0.2f, 0.2f ); mLight = mLightScale * mLight; // Update the world variable to reflect the current light cb1.mWorld = XMMatrixTranspose( mLight ); cb1.vOutputColor = vLightColors[m]; g_pImmediateContext->UpdateSubresource( g_pConstantBuffer, 0, NULL, &cb1, 0, 0 );
//更新lightCube的位置 g_pImmediateContext->PSSetShader( g_pPixelShaderSolid, NULL, 0 );
//由于light没有使用constant数据,所以不需要PSSetConstantBuffers
g_pImmediateContext->DrawIndexed( 36, 0, 0 ); }

  

dx11 入门 Tutorial 06: 明白context->updateSubsource和setConstantBuffers DirectXSampleBrowser(June 2010)

标签:

原文地址:http://www.cnblogs.com/dust-fly/p/4232895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!