Bilder sagen glaube ich mehr als Worte:
[Only registered and activated users can see links. Click Here To Register...]
Er überschreibt den Transparenten bereich, wobei dieser ja genaugenommen einfach garnicht überschrieben werden sollte.
Alpha Blenddesc:
Render:
[Only registered and activated users can see links. Click Here To Register...]
Er überschreibt den Transparenten bereich, wobei dieser ja genaugenommen einfach garnicht überschrieben werden sollte.
Alpha Blenddesc:
Code:
p_AlphaBlendDesc.RenderTarget[0].BlendEnable = TRUE; p_AlphaBlendDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; p_AlphaBlendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; p_AlphaBlendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; p_AlphaBlendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; p_AlphaBlendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ZERO; p_AlphaBlendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; p_AlphaBlendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; p_AlphaBlendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
Code:
p_3DContext->OMSetBlendState(p_AlphaBlendState, NULL,0xFFFFFF);//Set Alpha Blenddesc p_3DContext->IASetInputLayout(p_InputLayout); p_3DContext->IASetVertexBuffers(0, 1, &p_Clients[param_Spritestorage]->p_VertexBuffer_, &p_Stride, &p_Offset); p_3DContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); p_3DContext->VSSetShader(p_Solid2DVS, 0, 0); p_3DContext->PSSetShader(p_Solid2DPS, 0, 0); p_3DContext->PSSetShaderResources(0, 1, &p_Clients[param_Spritestorage]->p_ColorMap_); p_3DContext->PSSetSamplers(0, 1, &p_Clients[param_Spritestorage]->p_ColorMapSampler_); XMMATRIX world = p_Clients[param_Spritestorage]->GetWorldMatrix(); XMMATRIX mvp = XMMatrixMultiply(world, p_2DMatrix); mvp = XMMatrixTranspose(mvp); p_3DContext->UpdateSubresource(p_Clients[param_Spritestorage]->p_MvpCB_, 0, 0, &mvp, 0, 0); p_3DContext->VSSetConstantBuffers(0, 1, &p_Clients[param_Spritestorage]->p_MvpCB_); p_3DContext->Draw(6, 0); p_3DContext->OMSetBlendState(p_BlendState, NULL, 0xFFFFFFFF);//Restore non alpha Blenddesc