Directx11 渲染阶段

本文介绍了DirectX11中光栅化阶段的关键概念,包括ID3D11RasterizerState接口,用于配置光栅化状态。讨论了FillMode、CullMode和FrontCounterClockwise属性,以及如何创建和切换不同的光栅化状态对象,强调了正确设置状态的重要性,以避免不正确的渲染输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    D3D基本上是一个状态机。其中的事物都会停留在当前的状态,直到我们去改变他们。例如我们之前看到的,输入布局,顶点缓冲区,索引缓冲区在绑定到输入装备阶段后驻留在那,直到我们绑定其他的缓冲;同样地,当前设置的图元拓扑在它被改变之前一直都生效。另外,D3D具有状态组,可以封装用来配置D3D的设置。

    1.ID3D11RasterizerState:该接口表示用于配置光栅化阶段的状态组。
    2.ID3D11BlendState:该接口表示配置混合操作的状态组。默认设置中,混合是禁用的,所以暂时不用管它。
    3.ID3D11DepthStencilState:该接口表示用于配置深度和模版的状态组。默认设置中,模版是禁用的,所以暂时不用管它。默认的深度测试设置是标准深度测试。

    目前,我们唯一关注的状态块接口是ID3D11RasterizerState接口。我们可以通过填写一个D3D11_RASTERIZER_DESC结构体来创建一个该类型的接口并调用它。

HRESULT ID3D11Device::CreateRasterizerState(
    const D3D11_RASTERIZER_DESC *pRasterizerDesc,
    ID3D11RasterizerState **ppRasterizerState);

    第一个参数是D3D11_RASTERIZER_DESC的指针,用于描述创建的光栅化状态块。第二个参数用于返回一个已创建好的ID3D11RasterizerState接口的指针。
    ID3D11RasterizerState

不错的dx11入门教程 Tutorial 1: Setting up DirectX 11 with Visual Studio Tutorial 2: Creating a Framework and Window Tutorial 3: Initializing DirectX 11 Tutorial 4: Buffers, Shaders, and HLSL Tutorial 5: Texturing Tutorial 6: Diffuse Lighting Tutorial 7: 3D Model Rendering Tutorial 8: Loading Maya 2011 Models Tutorial 9: Ambient Lighting Tutorial 10: Specular Lighting Tutorial 11: 2D Rendering Tutorial 12: Font Engine Tutorial 13: Direct Input Tutorial 14: Direct Sound Tutorial 15: FPS, CPU Usage, and Timers Tutorial 16: Frustum Culling Tutorial 17: Multitexturing and Texture Arrays Tutorial 18: Light Maps Tutorial 19: Alpha Mapping Tutorial 20: Bump Mapping Tutorial 21: Specular Mapping Tutorial 22: Render to Texture Tutorial 23: Fog Tutorial 24: Clipping Planes Tutorial 25: Texture Translation Tutorial 26: Transparency Tutorial 27: Reflection Tutorial 28: Screen Fades Tutorial 29: Water Tutorial 30: Multiple Point Lights Tutorial 31: 3D Sound Tutorial 32: Glass and Ice Tutorial 33: Fire Tutorial 34: Billboarding Tutorial 35: Depth Buffer Tutorial 36: Blur Tutorial 37: Coming Soon... DirectX 10 Tutorials: Tutorial 1: Setting up DirectX 10 with Visual Studio Tutorial 2: Creating a Framework and Window Tutorial 3: Initializing DirectX 10 Tutorial 4: Buffers, Shaders, and HLSL Tutorial 5: Texturing Tutorial 6: Diffuse Lighting Tutorial 7: 3D Model Rendering Tutorial 8: Loading Maya 2011 Models Tutorial 9: Ambient Lighting Tutorial 10: Specular Lighting Tutorial 11: 2D Rendering Tutorial 12: Font Engine Tutorial 13: Direct Input Tutorial 14: Direct Sound Tutorial 15: FPS, CPU Usage, and Timers Tutorial 16: Frustum Culling Tutorial 17: Multitexturing and Texture Arrays Tutorial 18: Light Maps Tutorial 19: Alpha Mapping Tutorial 20: Bump Mapping Tutorial 21: Specular Mapping Tutorial 22: Render to Texture Tutorial 23: Fog Tutorial 24: Clipping Planes Tutorial 25: Texture Translation Tutorial 26: Transparency Tutorial 27: Reflection Tutorial 28: Screen Fades Tutorial 29: Water Tutorial 30: Multiple Point Lights Tutorial 31: 3D Sound Tutorial 32: Glass and Ice Tutorial 33: Fire Tutorial 34: Billboarding Tutorial 35: Depth Buffer Tutorial 36: Blur Tutorial 37: Coming Soon... DirectX 10 Terrain Tutorials: Tutorial 1: Grid and Camera Movement Tutorial 2: Height Maps Tutorial 3: Terrain Lighting Tutorial 4: Terrain Texturing Tutorial 5: Color Mapped Terrain Tutorial 6: Quad Trees Tutorial 7: Coming Soon... 。。。。。。。。
DirectX(Direct eXtension,简称DX),是由微软公司创建的多媒体编程接口。由C 编程语言实现,遵循COM。它能够帮助以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果。   最新版本为DirectX 11,直接内置在windows7系统中,其他的系统则需要独立安装。   dx11 安装方法: 1、解压下载的文件。 2、双击“directx_11_redist.exe”,点击“YES”--“browse”--选择路径如c:\dx11。 3、进入c:\dx11目录,找到exe文件,双击安装,完成后重启。   DirectX 11 新技术: 1.Direct3D11渲染管线 DirectX 11加入了对Tessellation(镶嵌)的支持。Tessellation 由外壳着色器(Hull Shader)、镶嵌单元(tessellator)以及域着色器(Domain Shader)组成。同时还加入了计算着色器(Compute Shader) 2.Tessellation镶嵌技术 tessellator可以把一些较大的图元(primitive)分成很多更小的图元,并将这些小图元组合到一起,形成一种有序的几何图形,这种几何图形更复杂,当然也更接近现实。这个过程也被称作细分曲面(Subdivision Surfaces)。举例来说,tessellator可以让一个立方体,通过处理看起来像是个球形,这样的话无疑节省了空间。此外,图形的质量、性能以及可控性也达到了一定的促进。 3.多线程的支持 DX11特性还包括很重要一点:支持多线程(multi-threading)。DX11的这种多线程技术可能并不能加速绘图的子系统(特别是当我们的GPU资源受限时),但是这样却可以提升线程启动游戏的效率,并且可以利用台式CPU核心数量不断提高所带来的潜力。  4.计算着色器Compute Shader CS的这一渲染管线能够进行更多的通用目的运算。我们既能在某种可以用来被执行数据的操作中看到这种特性,又能在某种可以用来操作的数据中看到这种特性。  5.Shader Model 5.0 DirectX 11包含的SM 5.0,采用面向对象的概念,并且完全可以支持双精度数据。随着SM 5.0的发布,微软也会将HLSL语言更新至最新版本,其中包含了诸如动态着色、动态分支和更多的对象等。 6.改进的纹理压缩 DirectX 11提出了更为出色的纹理压缩算法——BC6和BC7。BC6是为HDR图像设计的压缩算法,压缩比为6∶1;而BC7是为低动态范围纹理设计的压缩模式,压缩比为3∶1。两种压缩算法在高压缩比下画质损失更少,效果更出色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值