在D3D12中,我怎样画方形?以下代码只能绘制第一个三角形.
为什么D3D12中没有D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLELIST?TRIANGLELIST有什么选择吗?或者有没有办法直接画广场?
// Describe and create the graphics pipeline state object (PSO).
D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {};
psoDesc.InputLayout = { inputElementDescs, _countof(inputElementDescs) };
psoDesc.pRootSignature = g_rootSignature.Get();
psoDesc.VS = CD3DX12_SHADER_BYTECODE(vertexShader.Get());
psoDesc.PS = CD3DX12_SHADER_BYTECODE(pixelShader.Get());
psoDesc.RasterizerState = CD3DX12_RASTERIZER_DESC(D3D12_DEFAULT);
psoDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT);
psoDesc.DepthStencilState.DepthEnable = FALSE;
psoDesc.DepthStencilState.StencilEnable = FALSE;
psoDesc.SampleMask = UINT_MAX;
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
psoDesc.NumRenderTargets = 1;
psoDesc.RTVFormats[0] = DXGI_FORMAT_R8G8B8A8_UNORM;
psoDesc.SampleDesc.Count = 1;
if (SUCCEEDED(g_pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&g_pipelineState))))
{
cout << "CreateGraphicsPipelineState passed";
}
else
{
cout << "CreateGraphicsPipelineState failed";
return E_FAIL;
}
}
// Create the …Run Code Online (Sandbox Code Playgroud) 我是 Direct3d 编程的新手,我一直在构建一个简单的 Windows 应用程序,用 d3d12 一个接一个地显示 4 个图像。我对 D3D12 架构有一个基本的了解,到目前为止我已经创建了四个命令分配器(backb 缓冲区大小 = 4)、一个命令列表、一个命令队列、描述符堆和一个栅栏。我还使用 WIC 从文件加载了我的图像。我知道我必须以某种方式将图像纹理数据作为资源。虽然这部分还不清楚,但我想澄清一下如何从 d3d12 中加载的图像中制作纹理。
这是如何在DirectX 11中绘制文本的后续问题?
在Direct3D-12中,事情变得更加复杂,因为它是新的,我无法在线找到任何合适的库.
我正在构建一个基本的Direct3D12 FPS测试应用程序,我喜欢用我的渲染图像在屏幕上显示FPS数据.
我一直在试图弄清楚如何在 DX12 中将整个场景渲染为纹理。我知道如何在 OpenGL 中执行此操作,但在 DirectX12 中无法解决此问题。另外,网上关于它是如何完成的资源并不多。
(目前我们在场景中有一个 3D 模型渲染,并应用了纹理)
有没有人能指点我一些资源,我可以用这些资源在 DX12 中学习渲染目标和渲染到纹理?或者有什么好的网站?
任何帮助深表感谢。
亲切的问候,查理
我正在使用ID3D12Resource::Map方法来更新GPU资源.这是最有效的方式吗?有哪些替代方案?
Run Code Online (Sandbox Code Playgroud)XMMATRIX XM_CALLCONV XMMatrixInverse(XMVECTOR *pDeterminant, FXMMATRIX M);
我刚刚开始学习directx,我不明白为什么这个函数除了原始矩阵本身之外还要求行列式参数来计算逆。
根据我在数学部分的记忆,仅输入矩阵就足够了:
orig matrix -> cofactor matrix -> adjoint matrix
orig matrix -> det[orig matrix]
inverse = adjoint/det
Run Code Online (Sandbox Code Playgroud)
那么为什么它需要额外的参数呢?加快计算,消除上面的第二步?
directx-12 ×7
c++ ×4
direct3d12 ×3
directx ×2
direct3d ×1
directdraw ×1
game-engine ×1
graphics ×1
hlsl ×1
visual-c++ ×1