• 2024-05-05Direct3D 11(D3D11)是Microsoft DirectX API 中的一部分,Direct3D 12(D3D12)是微软开发的一种低级别的图形应用程序接口(API),旨在提供更高的性能
    Direct3D11编程指南-Win32apps|MicrosoftLearn什么是Direct3D12-Win32apps|MicrosoftLearnDirect3D12编程指南-Win32apps|MicrosoftLearn你可以使用以下命令来查询系统是否支持D3D12:CopyCodedxdiag运行此命令将打开DirectX诊断工具,你可以在其中
  • 2024-03-27d3d12龙书阅读----绘制几何体(上)
    d3d12龙书阅读----绘制几何体(上)本节主要介绍了构建一个简单的彩色立方体所需流程与重要的api下面主要结合立方体代码分析本节相关知识顶点输入装配器阶段的输入首先,我们需要定义立方体的八个顶点顶点结构体:structVertex{XMFLOAT3Pos;XMFLOAT4Color;};当然
  • 2024-03-12d3d12龙书阅读----Direct3D的初始化
    d3d12龙书阅读----Direct3D的初始化使用d3d我们可以对gpu进行控制与编程,以硬件加速的方式来完成3d场景的渲染,d3d层与硬件驱动会将相应的代码转换成gpu可以执行的机器指令,与之前的版本相比,d3d12大大减少了cpu的开销,同时也改进了对多线程的支持,但是使用的api也更加复杂。接下来,我
  • 2023-10-07从零开始的D3D12渲染框架 第0篇 设计思路
    DirectX12、Vulkan等下一代的渲染API在设计上相比OpenGL等上一代API有了很大的不同。下一代渲染API暴露了更多的GPU相关的细节部分,这允许程序员对GPU进行更加细致的控制,但同时也使得API本身变得更加琐碎与难用。这一系列文章用来记录我封装DirectX12的思路与心得,篇章之间不会有
  • 2023-05-07DX12 实战 blend
    前言本篇将展示如何使用DX12实现blend源代码D3D12atblend要点over&under算子blend的实现是基于over算子和under算子over含义:应对半透明物体在不透明物体前或半透明物体和半透明物体间的情况,它的顺序是从后向前——从源像素(PS中输出的片元)到目标像素(缓冲区内的片元)
  • 2023-05-05DX12 实现 模板——物体轮廓
    前言本篇将展示如何运用深度模板缓冲区来实现游戏中的物体轮廓效果源代码model_outline基础知识模板测试过程//compare_func:定义的比较函数。对两个参数进行比较//StencilRef:模板参考值//StencilReadMask:位于D3D12_DEPTH_STENCIL_DESC//Value:正在接受模板测试的值if
  • 2023-05-05DX12 实现 天空盒
    前言本篇将展示如何使用DX12实现天空盒源代码cubemap创建dds立方体贴图微软官方提供了一个命令行工具Texassemble,该工具可以将输入的几个图片转换为GPU可识别的DDS贴图,如立方体贴图语法texassemble<command>[-r][-flist<filename>][-wwidth][-hheight][-f
  • 2023-04-27DX12 实战 BlinnPhong & 纹理贴图
    前言本篇将展示如何实现BlinnPhong光照,以及为人物模型贴上纹理对于理论不清楚的小伙伴可以看这图形学理论局部光照,[图形学理论纹理贴图](https://www.cnblogs.com/chenglixue/p/17109214.html)具体代码看这github.com材质由于漫反射率和镜面反射率我们都是从纹理图中提取,因
  • 2023-04-21D3D12 实战 基础框架
    前言​ 本系列将用D3D12实现众多实时渲染算法,包括正向渲染、延时渲染、光线追踪,本篇将介绍以后常用到的基本框架​ 笔者会贴出重要的实现,且解释这些代码的作用,不过不会深入讲解其实现原理具体的还需读者自行学习实现Win32Application​ Win32Application主要用于处理Win32窗
  • 2023-03-26DX Shadow Map
    前言​ 目前我们以所学的渲染方式还不能表现出阴影,因此本篇将介绍阴影贴图原理、存在的问题、如何解决这些问题、实现例子阴影贴图原理思想:光源看不到而摄像机可以看
  • 2023-02-25DX 混合
    什么是混合?​ 混合可以使得我们将要光栅化的像素(源像素)和先前已光栅化至后台缓冲区的像素进行融合为什么需要混合?​ 混合主要用于渲染半透明物体,如水混合的基本操
  • 2023-02-24DX12 纹理贴图
    前言​ 本篇重在展示如何进行纹理贴图,理论还请看这https://www.cnblogs.com/chenglixue/category/2175285.html指定uv坐标​ 为了简易性,只展示立方体盒设置的uv坐标。理
  • 2023-02-16DX 使用常量缓冲区
    前言​ 本篇将展示如何使用常量缓冲区渲染一个移动的三角形,本篇基于绘制三角形篇展示新增步骤流程图shaderfile//常量寄存器由tn指定,n为寄存器槽号cbufferSceneCo
  • 2023-02-10纹理贴图
    什么是纹理?​ wikipedia上做了如下解释"Thespatialarrangementofcolororintensitiesinanimage.Thetexturemeanssmoothness,roughness,orbumpinessofthe
  • 2023-02-06DX12 HelloTriangle
    前言此篇将展示如何利用DX12绘制一个静态的三角形渲染流程与必备组件shader//cpu端structPSInput{ float4position:SV_POSITION; float4color:COLOR;};
  • 2023-01-19DX12 Hello World系列 基础篇(上)
    前言DX12对于初学者来说难度是偏大的,龙书确实写的不错,但笔者认为还是不够清晰,因此本篇将带你了解DX12最为基本的流程,希望能带你快速入门DX12本篇为上册,下册将讲解渲染管
  • 2022-10-04绘制几何体(实现)
    概述本篇运用classD3DApp、vertex、inputLayout、vertexBuffer、indexBuffer、constantBuffer、pixelShader、vertexShader、CompileFromFile、rootSignature、descripto
  • 2022-09-20绘制几何体
    1.定义、存储和绘制几何体数据1.1顶点与输入布局(定义)除空间信息,Direct3D中的顶点还可以存储其他属性数据为创建自定义的顶点格式,首先需要创建一个结构体来容纳顶