Ich habe mir mal wie in dem Artikel beschrieben eine Textur erstellt, aber leider schwarz :-( Wird das falsch initialisiert oder einfach nicht an den Shader übergeben, bzw. ich Shader nicht verarbeitet? Bei letzterem, was bekommt der Shader?
Code: Alles auswählen
float l_pTextureData[][4] = {
// Mip-Level 0
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
// Mip-Level 1
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
// Mip-Level 2
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
( 0.9f, 0.1f, 0.1f, 1.0f ), ( 0.9f, 0.1f, 0.1f, 1.0f ),
};
DXGI_SAMPLE_DESC sd;
sd.Count = 1;
sd.Quality = 0;
D3D11_TEXTURE2D_DESC white;
white.Height = 8;
white.Width = 8;
white.MipLevels = 3;
white.ArraySize = 1;
white.Format = DXGI_FORMAT_R32G32B32A32_FLOAT; //DXGI_FORMAT_R8_UNORM;
white.SampleDesc = sd;
white.Usage = D3D11_USAGE_IMMUTABLE;
white.BindFlags = D3D11_BIND_SHADER_RESOURCE;
white.CPUAccessFlags = 0;
white.MiscFlags = 0;
D3D11_SUBRESOURCE_DATA texSubsource[3] = {
{ &l_pTextureData[ 0][0], white.Width * 4 * sizeof(float), 0, },
{ &l_pTextureData[64][0], (white.Width * 4 * sizeof(float))/2, 0, },
{ &l_pTextureData[80][0], (white.Width * 4 * sizeof(float))/4, 0, },};
pd3dDevice->CreateTexture2D(&white, &texSubsource[3], &texWhite);
D3D11_SHADER_RESOURCE_VIEW_DESC l_SRVDesc = { white.Format, D3D11_SRV_DIMENSION_TEXTURE2D, 0, white.MipLevels, };
pd3dDevice->CreateShaderResourceView(texWhite, &l_SRVDesc, &m_pTextureView);
//im Framerenderer nach der Shaderinitialisierung
pd3dImmediateContext->PSSetShaderResources(0,1,&m_pTextureView);