D3D11的简单字体

本篇的任务是要先学会混合和纹理才能够做到的。

这儿有几种方法能够在D3D11中实现字体显示,一个是学会使用微软想要我们使用的两个新的API,Direct2D和DirectWrite,实际上它们是很有用处的,暂不提它们的灵活性(除了不能够直接使用D3D11设备之外),它的缺点就是 由于不能够直接在D3D11中使用,需要在D3D10.1的设备中使用,导致在渲染时需要在这两种设备之间切换。


本篇是在混合篇基础上进行的,做了一些细微的改动。这儿将会学会到如何同步api。

在d3d11中渲染字体到屏幕会比较慢。


D3D11中的字体渲染(使用Direct2D)

在initializeD3D函数中初始化direct3d 10.1设备,direct2d和directdraw。另外一个从initscene函数调用的函数将会创建一个矩形用来渲染direct2d渲染目标纹理,从direct2d和direct3d 10.1纹理渲染创建一个着色器资源视图。该视图将用于纹理化那个矩形。

想要更为灵活和好看的字体还是用Direct2D ,然而,微软却没有让Direct2D直接作用于Direct3D 11。 

那么要怎么在一个D3D11的应用程序中使用D2D呢?需要使用一种叫做窗口共享(surface sharing)的技术。使用这种方法,能够使用带direct3d 10.1设备的direct2d来渲染到一个窗口,随后使用direct3d 11设备,渲染那个共享窗口(direct3d 10.1和direct2d渲染的)到屏幕空间(该屏幕空间覆盖了整个场景)的矩形上。


同步共享窗口

D3D11, D3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值