实现效果:
在cube上实现纹理映射
process:
将纹理坐标附加到顶点信息中;
使用工具将JPG等图片转化为DDS格式;
使用DDSTextureLoader module加载DDS,得到ID3D11ShaderResourceView。
填充D3D11_SAMPLER_DESC来创建ID3D11SamplerState
着色器代码如下:
Texture2D txDiffuse : register( t0 );
SamplerState samLinear : register( s0 );
//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS( PS_INPUT input) : SV_Target
{
return txDiffuse.Sample( samLinear, input.Tex ) ;
}
如果将纹理作为材质与光照混合,可以采用如下公式:
litColor = texColor*(ambient + diffuse) + spec;
镜面光仍采用原光色,环境光和漫反射光采用纹理反射后的颜色。