使用D3D11将NV12转成RGB

我显示使用硬解解码出视频,但是解码器只支持NV12的格式,需要转成RGB格式显示,并且这部分在GPU里面做,速度也会比较快,但是,碰到问题:D3D11 CORRUPTION:ID3D11DeviceContext::VideoProcessorBlt: Second parameter does ...

2019-05-17 14:55:24

阅读数 46

评论数 0

初始化纹理

你能在创建纹理的时候初始化,或者创建后填充数据。这篇文章将展示怎么初始化不同类型的纹理。 Default类型纹理: Default为最常用的纹理类型,这个纹理用D3D11_USAGE_DEFAULT类型创建。你能用下面两种方法之一初始化纹理: 调用ID3D11Device::CreateTe...

2019-05-14 20:14:11

阅读数 10

评论数 0

创建纹理

最简单创建纹理的方式是调用创建纹理API并且指定纹理描述信息。 创建一个纹理的过程: 1.填充D3D11_TEXTURE2D_DESC结构体。 2.调用ID3D11Device::CreateTexture2D方法并指定步骤1 中的结构体。 下面例子指定纹理大小为256x256, dyna...

2019-05-13 19:36:07

阅读数 7

评论数 0

介绍Direct3D11中的纹理(十九)

纹理资源是存储纹素的集合。一个纹素代表最小的纹理单元,可以被管道读或者写。与缓冲区不同,纹理可以通过纹理采样器过滤,因为它们是由着色器单元读取的。纹理的类型影响如何过滤纹理。每个纹素包含1到4个组件,以DXGI_FORMAT枚举定义的DXGI格式之一排列。 纹理是作为一个已知大小的结构化资源创建...

2019-05-13 19:26:48

阅读数 6

评论数 0

HDR视频能不能在非HDR屏幕上播放呢

不少朋友尝试过在非HDR屏幕上播放HDR视频发现会变灰吧,另外4K显示1080和1080屏幕相比有没有差别呢? 实际上这里面水可深得很。HDR和非HDR是两套亮度/色度体系,就像是语言体系上的差别那么大。 一、为啥变灰了: 变灰表现在:亮度降低+颜色饱和度下降。这是因为HDR有自己的颜色范围和亮度...

2019-04-29 18:44:22

阅读数 115

评论数 0

如何:创建一个常量缓冲区(十八)

常量缓冲区包含着色器常量数据.本节描述如何在准备渲染时初始化常量缓冲区。 初始化常量缓冲区 定义描述常量数据的结构。 通过填充D3D11_BUFFER_DESC结构创建缓冲区描述,将D3D11_BIND_CONSTANT_BUFFER标志传递给BindFlags成员,并将常量缓冲区描述结构的...

2019-04-28 14:52:54

阅读数 15

评论数 0

如何:创建顶点缓冲区(十七)

顶点缓冲区包含每个顶点数据,本节描述如何初始化静态顶点缓冲区,也就是说,顶点缓冲区不会改变。有关初始化非静态缓冲区的帮助,请参阅备注部分。 初始化静态顶点缓冲区 定义描述顶点的结构。例如,如果顶点数据包含位置数据和颜色数据,那么结构中就会有一个描述位置的向量和另一个描述颜色的向量。 为第一步...

2019-04-28 14:44:23

阅读数 41

评论数 0

介绍Direct3D 11中的缓冲区(十六)

缓冲区资源是一组按元素分组的全类型数据的集合。你可以使用缓冲区来存储各种各样的数据,包括位置信息,法向量,纹理坐标、索引信息、设备状态。一个元素由1到4个组件组成。缓冲区元素包含打包数据值(R8G8B8A8),单个8位整数,或4个32位浮点值。 缓冲区作为非结构化资源创建,缓冲区不能包含任何mi...

2019-04-28 14:15:31

阅读数 16

评论数 0

子资源(十五)

Direct3D可以引用整个资源,也可以引用资源的子集。术语子资源指的是资源的子集。 缓冲区定义为单个子资源。纹理有点复杂,因为有几种不同的纹理类型(1D、2D等),其中一些支持mipmap级别和/或纹理数组。 从最简单的情况开始,一维纹理被定义为单个子资源,如下图所示。 这意味着组成一...

2019-04-26 13:57:36

阅读数 20

评论数 0

资源类型(十四)

资源是可以通过Direct3D管道访问的内存区域。他们是场景的组成块。资源保护几种数据类型:几何体、纹理、和着色器数据。 D3D11和D3D10资源的不同: 下面是D3D11支持的新数据类型: 读写缓冲区和纹理 结构体缓冲区 字节地址缓冲区 追加和消费缓冲区 无序访问缓冲区和纹理 ....

2019-04-26 11:03:05

阅读数 42

评论数 0

介绍Direct3D 11中的资源(十三)

资源是场景的组成块。它们包含了Direct3D用来解释和渲染场景的大部分数据。资源是可以通过Direct3D管道访问的内存区域(这里指显存)。资源包含以下类型的数据:几何、纹理、着色器数据。 你能创建强类型或者弱类型的资源;你能控制资源是否能同时读和写。你能控制资源是否访问CPU、GPU、或者两...

2019-04-26 10:34:10

阅读数 9

评论数 0

如何:获得设备功能级别(十二)

Direct3D 11设备支持D3D_FEATURE_LEVEL枚举中定义的一组固定的功能级别。一旦知道设备支持的最高特性级别,就可以运行适合该设备的代码路径。 获取设备功能级别 在创建设备之前,能通过调用D3D11CreateDevice或者D3D11CreateDeviceAndSwapC...

2019-04-25 19:07:07

阅读数 18

评论数 0

介绍如何在11、10或9个硬件上运行Direct3D 11应用程序(十一)

征层为了处理新机器和现有机器中视频卡的多样性,Direct3D 11引入了特征级别的概念。每个显卡根据所安装的gpu实现一定级别的Direct3D功能。在以前的Direct3D版本中,您可以找到所实现的视频卡的Direct3D版本,然后相应地编写应用程序。 使用Direct3D 11,引入了一个...

2019-04-25 18:02:49

阅读数 176

评论数 0

Direct3D 11 的底层硬件(十)

Direct3D 11既支持新硬件也支持旧硬件,从DirectX 9到DirectX 11,如下图所示: 使用Direct3D 11,引入了一个新的范例,称为特征层。一个特征层定义了GPU的功能集。使用特性级别,您可以将Direct3D应用程序作为目标,使其运行在Direct3D硬件的低层版...

2019-04-24 18:07:46

阅读数 11

评论数 0

如何:创建设备和实时上下文(九)

初始化设备是应用程序在渲染场景之前必须完成的首要任务之一。 创建设备和实时上下文 填充DXGI_SWAP_CHAIN_DESC结构体的缓冲区数据格式和大小信息。想要知道更多的信息,参考如何:创建交换链。下面的代码演示怎么去填充DXGI_SWAP_CHAIN_DESC结构体。 DXGI_S...

2019-04-24 17:55:44

阅读数 9

评论数 0

如何:获得适配器显示模式(八)

DirectX 10和11使用DirectX图形基础设施(DXGI)来获得与适配器关联的有效显示模式。了解有效的显示模式可以确保应用程序能够正确地选择有效的全屏模式。 如何获得适配器显示模式 创建IDXGIFactory对象并使用它枚举可用适配器。有关更多信息,请参见如何:枚举适配器。 调用...

2019-04-24 17:34:16

阅读数 18

评论数 0

如何:枚举适配器(七)

DirectX 10和11使用DirectX图形基础设施(DXGI)枚举计算机上可用的图形适配器。您通常需要枚举适配器,原因如下: 确定计算机上安装了多少图形适配器 帮助您选择要使用哪个适配器来创建Direct3D设备 要检索可用于检索设备功能的IDXGIAdapter对象 枚举适配器 通...

2019-04-24 17:24:49

阅读数 6

评论数 0

如何:创建交换链(六)

交换链封装2个以上的后背缓冲区用于渲染和显示。他们通常包含一个前置缓冲区用于显示和一个后背缓冲区用于渲染。实时上下文用于渲染后背缓冲区,交换链通过交换两个缓冲区来显示图像。 交换链定义了几个渲染特性,包括: 渲染区域的大小 显示刷新率 显示模式 缓冲区的数据格式 通过填充DXGI_SWA...

2019-04-24 17:16:50

阅读数 86

评论数 0

如何:创建引用设备(五)

引用设备实现运行时的高度精确的软件实现。要创建引用设备,只需指定正在创建的设备将使用引用驱动程序。这个例子同时创建了一个设备和一个交换链。 创建引用设备 定义并初始化交换链变量。 DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( &sd, ...

2019-04-24 17:01:25

阅读数 9

评论数 0

软件层(四)

Direct3D 11运行时由层构建,从核心的基本功能开始,在外层构建可选的和开发人员辅助的功能。本节描述每个层的功能。 一般来说,添加层能添加功能,但不修改现有的行为。例如,核心函数将返回相同的返回值,无论是否实例化调试层。调试层可以提供额外的输出。要在创建设备时创建层,请调用D3D11Cre...

2019-04-24 16:41:16

阅读数 7

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭