Skip to main content
GameDev.net gamedev.net
🔒 Locked

Help Regarding hlsl shaders

Started by Lakshmi Narayan Jun 2, 2012 at 7:23 PM 2 replies 1.4k views
Original Post
Lakshmi Narayan
Lakshmi Narayan
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.
Fredericvo
Fredericvo
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.
Lakshmi Narayan
Lakshmi Narayan
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]float4 Position : (POSITION0)?;[/background]

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 ?[/background]

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]so the above functions are used to [/background]

[/font]

[background=rgb(250, 251, 252)][font="helvetica, arial, verdana, tahoma, sans-serif"][size="2"][color="#282828"]map vertex data to variables inside the shader but what is the vertex data in the above two lines of code. (can you elaborate)[/font][/background]



[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][size=1]

[background=rgb(250, 251, 252)]Also suggest me a site or a tutorial where i can start learning to program shaders [/background]

[/font]

yckx
yckx
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.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.