一、前言
Hull Shader是舞台工作三个阶段的第一个阶段,可以实现tessellation,
Hull Shader transforms将一组输入控制点 转化为 输出控制点,输入、输出点的数量根据转换内容和数量而变化
二、设计Hull shader
三、通过ID3D11Device::CreateHullShader创建hull-shader对象
HRESULT CreateHullShader(
const void *pShaderBytecode,
SIZE_T BytecodeLength,
ID3D11ClassLinkage *pClassLinkage,
ID3D11HullShader **ppHullShader
);
四、使用ID3D11DeviceContext::HSSetShader,初始化pipeline stage
void HSSetShader(
ID3D11HullShader *pHullShader,
ID3D11ClassInstance *const *ppClassInstances,
UINT NumClassInstances
);
注: 如果绑定了hull shader, 则domain shader 必须绑定管道,否则使用geometry shader直接输出 hull shader 控制点是无效的