Game Development Reference
In-Depth Information
Shaders
We need two more things before we can actually render a 3D object. The first, and
most important one, is the set of shaders that we will use to define the look of the ob-
ject and tell the GPU what to do.
A shader is a small program written in a custom language (in this case, the High Level
Shader Language—HLSL) that describes how the different stages of the pipeline will
operate to render to the screen. There are a few different types of shaders; however,
we only really need to cover the vertex and pixel shaders before any 3D rendering
can be done.
Vertex shaders
The first shader that we will look at is the vertex shader. This shader is responsible for
taking the vertices from our buffer and making sure they are in the right place relative
to the virtual camera in the world.
A common vertex shader looks like the following:
cbuffer WVP : register(b0)
{
matrix World;
matrix View;
matrix Projection;
};
float3 main(float3 inputPos : POSITION) :
POSITION
{
float4 pos = float4(inputPos, 1.0f);
pos = mul(pos, World);
pos = mul(pos, View);
pos = mul(pos, Projection);
return pos;
}
Search WWH ::




Custom Search