Direct 2D/3D
gnimgnot
这个作者很懒,什么都没留下…
展开
-
Direct2D WIC绘制图片
绘制图片需要用到WIC,WIC的功能包括:编解码图片。也可以自定义图片解码插件。读取图片元数据。图像处理(最高支持每通道32位)。内置支持一些流行的格式。包括:BMP v5, GIF 89a/m, ICO, JPEG, PNG 1.2, TIFF 6.0, Windows Media Photo.WIC绘制图片是在GPU上进行的,所以效率较高这里写一个简单的原创 2013-07-28 15:55:11 · 4075 阅读 · 0 评论 -
Direct3D 11的初始化
因为比较看不惯商店应用使用的C++/CX,所以用win32的项目来学习,起名为D3DFirst。项目模板会生成一堆默认的代码,用于显示一个最简单的Windows窗口,这个窗口会作为D3D画面的输出窗口。生成的代码虽然很多,但我只关心图形绘制相关的代码,所以直接定位到RESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wPara原创 2013-08-04 23:50:52 · 2419 阅读 · 0 评论 -
Direct3D 11的运行环境
VS2012集成了D3D11.1,商店应用可以直接使用。但如果没有安装VS2012,可以在下面的地址下载:http://www.microsoft.com/en-us/download/details.aspx?id=6812手动安装成功后会自动在环境变量上加入$(DXSDK_DIR)的宏,所以用VS2012建的C++项目不用额外写包含目录,但是在项目属中需要指定linker要in原创 2013-08-04 22:58:59 · 1190 阅读 · 0 评论 -
Direct3D 11系列文章索引
Direct3D 11是目前Direct3D的最新版本。文章列表如下:Direct3D 11 简介Direct3D 11的流水线简介Direct3D 11的资源简介 Direct3D 11的Device接口和DeviceContext接口介绍原创 2013-07-28 16:41:52 · 1305 阅读 · 0 评论 -
Direct2D 系列文章索引
D2D是基于D3D的高性能绘制引擎,用于绘制图片,文字和二维几何图形。以下是文章列表:Direct2D 简介Direct2D 资源Direct2D 几何图形绘制基础Direct2D 几何计算和几何变幻Direct2D WIC绘制图片Direct2D DirectWrite绘制文字Direct2D 图层Direct2D Mesh原创 2013-07-28 16:36:14 · 1984 阅读 · 0 评论 -
Direct2D 几何图形绘制基础
之前说过,D2D主要为了绘制有三种类型的数据:几何图形,图片,文字。几何图形包括:简单几何图形直线,DrawLine,由起点和终点构成,点用结构体:D2D1_POINT_2F描述。矩形,ID2D1RectangleGeometry,DrawRectangle,由距四条边的距离表示,用结构体:D2D1_RECT_F描述。圆角矩形,ID2D1RoundedRectangleGe原创 2013-07-28 13:53:16 · 4514 阅读 · 1 评论 -
Direct2D 几何计算和几何变幻
D2D不仅可以绘制,还可以对多个几何图形对象进行空间运算。这功能应该在GIS界比较吃香。这些计算包括:合并几何对象,可以设置求交还是求并,CombineWithGeometry边界,加宽边界,查询边界。Widen、GetBounds、GetWidenedBounds几何对象填充的区域是否包含指定点,FillContainsPoint笔画是否包含点,StrokeContainsPoi原创 2013-07-28 14:54:20 · 1711 阅读 · 0 评论 -
Direct3D 11的资源
资源(Resource)如果把渲染流水线比喻成汽车装配线,资源就是流水线上需要输入的东西。资源可分为两类:Textures(纹理)和Buffers(缓冲区)。Textures可以简单地分为1维,2维,3维的形式。Buffers可以认为都是1维的(有时候是0维的,比如一个点)。但还是可以分为Vertex,Index,Constant,Structured,Append,Consu原创 2013-07-27 14:07:25 · 1464 阅读 · 0 评论 -
Direct3D 11 简介
Direct3D 11 D3D 11是一套直接与显卡通信的本地API。Direct3D的架构层如下图所示:最上层是应用程序,其主要与D3D交互。D3D运行时与用户模式下的显卡驱动交互,执行应用程序的渲染指令。用户模式的驱动与DXGI交互。DXGI负责与内核模式的驱动交互。内核模式的驱动直接管理硬件资源。这种架构的好处是如果显卡不支持D3D的所有功能,可以原创 2013-07-27 14:05:35 · 1919 阅读 · 0 评论 -
Direct3D 11的流水线
流水线流水线(Pipeline)是理解D3D必须要掌握的概念。整个流水线有很多步骤,有的步骤是固定功能,不用怎么配置,有的步骤是要写代码的,也就是所谓的着色器程序(Shader)。一般来说,将流水线分为两类:渲染流水线和计算流水线。严格地说并这有这么明确的区分,因为他们都可以干别的事。但这里还是按这种分类来说。渲染流水线最开始的显卡加速器使用硬件的顶点变换来实现3D原创 2013-07-27 14:06:38 · 1259 阅读 · 0 评论 -
Direct2D 简介
Direct2D是什么?Direct2D是一套高性能的硬件加速API(代码运行在GPU),用于渲染几何图形,图片和文本,并且可以与Direct3D,GDI,GDI+交互。什么程序员应该使用Direct2D?开发企业级大型native应用程序的程序员。为下游程序员开发控件库的程序员。服务端渲染2D图像的程序员。使用Direct3D但需要高性能渲染2D图片,文字,菜单的程序原创 2013-07-27 11:44:18 · 1668 阅读 · 2 评论 -
Direct2D DirectWrite绘制文字
绘制文本使用DirectWrite:为了简化 DirectWrite 的使用,RenderTarget有3个方法可以直接绘制文本:DrawText,用于简单绘制,支持Unicode。DrawTextLayout ,提供布局和格式。DrawGlyphRun,精确控制字形级别布局。写一个简单的例子:别忘了头文件和lib#include "wincod原创 2013-07-28 16:21:06 · 7329 阅读 · 0 评论 -
Direct3D 11的Device接口和DeviceContext接口
D3D的两个主要的接口:Device,ID3D11Device。创建资源,Shader对象,状态对象,查询对象,等。以及检查硬件功能,调试函数。可以认为是资源的提供者。Device Context,ID3D11DeviceContext。使用资源。绑定资源,Shader对象,状态对象等到流水线。以及控制计算流水器的执行。Immedite context。立即模式,用于主渲染线程,也是服务GPU的主要接口Deffered context。延迟模式,提供线程安全机制,用于异步线程模型。原创 2013-07-27 15:47:44 · 2782 阅读 · 0 评论