directx-12 - D3D12 ClearRenderTargetView
问题描述
传递一个浮点数组并收到警告,“清除值与传递给资源创建的值不匹配。”
1 无警告地工作
2 没有,我尝试使用 GetFloatArray() 方法并仍然收到警告
渲染目标格式为:
clearValue.Format = DXGI_FORMAT::DXGI_FORMAT_R8G8B8A8_UNORM;
我的 CColor 对象:
float RGBA[4];
float* GetFloatArray()
{
return RGBA;
}
ClearRenderTargetView(s):
// #1
globalObjects->videoDevice->commandList->ClearRenderTargetView(
globalObjects->videoDevice->swapChainRenderTargets[globalObjects->videoDevice->frameIndex]->handle,
CColorCornflowerBlue.GetFloatArray(), 0, nullptr);
// #2
const float c[4] =
{
CColorLovelyPurple.RGBA[0],
CColorLovelyPurple.RGBA[1],
CColorLovelyPurple.RGBA[2],
CColorLovelyPurple.RGBA[3]
};
commandList->ClearRenderTargetView(renderTargets[globalObjects->videoDevice->frameIndex]->handle,
c, 0, nullptr);
任何想法或其他人是否有同样的问题将不胜感激。
解决方案
原来我不理解第二个渲染目标视图并且使用不正确。对于那些试图制造开销的人来说,它不是第二个渲染目标,而是一个 2D 图像。我的总体目标是开销而不是多个渲染目标。
commandList->CopyResource(texture->texture.Get(), renderTargets[globalObjects->videoDevice->frameIndex]->resource.Get());
推荐阅读
- ios - 如何使用 tableView 和 Realm 创建和保存一对多关系(父子)
- multithreading - 像特斯拉的 AutoPilot 这样的系统如何跟上不断变化的多进程请求?
- spring-boot - 使用 Eureka 服务器时出现“Whitelabel 错误页面”
- c - 创建隧道时需要“maxfd”吗?
- angular - 添加 FormGroup 后,Angular observable 更新得太早了
- javascript - 在文件浏览器中单击“打开”时如何提交照片上传
- c# - 为什么会发生这种异常?(任务取消异常)
- html - 如何更改循环创建的每个 div 的背景颜色?
- c++ - 直接从另一个类 c++ 使用对象
- cuda - CUDA cudaMemcpyFromSymbol“无效的设备符号”错误?