float4x4 World;
float4x4 View;float4x4 Projection;
float4 AmbientColor = float4(1, 1, 1, 1);
float AmbientIntensity = 0.1;
struct VertexShaderInput
{
float4 Position : POSITION0;
};
struct VertexShaderOutput
{
float4 Position : POSITION0;
};
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
VertexShaderOutput output;
float4 worldPosition = mul(input.Position, World);
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
return output;
}
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
return AmbientColor * AmbientIntensity;
}
technique Ambient
{
pass Pass1
{
VertexShader = compile vs_2_0 VertexShaderFunction();
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}
i am trying to learn how to use shaders with directx and i found this code over d net
icould not understand the following thingsin above code
float4 Position : (POSITION0)?;
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 ?
Also how these function works
technique Ambient
{
pass Pass1(wt is this)
{
VertexShader = compile vs_2_0 VertexShaderFunction();
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}
Also, let me know if there is any video tutorial on shaders with directx.
3 replies to this topic
Sponsor:
#2 Members - Reputation: 210
Posted 02 June 2012 - 01:31 PM
What about those 2 lines do you not understand? They map vertex data to variables inside the shader. In this case position and a diffuse colour I guess.
As for the technique thingy it's a d3dx utility to use and manage shaders at a higher level.
As for the technique thingy it's a d3dx utility to use and manage shaders at a higher level.
#3 Members - Reputation: 127
Posted 04 June 2012 - 03:01 PM
float4 Position : (POSITION0)?;
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 ?
so the above functions are used to
map vertex data to variables inside the shader but what is the vertex data in the above two lines of code. (can you elaborate)
Also suggest me a site or a tutorial where i can start learning to program shaders
#4 Members - Reputation: 767
Posted 04 June 2012 - 04:09 PM
The first line you ask about is not a function. It is part of a struct definition. I think what is confusing you are the semantics at the end of the line. They serve to describe the intended use of a variable or a function's return value. I'm not familiar of a site from which to learn other MSDN.
Oh, and vertex data is mapped to the vertex shader's input. The way the vertex data is structured and sent is defined in the application using the DirectX API. The vertex shader needs to be written to expect it's input the same format the app is written to send it.
Oh, and vertex data is mapped to the vertex shader's input. The way the vertex data is structured and sent is defined in the application using the DirectX API. The vertex shader needs to be written to expect it's input the same format the app is written to send it.






