第 20 课:World Space and the Model Matrix
实现:M_model = M_translation x M_rotation x M_scale
实现
cbuffer Transform : register(b0) {
float4x4 modelMatrix;
float4x4 viewMatrix;
float4x4 projectionMatrix;
};
struct VSInput {
float3 position : Position;
};
struct VSOutput {
float4 position : SV_Position;
float3 wolrdPos : POSITION0;
};
VSOutput main(VSInput input) {
VSOutput output;
// setWorldPosition
float4 worldPos = mul(modelMatrix, float4(input.position, 1.0));
float4 viewPos = mul(viewMatrix, worldPos);
output.position = mul(projectionMatrix, viewPos);
output.wolrdPos = worldPos.xyz;
return output;
}
复盘笔记
- M_model = M_translation x M_rotation x M_scale