CN106327563B - 一种Directx纹理资源互操作系统及方法 - Google Patents
一种Directx纹理资源互操作系统及方法 Download PDFInfo
- Publication number
- CN106327563B CN106327563B CN201610716153.5A CN201610716153A CN106327563B CN 106327563 B CN106327563 B CN 106327563B CN 201610716153 A CN201610716153 A CN 201610716153A CN 106327563 B CN106327563 B CN 106327563B
- Authority
- CN
- China
- Prior art keywords
- resource
- interface
- texture
- equipment
- interoperability
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Programmable Controllers (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明公开了一种Directx纹理资源互操作的系统及方法,用于Directx3D11与Directx3D12纹理资源互操作,该系统包括:设备创建单元,用于在Directx3D12设备上创建Directx3D11接口;资源包装单元,用于将Directx3D12资源包装成Directx3D11可用的资源并供所述Directx3D11接口使用。能够在Directx3D11接口上操作Directx3D12资源。完成了Directx3D11与Directx3D12纹理资源互操作,实现了跨版本资源的连贯性和互通性。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种Directx纹理资源互操作系统及方法。
背景技术
目前图像采集卡一般采用Direct3D技术显示捕捉到的图像数据、为了采用Direct3D图形流水线来处理采集卡捕捉获得图像数据,一般做法是先把图像数据发送到系统内存,然后根据系统内存中的图像数据创建动态纹理,再利用Direct3D图形流水线完成对图像数据的处理以及显示。
多媒体编程接口Directx3D 11集成在Windows 7中。Directx3D11带来了Tessellation(拆嵌式细分曲面技术)、Multi-Threading(多线程)、DirectCompute(通用计算)、Shader Model 5.0(渲染引擎5.0)以及Texture Compression(纹理压缩)五个重要特性,为用户带来更好的视觉享受。
多媒体编程接口Directx3D 12集成在Windows 10中,其相对于D3D11最重要的变化就是更底层API(Application Programming Interface,应用程序编程接口),这一点很像AMD Mantle,Directx3D 12在硬件抽象层上更深入,能够同时减轻CPU、GPU的过载。并且使用Directx3D 12的应用可追踪GPU流水线、控制资源状态转换,比如从渲染目标到纹理,同时Directx3D 12可控制资源重命名,更少的API和驱动跟踪,可预判属性。
在2D纹理的读写方面,Directx3D 11通过一个设备环境上下文利用Map或Unmap对纹理进行更新写操作。然而在Directx3D 11上所有的纹理,都不允许直接的进行写操作,必须通过另一个ID3D12Resource所代表的Buffer来对纹理进行更新,无法实现在Directx3D11设备上操作Directx3D 12的资源。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种Directx纹理资源互操作系统及方法,能够在Directx3D11接口上操作Directx3D12资源。
为达到以上目的,本发明采取的技术方案是:
一种Directx纹理资源互操作的系统,用于Directx3D11与Directx3D12纹理资源互操作,包括:
设备创建单元,用于在Directx3D12设备上创建Directx3D11接口;
资源包装单元,用于将Directx3D12资源包装成Directx3D11可用的资源并供所述Directx3D11接口使用。
在上述技术方案的基础上,所述Directx3D12资源为可在Directx3D12设备上直接使用的纹理资源。
在上述技术方案的基础上,Directx3D11资源为在Directx3D11接口上直接使用的纹理资源。
一种Directx纹理资源互操作的方法,用于Directx3D11与Directx3D12纹理资源互操作,包括如下步骤:
S1,在Directx3D12设备上创建Directx3D11接口;
S2,将Directx3D12资源包装成Directx3D11接口可用资源;
S3,所述Directx3D11接口操作包装成Directx3D11资源的Directx3D12资源,实现Directx3D11与Directx3D12纹理资源互操作。
在上述技术方案的基础上,步骤S1包括:
在Directx3D12设备上调用D3D11On12CreateDevice函数,分别创建一个Directx3D11接口指针和一个Directx3D11接口环境上下文指针;
调用Directx3D11接口的QeuryInterface函数获取运行在Directx3D12设备上的Directx3D11接口。
在上述技术方案的基础上,步骤S1还包括:
判断QeuryInterface函数获取Directx3D11接口的操作是否成功,若成功,则继续执行S2,若失败,则结束。
在上述技术方案的基础上,步骤S2包括:
调用Directx3D11接口的创建资源包装函数,将Directx3D12设备的Directx3D12资源包装成Directx3D11资源。
在上述技术方案的基础上,步骤S2还包括:判断ctx3D12资源包装成Directx3D11资源的操作是否成功,若成功,则继续执行S3,若失败,则结束。
在上述技术方案的基础上,Directx3D12资源为在Directx3D12设备上直接使用的纹理。
在上述技术方案的基础上,Directx3D11资源为在Directx3D11接口上直接使用的纹理资源。
与现有技术相比,本发明的优点在于:
本发明的Directx纹理资源互操作系统及方法,通过在Directx3D12设备上创建一个Directx3D11接口,将Directx3D12资源包装成能够在Directx3D11接口上使用的资源,完成了Directx3D11与Directx3D12纹理资源互操作,实现了跨版本资源的连贯性和互通性。
附图说明
图1为本发明实施中的方法流程图;
图2为本发明实施例中的系统框图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图2所示,本发明实施例提供一种Directx纹理资源互操作的系统,包括:
设备创建单元,用于在Directx3D12设备上创建在其上运行的Directx3D11接口;Directx3D11接口是微软提供的一组2D或者3D图形编辑接口,其集成在Windows7中,Directx3D12设备是Directx3D11接口的高一级版本,其集成在Windows10中,Directx3D12设备在面向程序员进行编程时能够在执行GPU相关指令时,GPU与CPU同步,这是Directx3D11接口所不具有的功能,在程序性能上产生较大的影响。
资源包装单元,用于将Directx3D12资源包装成Directx3D11资源;Directx3D12资源为在Directx3D12设备上直接使用的纹理资源,Directx3D11资源为在Directx3D11接口上直接使用的纹理资源。在Directx3D11资源的读写方面,Directx3D11接口可以利用设备上下文环境进行更新写操作,而在Directx3D12设备上所有的Directx3D12资源都不允许直接进行写操作,因此在Directx3D12设备不能够直接执行Directx3D11资源,需要将Directx3D12资源包装成Directx3D11资源。
参见图1所示,一种Directx纹理资源互操作的方法,包括如下步骤:
S1,在Directx3D12设备创建运行在其上的Directx3D11接口;
在Directx3D12设备上调用D3D11On12CreateDevice函数,分别创建一个Directx3D11接口指针和和一个Directx3D11接口的ID3D11DeviceContext设备环境上下文指针;其中,Directx3D12设备为调用ID3D12Device接口,用于创建资源、视图、命令列表等;
调用Directx3D11接口的QeuryInterface函数获取运行在Directx3D12设备上的Directx3D11接口,Directx3D11接口为ID3D11Device接口,用于创建资源、视图、设备环境等;
判断QeuryInterface函数获取Directx3D11接口的操作是否成功,若成功,则继续执行S2,若失败,则结束。
S2,Directx3D12设备将其自身的Directx3D12资源经Directx3D11接口包装成Directx3D11资源;调用Directx3D11接口的创建资源包装函数,通过CreateWrappedResource方法将Directx3D12设备的Directx3D12资源包装成Directx3D11资源;
判断Directx3D12资源包装成Directx3D11资源的操作是否成功,若成功,则继续执行S3,若失败,则结束。
其中,Directx3D12资源为在Directx3D12设备上直接使用的纹理资源;Directx3D11资源为在Directx3D11接口上直接使用的纹理资源。
S3,在Directx3D12设备上的Directx3D11接口操作包装成Directx3D11资源的Directx3D12资源。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种Directx纹理资源互操作的系统,用于Directx3D11与Directx3D12纹理资源互操作,其特征在于,包括:
设备创建单元,用于在Directx3D12设备上创建Directx3D11接口;
资源包装单元,用于将Directx3D12资源包装成Directx3D11可用的资源并供所述Directx3D11接口使用;
其中,将Directx3D12资源包装成Directx3D11可用的资源的方法为调用Directx3D11接口的创建资源包装函数。
2.如权利要求1所述的一种Directx纹理资源互操作的系统,其特征在于:所述Directx3D12资源为可在Directx3D12设备上直接使用的纹理资源。
3.如权利要求1所述的一种Directx纹理资源互操作的系统,其特征在于:Directx3D11资源为在Directx3D11接口上直接使用的纹理资源。
4.一种Directx纹理资源互操作的方法,用于Directx3D11与Directx3D12纹理资源互操作,其特征在于,包括如下步骤:
S1,在Directx3D12设备上创建Directx3D11接口;
S2,将Directx3D12资源包装成Directx3D11接口可用资源;
S3,所述Directx3D11接口操作包装成Directx3D11资源的Directx3D12资源,实现Directx3D11与Directx3D12纹理资源互操作;
其中,步骤S2包括:调用Directx3D11接口的创建资源包装函数,将Directx3D12设备的Directx3D12资源包装成Directx3D11资源。
5.如权利要求4所述的一种Directx纹理资源互操作的方法,其特征在于,步骤S1包括:
在Directx3D12设备上调用D3D11On12CreateDevice函数,分别创建一个Directx3D11接口指针和一个Directx3D11接口环境上下文指针;
调用Directx3D11接口的QeuryInterface函数获取运行在Directx3D12设备上的Directx3D11接口。
6.如权利要求5所述的一种Directx纹理资源互操作的方法,其特征在于,步骤S1还包括:
判断QeuryInterface函数获取Directx3D11接口的操作是否成功,若成功,则继续执行S2,若失败,则结束。
7.如权利要求4所述的一种Directx纹理资源互操作的方法,其特征在于,步骤S2还包括:判断ctx3D12资源包装成Directx3D11资源的操作是否成功,若成功,则继续执行S3,若失败,则结束。
8.如权利要求4所述的一种Directx纹理资源互操作的方法,其特征在于:Directx3D12资源为在Directx3D12设备上直接使用的纹理。
9.如权利要求4所述的一种Directx纹理资源互操作的方法,其特征在于:Directx3D11资源为在Directx3D11接口上直接使用的纹理资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610716153.5A CN106327563B (zh) | 2016-08-24 | 2016-08-24 | 一种Directx纹理资源互操作系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610716153.5A CN106327563B (zh) | 2016-08-24 | 2016-08-24 | 一种Directx纹理资源互操作系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106327563A CN106327563A (zh) | 2017-01-11 |
CN106327563B true CN106327563B (zh) | 2019-04-05 |
Family
ID=57791500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610716153.5A Active CN106327563B (zh) | 2016-08-24 | 2016-08-24 | 一种Directx纹理资源互操作系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106327563B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595284B (zh) * | 2018-05-14 | 2021-11-26 | 武汉斗鱼网络科技有限公司 | 一种纹理共享方法、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609971A (zh) * | 2012-01-11 | 2012-07-25 | 南京大学 | 嵌入式gpu实现3d-gis的快速渲染系统 |
CN102867284A (zh) * | 2011-07-07 | 2013-01-09 | 腾讯科技(深圳)有限公司 | 一种图形绘制引擎及其实现方法 |
CN103336816A (zh) * | 2013-06-28 | 2013-10-02 | 广州市动景计算机科技有限公司 | 安卓系统上基于GPU实现的Canvas元素渲染方法及装置 |
CN103617027A (zh) * | 2013-10-29 | 2014-03-05 | 合一网络技术(北京)有限公司 | 基于安卓系统的图像渲染引擎构建方法及系统 |
CN103713891A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种在移动设备上进行图形渲染的方法和装置 |
CN105069015A (zh) * | 2015-07-13 | 2015-11-18 | 山东超越数控电子有限公司 | 一种国产平台网页加速技术的实现方法 |
CN105069831A (zh) * | 2015-07-28 | 2015-11-18 | 广州爱拍网络科技有限公司 | 一种基于Hook技术获取OpenGL渲染画面的方法和系统 |
CN105741227A (zh) * | 2016-01-26 | 2016-07-06 | 网易(杭州)网络有限公司 | 渲染方法和装置 |
-
2016
- 2016-08-24 CN CN201610716153.5A patent/CN106327563B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867284A (zh) * | 2011-07-07 | 2013-01-09 | 腾讯科技(深圳)有限公司 | 一种图形绘制引擎及其实现方法 |
CN102609971A (zh) * | 2012-01-11 | 2012-07-25 | 南京大学 | 嵌入式gpu实现3d-gis的快速渲染系统 |
CN103713891A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种在移动设备上进行图形渲染的方法和装置 |
CN103336816A (zh) * | 2013-06-28 | 2013-10-02 | 广州市动景计算机科技有限公司 | 安卓系统上基于GPU实现的Canvas元素渲染方法及装置 |
CN103617027A (zh) * | 2013-10-29 | 2014-03-05 | 合一网络技术(北京)有限公司 | 基于安卓系统的图像渲染引擎构建方法及系统 |
CN105069015A (zh) * | 2015-07-13 | 2015-11-18 | 山东超越数控电子有限公司 | 一种国产平台网页加速技术的实现方法 |
CN105069831A (zh) * | 2015-07-28 | 2015-11-18 | 广州爱拍网络科技有限公司 | 一种基于Hook技术获取OpenGL渲染画面的方法和系统 |
CN105741227A (zh) * | 2016-01-26 | 2016-07-06 | 网易(杭州)网络有限公司 | 渲染方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106327563A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210224181A1 (en) | Suspending and resuming a graphics application executing on a target device for debugging | |
US8499305B2 (en) | Systems and methods for performing multi-program general purpose shader kickoff | |
US10013503B2 (en) | Canvas element rendering method and apparatus implemented on android system based on GPU | |
JP5960368B2 (ja) | ビジビリティ情報を用いたグラフィックスデータのレンダリング | |
TWI614685B (zh) | 用於在虛擬執行環境中有效率地處理圖形的系統 | |
EP3032499B1 (en) | Apparatus and method for rendering | |
EP3008701B1 (en) | Using compute shaders as front end for vertex shaders | |
US8006232B1 (en) | Serialization of function calls to a graphics API for debugging a remote device | |
TWI706374B (zh) | 經由渲染命令串流器之僅關於位置的著色器背景提交 | |
US20140362100A1 (en) | Scheme for compressing vertex shader output parameters | |
CN103677777B (zh) | 调用应用程序组件的方法及装置 | |
US10169839B2 (en) | Method and apparatus for executing graphics pipeline | |
US20140176529A1 (en) | Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader | |
US20130300656A1 (en) | Hit testing of visual objects | |
CN113012269A (zh) | 基于gpu的三维图像数据渲染方法及设备 | |
CN104360319A (zh) | 一种基于cuda平台的雷达b显处理方法 | |
US10432914B2 (en) | Graphics processing systems and graphics processors | |
CN104866318A (zh) | 一种多窗口中标签页的展示方法及装置 | |
US10825129B2 (en) | Eliminating off screen passes using memoryless render target | |
CN104407384B (zh) | 地震剖面显示的方法 | |
CN106327563B (zh) | 一种Directx纹理资源互操作系统及方法 | |
CN103577046A (zh) | 一种3d立体桌面系统及其实现方法 | |
US8872827B2 (en) | Shadow softening graphics processing unit and method | |
CN113838180A (zh) | 一种渲染指令处理方法及其相关设备 | |
US9691117B2 (en) | External validation of graphics pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |