DirectX12环境配置(1)

开发环境:visual studio 2022 

第一种配置DirectX12环境得方式。首先创建一个c++得空项目,然后创建一个main.cpp文件。把下面这串代码放进去,先不用管这串代码什么意思,后面会逐行逐句得讲解,因为我们创建得是空项目,默认就是控制台项目,我们需要将项目改成窗体项目,在属性-》连接器-》系统选项里面更改为窗口项目就可以了。

#pragma comment(lib,"d3dcompiler.lib")
#pragma comment(lib, "D3D12.lib")
#pragma comment(lib, "dxgi.lib")
#include <Windows.h>
#include <d3d12.h>
#include <dxgi1_6.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    // 创建窗口
    HWND hwnd;
    WNDCLASSEX wc = {};
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.lpszClassName = L"DirectX12Sample";
    RegisterClassEx(&wc);

    RECT windowRect = { 0, 0, 800, 600 };
    AdjustWindowRect(&windowRect, WS_OVERLAPPEDWINDOW, FALSE);
    hwnd = CreateWindowEx(0, L"DirectX12Sample", L"DirectX 12 Sample", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
        windowRect.right - windowRect.left, windowRect.bottom - windowRect.top, NULL, NULL, hInstance, NULL);

    // 初始化 DirectX 12
    ID3D12Device* pDevice;
    ID3D12CommandQueue* pCommandQueue;
    //HRESULT WINAPI D3D12CreateDevice(
    //    _In_opt_ IUnknown * pAdapter,
    //    D3D_FEATURE_LEVEL MinimumFeatureLevel,
    //    _In_ REFIID riid, // Expected: ID3D12Device
    //    _COM_Outptr_opt_ void** ppDevice);
    D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&pDevice));

    D3D12_COMMAND_QUEUE_DESC queueDesc = {};
    queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;
    pDevice->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&pCommandQueue));

    // 显示窗口
    ShowWindow(hwnd, nCmdShow);

    // 主消息循环
    MSG msg = {};
    while (true)
    {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);

            if (msg.message == WM_QUIT)
                break;
        }

        // 渲染逻辑

        // 在此处执行绘制命令

        // 交换前后缓冲区
        // pCommandQueue->Present();

        // 在这里添加帧同步逻辑,确保帧速率
    }

    // 清理资源
    // 释放 DirectX 12 对象

    return static_cast<int>(msg.wParam);
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    default:
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
}

第二种配置方式是通过visual studio来配置。

首先还是跟上面一样,先创建一个空项目。然后在属性里面进行配置。

1.选择VC++目录,然后点击包含目录,包含:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um两个文件夹(注意10.0.19041.0是我电脑上面的版本,大家的可能不一样),最后点击确定。
2.点击库目录,添加相应的库,我们需要添加的库文件夹为:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64

然后点击确定就可以了

3.添加了库目录,我们还需要添加附加依赖项,所以选择链接器,然后选择输入,最后点击附加依赖项,输入d3d12.lib、dxgi.lib和d3dcompiler.lib设置好了就可以点击确定了。

将上面环境配置好之后,同样将控制台项目更改为窗体项目,将上面这串代码复制进去,能运行就说明环境配置好了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《DirectX 11 3D 游戏编程介绍》是一本探索使用DirectX 11进行3D游戏编程的入门指南。作者在书中详细介绍了使用DirectX 11构建高性能、交互性强的3D游戏的基本原理和技术。 这本书首先向读者介绍了DirectX 11的基本知识,包括如何安装和配置DirectX 11开发环境,以及如何使用DirectX 11的各种工具和函数编写3D游戏程序。接着,作者解释了3D计算机图形学的基础知识,如顶点和像素着色器、纹理贴图和辐射衰减等。通过这些基础知识的介绍,读者可以快速掌握构建3D游戏所需的关键技术。 在介绍了基本概念之后,书中详细介绍了使用DirectX 11来创建各种类型的3D游戏元素,如物体、相机、光照等。通过丰富的示例代码和图文并茂的解释,读者可以了解到如何创建和渲染一个真实感十足的3D场景。 除了基本的游戏元素之外,本书还涵盖了一些高级主题,如阴影、环境映射以及粒子系统等。这些高级技术的介绍,使读者能够在游戏中添加更多的特效和细节,提高游戏的表现力和吸引力。 总之,《DirectX 11 3D 游戏编程介绍》是一本全面而深入的指南,适合对DirectX 11编程感兴趣的读者。通过阅读本书,读者可以快速掌握使用DirectX 11构建3D游戏所需的基本知识和技术,为自己的游戏编程之路打下坚实的基础。 ### 回答2: 《DirectX 11 3D游戏编程入门》是一本介绍使用DirectX 11进行3D游戏编程的书籍。这本书深入探讨了如何使用DirectX 11框架来创建高质量的游戏图形和动画效果。 首先,书中介绍了DirectX 11的基本原理和概念,包括DirectX API、3D渲染管线以及基本的数学知识。读者将学习如何使用DirectX 11的各个组件来创建并控制游戏世界的各个方面,包括场景、模型、光照、纹理和动画等。 其次,书中还涵盖了一些高级主题,如几何处理、阴影技术和物理仿真。通过学习这些技术,读者将能够创建更加真实和逼真的游戏效果。 除了理论知识,这本书还提供了大量的实际编程示例和练习,帮助读者巩固所学的内容。读者将通过实践性的编程项目来运用所学知识,提高自己的编程能力和理解。书中的示例代码和项目都是使用C++语言编写的,读者需要基本的C++编程知识。 总而言之,《DirectX 11 3D游戏编程入门》是一本全面介绍使用DirectX 11进行游戏编程的教材。无论是对于初学者还是已有一定游戏开发经验的读者来说,都是一本不可或缺的学习资源。通过学习这本书,读者将能够掌握使用DirectX 11创建引人入胜的3D游戏的技能。 ### 回答3: 《DirectX 11 3D游戏编程入门》是一本介绍使用DirectX 11进行3D游戏编程的入门教材。DirectX 11是微软的一个图形编程接口,它提供了丰富的功能和工具,方便开发者实现高性能、逼真的图形效果。 本书首先介绍了计算机图形学的基础知识,如顶点、三角形、光照、材质等。然后详细介绍了DirectX 11的各个组件和功能,如绘制2D图形、创建3D模型、使用着色器编程、应用纹理和光照效果等。 书中通过一系列具体的示例代码和案例,手把手地教读者如何使用DirectX 11进行游戏编程。读者可以学会如何加载模型、设置相机视角、实现场景渲染等基本功能。同时,本书还介绍了一些高级的特效技术,如阴影和反射效果的实现。 在学习过程中,本书鼓励读者动手实践,通过编写自己的游戏项目来巩固所学知识。此外,本书还提供了一些调试技巧和最佳实践,帮助读者解决常见的问题,并编写出高效、稳定的游戏程序。 总之,《DirectX 11 3D游戏编程入门》是一本系统、全面介绍DirectX 11游戏编程的教材,适合有一定编程基础和对3D游戏开发感兴趣的读者阅读。通过学习本书,读者可以了解DirectX 11的核心概念和基本功能,掌握基于DirectX 11的3D游戏开发技巧,为进一步深入学习和开发打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值