實現效果:
在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;
鏡面光仍採用原光色,環境光和漫反射光采用紋理反射後的顏色。