跳到主要内容
← Vertex Transformations

Vertex Transformations

View Space

shader-learning 自学第 21 课:View Space

实时渲染 · 网格 HLSL

第 21 课:View Space

实现

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;

  float4 worldPos = mul(modelMatrix, float4(input.position, 1.0));

  // setViewPosition
  float4 viewPos =  worldPos;
  viewPos = mul(viewMatrix, viewPos);
  output.position = mul(projectionMatrix, viewPos);
  output.wolrdPos = worldPos.xyz;

  return output;
}