光照演示程序(第八章内容)
光照演示程序(第八章内容) 8.14、光照演示程序 本章演示程序基于上一章的“陆地与波浪演示程序”的基础上构建而成的,其中利用了一个方向光来表示太阳,用户可以使用方向键来控制太阳的方向。 8.14.1、顶点格式 光照的计算需要依赖于表面法线,所以我们会 在顶点层级定义法线 ,方便在光栅化过程中进行插值计算,由此展开逐像素光照。同时我们也 不需要指定顶点的颜色 ,而是以每一个像素应用光照方程之后所生成的像素颜色代替指定顶点颜色。下面是顶点结构体: //c++顶点结构体 struct Vertex { DirectX::XMFLOAT3 Pos; DirectX::XMFLOAT3 Noraml; } //对应的HLSL顶点结构体 struct VertexIn { float3 PosL : POSITION; float3 NormalL : NORMAL; } //新的输入布局描述 mInputLayout = { { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D12_INPUT_CLASSIFICATION_PER