小节已经被-ecc 算法p 256曲线 规范

时间:2024-07-01 03:56:36
【文件属性】:

文件名称:小节已经被-ecc 算法p 256曲线 规范

文件大小:6.56MB

文件格式:PDF

更新时间:2024-07-01 03:56:36

DX12游戏开发

函数设置命令列表所需要的根签名(ID3D12RootSignature),该根签名在 8.5 小节已经被 创建。通过 ID3D12GraphicsCommandList:: SetDescriptorHeaps()函数设置常量缓冲区视 图的堆描述符(ID3D12DescriptorHeap),此堆描述符在 8.6.5 小节被创建。 通过 ID3D12GraphicsCommandList:: SetGraphicsRootDescriptorTable ()函数将当前 帧的常量缓冲区绑定到管道,在本例中其实就是将常量缓冲区视图的堆描述符设置为描述 符表的图形根签名。该函数有 2 个参数,第一个参数绑定的插槽编号,本例中只有一个常 量堆,所以编号为 0;第二个参数是一个 D3D12_GPU_DESCRIPTOR_HANDLE 类型参 数,表示 GPU 描述符句柄。要想更容易地创建 GPU 描述符句柄,可以通过另外一个类 CD3DX12_GPU_DESCRIPTOR_HANDLE 来创建,该类有一个构造函数,需要 3 个参 数,第一个参数是堆起始的 GPU 描述符句柄,这里其实就是常量堆的起始的描述句柄, 通过函数 ID3D12DescriptorHeap::GetGPUDescriptorHandleForHeapStart()来获得此句 柄;第二个参数是描述符的偏移数(使用的是 3 缓存);第三个参数是每个常量堆描述符 的大小。具体代码如下所示: // 设置要由此帧使用的图形根签名和描述符堆。 m_commandList->SetGraphicsRootSignature(m_rootSignature.Get()); ID3D12DescriptorHeap* ppHeaps[] = { m_cbvHeap.Get() }; m_commandList->SetDescriptorHeaps(_countof(ppHeaps), ppHeaps); // 将当前帧的常量缓冲区绑定到管道。 CD3DX12_GPU_DESCRIPTOR_HANDLE gpuHandle( m_cbvHeap->GetGPUDescriptorHandleForHeapStart(), m_deviceResources->GetCurrentFrameIndex(), m_cbvDescriptorSize); m_commandList->SetGraphicsRootDescriptorTable(0, gpuHandle); 图像命令列表可以同时渲染到多个视口上,将视口数组绑定到流水线的光栅化阶段的 方法是 ID3D12GraphicsCommandList::RSSetViewports(),它有 2 个参数,第一个参数是 视口的数量,第二个参数是 D3D12_VIEWPORT 类型的视口数组指针。视口的大小在本例 中,保持与窗口的大小一致,窗口的大小在 8.4.1 小节已经求出。


网友评论