Sign in to follow this  
Migi0027

C++ Directx Ambient Light issue.

Recommended Posts

I'm currently having a problem with lighting in Directx 11, actually its ambient lighting. Here is the code:

[CODE]
cbuffer ConstantBuffer
{
float4x4 final;
float4x4 rotation; // the rotation matrix
float4 lightvec; // the light's vector
float4 lightcol; // the light's color
float4 ambientcol; // the ambient light's color
}
struct VOut
{
float4 color : COLOR;
float4 position : SV_POSITION;
};
VOut VShader(float4 position : POSITION, float4 normal : NORMAL)
{
VOut output;
output.position = mul(final, position);
// set the ambient light
output.color = ambientcol;
// calculate the diffuse light and add it to the ambient light
float4 norm = normalize(mul(rotation, normal));
float diffusebrightness = saturate(dot(norm, lightvec));
output.color += lightcol * diffusebrightness;
return output;
}
float4 PShader(float4 color : COLOR) : SV_TARGET
{
return color;
}
[/CODE]

Then i send the values to the shader:

[CODE]
ambLight.LightVector = D3DXVECTOR4(1.0f, 1.0f, 1.0f, 0.0f);
ambLight.LightColor = D3DXCOLOR(0.5f, 0.5f, 0.5f, 1.0f);
ambLight.AmbientColor = D3DXCOLOR(0.2f, 0.2f, 0.2f, 1.0f);

ShaderManager.UpdateSubresourceDiffuseShader(devcon);
[/CODE]

And then i get the following:

Attached image

Why?

Share this post


Link to post
Share on other sites
You didn't say what's the problem.

Your ambient light is D3DXCOLOR(0.2f, 0.2f, 0.2f, 1.0f); and box is almost black, seems right to me.

Share this post


Link to post
Share on other sites
[quote name='Tordin' timestamp='1344077359' post='4966080']
are you sure you are not reffering to that your directional light dosent work?
[/quote]

I'm following a tutorial from DIrectxtutorial.com you cant see it because you need to be premium, well if you are, its the dx11 lighting tutorial.
Its supposed to look like this:
[img]http://www.directxtutorial.com/Tutorial11/B-C/Graphics/dx11BC4-15.PNG[/img]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this