Hallo! Ich versuche mich seit langem mal wieder an einem Forward-Renderer und möchte gerne mehrere Lichtquellen in eine Szene setzen. Aktuell render ich folgendermaßen:
Erster Pass mit Licht eins:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
blendStateDescription.RenderTarget[0].BlendEnable = TRUE;
blendStateDescription.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE;
blendStateDescription.RenderTarget[0].DestBlend = D3D11_BLEND_ZERO;
blendStateDescription.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
blendStateDescription.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_SRC_ALPHA;
blendStateDescription.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA;
blendStateDescription.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
blendStateDescription.RenderTarget[0].RenderTargetWriteMask = 0x0f;
|
Zweiter Pass mit Licht zwei:
|
C-/C++-Quelltext
|
1
|
blendStateDescription.RenderTarget[0].DestBlend = D3D11_BLEND_ONE;
|
Leider sehe ich nichts von meiner zweiten Lichtquelle. Wenn ich die Passes vertausche, dann sehe ich mein Objekt transparent, aber immer noch mit nur einem Licht. Hat jemand eine Idee, wie die Blendstates sein müssen?
Anbei noch zwei Screenshots.
1. Bild: ONEZERO, ONEONE
2. Bild: ONEONE, ONEZERO