CN106528096A - Method and system for drawing popup image on D3D12 full screen game source - Google Patents

Method and system for drawing popup image on D3D12 full screen game source Download PDF

Info

Publication number
CN106528096A
CN106528096A CN201610919199.7A CN201610919199A CN106528096A CN 106528096 A CN106528096 A CN 106528096A CN 201610919199 A CN201610919199 A CN 201610919199A CN 106528096 A CN106528096 A CN 106528096A
Authority
CN
China
Prior art keywords
barrage
function
interface
functional module
image
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.)
Granted
Application number
CN201610919199.7A
Other languages
Chinese (zh)
Other versions
CN106528096B (en
Inventor
杨亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201610919199.7A priority Critical patent/CN106528096B/en
Publication of CN106528096A publication Critical patent/CN106528096A/en
Application granted granted Critical
Publication of CN106528096B publication Critical patent/CN106528096B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

The invention discloses a method and system for drawing a popup image on a D3D12 full screen game source, relating to the technical field of image drawing of the D3D12 interface. The method for drawing a popup image on a D3D12 full screen game source comprises the following steps: immitting a packaged popup drawing functional module into a D3D12 game through a message hook, and binding the packaged popup drawing functional module to the game process by means of the inline hook, and automatically executing the initialization of the popup drawing functional module while the D3D12 game executes the process that the background buffer images are submitted to the foreground to display; creating a shared texture while the D3D12 full screen game source is added, wherein the shared texture is created by the popup drawing functional module; drawing the popup image on the D3D12 full screen game source through copying the saved image in the shared memory to the created shared texture and using the shared texture. According to the invention, the popup images can be drawn on the D3D12 full screen game source, and the anchor can see the popups sent by the audiences at the same time of playing game on the full screen, therefore, the effective interaction with the audiences is ensured, and the the user experience is good.

Description

A kind of method and system for drawing barrage image on the full frame game sources of D3D12
Technical field
The present invention relates to the image rendering technologies field of D3D12 interfaces, it is specifically one kind in the full frame game sources of D3D12 The upper method and system for drawing barrage image.
Background technology
With in July, 2015, the issue of 10 operating systems of Microsoft Windows, the video card graphical programming of its all new generation connect Mouth D3D12 (DirectX 12) is also issued therewith.The thing followed is that the game developed using D3D12 is also more and more, For example《Singular point ashes》Exactly global first game developed with D3D12 interfaces, and receive the happiness of numerous game players Love.
When game player is when the game operation of D3D12 types is carried out, it may be desirable to swum by other instruments Play live (such as carrying out on the platform such as Twitch abroad or the bucket fish of the country live).As the live amusement side of one kind Formula, is generally exchanged by way of barrage and interactive between main broadcaster and spectators.In general, main broadcaster can be by straight The instruments such as the barrage assistant of platform offer are provided, the barrage sent by spectators is watched;But when the D3D12 carried out by main broadcaster plays Into after screen mode toggle, the barrage sent by spectators is just can't see, this can undoubtedly affect the interaction between main broadcaster and spectators.
Therefore, barrage image how is drawn on full frame D3D12 game sources, so as to show that the barrage sent by spectators is This area problem demanding prompt solution.
The content of the invention
The invention aims to overcome the shortcomings of above-mentioned background technology, there is provided one kind is on the full frame game sources of D3D12 The method and system of barrage image are drawn, and barrage image can be drawn on the full frame game sources of D3D12, main broadcaster be allow in full frame trip The barrage sent by spectators is seen while play, it is ensured that the effective interaction with spectators, Consumer's Experience are good.
For reaching object above, the present invention is adopted the technical scheme that:There is provided one kind to draw on the full frame game sources of D3D12 The method of barrage image, the method are comprised the following steps:
Step S1:Live client connects barrage server, obtains the barrage information of spectators' transmission and is depicted as barrage figure As being saved in shared drive, step S2 is proceeded to;
Step S2:The method for realizing barrage image rendering function is packaged into barrage and draws functional module by live client; And barrage drafting functional module is injected in D3D12 game process by message hook, proceed to step S3;
Step S3:Live client is drawn the barrage in functional module and D3D12 game process by inline hook Foreground display function function bound, D3D12 game shows going to for the image in back buffer area to be submitted to foreground When showing, the initialization for performing that barrage draws functional module is redirected automatically, step S4 is proceeded to;
Step S4:After with the addition of the full frame game source of D3D12 in live client, notify that the barrage draws function mould Block creates shared texture, proceeds to step S5;
Step S5:After barrage drafting functional module creates shared texture, control barrage is drawn functional module and will be preserved Barrage image rendering is arrived in the shared texture for creating and using the shared texture by the barrage image copy in shared drive On the full frame game source of D3D12.
The present invention also provides a kind of system for drawing barrage image on the full frame game sources of D3D12, and the system includes being located at Barrage server connection unit inside live client, barrage draw functional module encapsulation and injection unit, barrage draw work( Can module binding and initialization unit, shared texture establishment control unit and barrage image rendering control unit;
The barrage server connection unit is used for:Connection barrage server, obtains the barrage information of spectators' transmission and paints Make barrage image to be saved in shared drive;
The barrage draws functional module encapsulation and injection unit to be used for:The method for realizing barrage image rendering function is sealed Dress up barrage and draw functional module;And barrage drafting functional module is injected into by D3D12 game process by message hook In;
The barrage draws functional module binding and initialization unit to be used for:Barrage is drawn by function mould by inline hook Block is bound with the foreground display function function in D3D12 game process, and D3D12 game is being gone in back buffer area Image be submitted to foreground show when, redirect automatically perform barrage draw functional module initialization;
The shared texture creates control unit to be used for:After with the addition of the full frame game source of D3D12 in live client, Notify that barrage is drawn functional module and creates shared texture;
The barrage image rendering control unit is used for:After barrage drafting functional module creates shared texture, control Barrage draws functional module, and the barrage image copy being stored in shared drive is in the shared texture for creating and common using this Texture is enjoyed by the full frame game source of barrage image rendering to D3D12.
The beneficial effects of the present invention is:
In the present invention, packaged barrage is drawn by functional module by message hook and is injected in D3D12 game process, And barrage drafting functional module is bound with the foreground display function function in game process using inline hook so that D3D12 game is redirected automatically execution barrage and is drawn when going to for the image in back buffer area to be submitted to foreground display The initialization operation of functional module;After with the addition of the full frame game source of D3D12 in live client, barrage draws functional module A shared texture will be created;It is in the shared texture for creating and sharp by the barrage image copy that will be stored in shared drive With on full frame game source of the shared texture by barrage image rendering to D3D12, it is achieved thereby that live client is being carried out entirely The effect of the barrage sent by spectators can be still seen while screen game, it is ensured that the effective interaction of main broadcaster and spectators, user Experience.
Description of the drawings
The flow chart of methods of the Fig. 1 for drawing barrage image on the full frame game sources of D3D12 in the embodiment of the present invention;
The structured flowchart of systems of the Fig. 2 for drawing barrage image on the full frame game sources of D3D12 in the embodiment of the present invention.
Specific embodiment
Below in conjunction with the accompanying drawings and specific embodiment the present invention is described in further detail.
Shown in Figure 1, the embodiment of the present invention provides a kind of side for drawing barrage image on the full frame game sources of D3D12 Method, comprises the following steps:
Step S1, connection barrage server:Live client is connected with barrage server, obtains the barrage letter that spectators send Cease and the barrage information is depicted as into barrage image and be saved in shared drive, proceed to step S2.
Step S2, module encapsulation and injection:The method for realizing barrage image rendering function is encapsulated into one by live client In individual DLL (Dynamic Link Library, dynamic link library) file, form barrage and draw functional module;By message hook Son is injected into barrage drafting functional module in D3D12 game process, proceeds to step S3.
It is understood that the title that barrage described in the present embodiment draws functional module is hookd3d9.dll;Also, When be injected in D3D12 game process by barrage drafting functional module, it is by calling Windows systems The SetWindowsHookEx functions of API (Application Programming Interface, application programming interface), will Hookd3d9.dll modules are injected in the middle of game.So, there has been in the D3D12 game process being injected into This module of hookd3d9.dll is in operation.
Step S3, module binding and initialization:The barrage is drawn functional module by inline hook by live client Bound with the foreground display function function in D3D12 game process, D3D12 game is being gone in back buffer area When image is submitted to foreground display, the initialization for performing that barrage draws functional module is redirected automatically, step S4 is proceeded to.
Wherein, in step S3, barrage drafting functional module is shown with the foreground in game process by inline hook Show that power function is bound, specifically include below scheme:Find the exchanging chain interface of D3D12 game IDXGISwapChain;By inline hook, the barrage drawn with barrage in functional module hookd3d9.dll draws function letter Count PresentHook to catch on the foreground display function function Present of exchanging chain interface IDXGISwapChain, work as D3D12 Foreground display function function Present is have invoked in game process, will be jumped to barrage and be drawn functional module The barrage of hookd3d9.dll draws power function PresentHook.
In step S3, when performing the initialization of barrage drafting functional module, idiographic flow is as follows:
Step one, acquisition command queue's interface (ID3D12CommandQueue interfaces):According to the D3D12 game for finding Exchanging chain interface IDXGISwapChain, obtain the command queue interface ID3D12CommandQueue of the exchanging chain.Specifically For, as the author does not have found to obtain the command queue's interface corresponding to exchanging chain in existing interface, later through grinding Study carefully discovery, under 32 application programs, content of the IDXGISwapChain interface IP addresses plus the skew place storage of 0x5BC, It is exactly just to create the address value that the command queue of the exchanging chain is located.By this method, order has just successfully been got Queue Interface.
Step 2, acquisition D3D12 ingress interfaces (ID3D12Device interfaces):According to the friendship of the D3D12 game for finding Chain interface IDXGISwapChain is changed, interface function GetDevice is obtained by the entrance for calling the interface to be provided, is got The D3D12 ingress interfaces of D3D12 game.It is understood that the D3D12 ingress interfaces are to the abstract of one piece of video card, can For realizing establishing resource interface, the functions such as synchronous fence interface are created.
Step 3, establishment command queue's interface (ID3D12GraphicsCommandList):According to what is obtained in step 2 D3D12 ingress interfaces (ID3D12Device), create function by calling the command queue of the interface CreateCommandList, creates a command queue interface ID3D12GraphicsCommandList, performs acquisition trip The task of play source images.
Step 4, synchronous fence interface (ID3D12Fence interfaces) of establishment:According to the D3D12 entrances obtained in step 2 Interface (ID3D12Device), creates function CreateFence by calling the synchronous fence of the interface, creates synchronous grid Hurdle interface ID3D12Fence;Then the event of Windows system api interfaces is called to create function CreateEvent establishments one Event, and the event binding function by calling synchronous fence interface ID3D12Fence to be provided The event for creating is bound by SetEventOnCompletion with synchronous fence interface.
Step 5, establishment render tinter signature interface (ID3D12RootSignature interfaces):To rendering tinter label The description scheme of name interface carries out relevant parameter (i.e. HLSL tinters relevant parameter vertex shader, pixel tinter Deng) fill in, and initialize a description scheme D3D12_ROOT_SIGNATURE_DESC for rendering tinter signature interface;Profit With successful description scheme D3D12_ROOT_SIGNATURE_DESC is initialized, the signature interface sequence of D3D12 interfaces offer is called Rowization function D3D12SerializeRootSignature is serialized, and obtains a binary object interface ID3DBlob; The signature interface that D3D12 ingress interfaces (ID3D12Device) provide is called by the binary object interface ID3DBlob for obtaining Function CreateRootSignature is created, establishment renders tinter signature interface ID3D12RootSignature.This renders Tinter signature interface represents coloring in a HLSL (HighLevel Shader Language, senior to render language scripts) The signature of device.The many information in tinter are contained in the signature, including the constant resource, texture view resource, stricture of vagina used Reason sampler etc., and the priority ordering of these resources etc..
It is understood that in step 5, in order to create a correct signature interface (ID3D12RootSignature), The description scheme (D3D12_ROOT_SIGNATURE_DESC) of signature interface must correctly be filled.So, in order to apparent is said Relation between bright tinter and signature interface (ID3D12RootSignature), is listed below used in this realization HLSL shader codes, and how correctly to fill in the correlation in description scheme (D3D12_ROOT_SIGNATURE_DESC) Parameter.
From the above, it may be appreciated that Section 1 MatrixViewProj of this section of code is a constant Buffer, so must be with D3D12_DESCRIPTOR_RANGE_TYPE_CBV constants initializing a D3D12_ROOT_PARAMETER structure, and The index of the structure is 0;Section 2 g_texture in above-mentioned code is a texture resource view ShaderResourceView, so must be initialized with a D3D12_DESCRIPTOR_RANGE_TYPE_SRV constant One D3D12_ROOT_PARAMETER, and the index of the structure is 1;Section 3 in the code is a g_ The texture sampler of linearSampler, so a corresponding D3D12_STATIC_SAMPLER_DESC must be initialized. Then using dependency structure recited above initializing D3D12_ROOT_SIGNATURE_DESC.
Step 6, establishment pipeline state interface (ID3D12PipelineState interfaces):Coloring is rendered using what is created Device signature interface (ID3D12RootSignature), creates corresponding pipeline state interface (ID3D12PipelineState). The pipeline state interface represents the pipeline state of a D3D12.One pipeline state is contained for all of drawing image Information, including vertex shader (Vertex Shader), pixel coloring device (Pixel Shader), summit input layout (VertexInputLayout), Alpha admixtures, template and depth admixture etc..Its specific operating procedure is as follows:
1) compile vertex shader
Vertex shader code is exactly the VertexTransform functions included in code proposed in step 5, should The function of tinter is that opposite vertexes carry out a coordinate transform, and the coordinate of a three-dimensional world is converted into by way of matrix Two-dimensional coordinate on screen.The api function D3DCompile that can be provided by D3D (Direct3D, 3D accelerator card) is to this Tinter is compiled, and obtains vertex shader VertexShader of an ID3DBlob (binary object interface) type.
2) compile pixel coloring device
Pixel coloring device code is exactly the mainPixelShader functions included in code proposed in step 5, should The function of tinter is that, using a texture sampler, the texture given to is adopted at given texture coordinate position Sample, obtains the pixel value of texture image.Still through D3DCompile function pairs, the tinter is compiled, and obtains one The pixel coloring device PixelShader of ID3DBlob types.
3) carry out summit layout description
The layout description on summit is exactly the VertexInput structures included in the code proposed by step 5.The structure Body includes location variable pos, semantic for POSITION, position;And a texture coordinate variable tex, semanteme is TEXCOORD, texture coordinate.So using such information for initializing the description scheme D3D12_ of corresponding summit layout INPUT_ELEMENT_DESC, so that complete the description of summit layout.
4) pipeline state interface is created using the successful vertex shader of initialization, pixel coloring device and summit layout
Using the successful vertex shader of above-mentioned initialization, pixel coloring device and summit layout, tubular is initialized The description scheme (D3D12_GRAPHICS_PIPELINE_STATE_DESC) of state interface, and by the rasterisation of pipeline state interface State RasterizerState is set to acquiescence, cancels the back side and rejects;The BlendState fields of control Alpha mixing are arranged For opening, SampleMask fields are set to UNIT_MAX values etc..Then D3D12 ingress interfaces (ID3D12Device) are called to carry For pipeline state create function CreateGraphicsPipelineState, create pipeline state interface ID3D12PipelineState。
Step 7, establishment constant Buffer view interfaces (ConstBufferView interfaces):A constant is created first The resource descriptor interface (ID3D12DescriptorHeap interfaces) of Buffer (buffering) view;A constant is created again Buffer resources;Finally, using successful resource descriptor interface and constant Buffer resources is created, entered by calling D3D12 The constant Buffer views that mouth interface (ID3D12Device) is provided create function CreateConstantBufferView, create Constant Buffer view interfaces ConstBufferView.
Specifically, the flow process for creating the resource descriptor interface of constant Buffer views is as follows:Use known D3D12_ DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV constants initialize description scheme D3D12_DESCRIPTOR_HEAP_DESC In the type field;Described with the initialization of known D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE constants Flags fields in structure D3D12_DESCRIPTOR_HEAP_DESC, then call D3D12 ingress interfaces (ID3D12Device) resource descriptor for providing creates function CreateDescriptorHeap, creates constant Buffer views Resource descriptor interface ID3D12DescriptorHeap.In addition, the idiographic flow for creating constant Buffer resources is as follows:It is logical The asset creation function CreateCommittedResource for calling D3D12 ingress interfaces (ID3D12Device) to provide is crossed, is created Build a constant Buffer resource.
Step 8, establishment rendering objects view interface (RenderTargetView interfaces):Because by barrage image rendering During on game image, need to obtain game image from the current background relief area of game, so we need first to obtain trip The back buffer area resource of play, and to the corresponding rendering objects view of these asset creations, accordingly, it would be desirable to create rendering objects regard Figure interface.The resource descriptor interface (ID3D12DescriptorHeap interfaces) of a rendering objects view is created first;Obtain again Take the texture resource in game exchanging chain;Finally, using resource descriptor interface and the texture resource for obtaining of above-mentioned establishment, lead to Cross the rendering objects view for calling D3D12 ingress interfaces (ID3D12Device) to provide and create function CreateRenderTargetView, creates rendering objects view interface RenderTargetView.
Specifically, the flow process for creating the resource descriptor interface of rendering objects view is as follows:Connect by calling D3D12 entrances The resource descriptor that mouth (ID3D12Device) is provided creates function CreateDescriptorHeap, creates rendering objects The resource descriptor interface ID3D12DescriptorHeap of view.In addition, obtaining the tool of the texture resource in game exchanging chain Body flow process is:According to the exchanging chain interface IDXGISwapChain of the D3D12 game for finding, provided by calling the interface Resource acquisition function GetBuffer, obtain the respective texture resource in the exchanging chain.
Step 9, establishment input vertex Buffer:Due to needing to know that barrage image is to paint when barrage image is drawn System on game picture where, so needing to create corresponding Buffer resources, store these barrage images Vertex information.Specifically, the asset creation function for exactly calling D3D12 ingress interfaces (ID3D12Device) to provide CreateCommittedResource, creates a Buffer resource, and obtains a D3D12 resource interface Vertex data is filled into the Buffer moneys of establishment by ID3D12Resource, the mapping function Map for then being provided using the interface In source, input vertex Buffer is formed.
Step S4, the shared texture of establishment:After with the addition of the full frame game source of D3D12 in live client, notify described Barrage is drawn functional module and creates shared texture, proceeds to step S5.
Specifically, the barrage is drawn functional module and creates shared texture, specifically includes following operation:
Step one, the description scheme (D3D12_RESOURCE_DESC) to sharing texture are initialized:Knot is described The Dimension fields of structure are set to D3D12_RESOURCE_DIMENSION_TEXTURE2D, are total to for representing to be created It is a 2D texture to enjoy texture;The Width fields of description scheme are set to into the width of the image texture deposited in shared drive; The Height fields of description scheme are set to into the height of the image texture deposited in shared drive, Format fields are set to DXGI_FORMAT_B8G8R8A8_UNORM pixel formats.
Step 2, the resource descriptor interface for creating shared texture:Retouched by the resource for calling D3D12 ingress interfaces to provide State symbol and create function CreateDescriptorHeap, create the resource descriptor interface of a shared texture ID3D12DescriptorHeap, its type are D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV.
Step 3, the resource for creating shared texture:Using the description scheme of initialized shared texture in step one (D3D12_RESOURCE_DESC), the asset creation function by calling D3D12 ingress interfaces (ID3D12Device) to provide CreateCommittedResource, creates the resource of a shared texture.
Step 4, the Buffer resources for creating shared texture:As the resource of the shared texture of step 3 kind establishment is not Can lock, that is, can not directly update the texture, like this, the texture image in shared drive is stored in (such as bullet Curtain image) just can not be filled in texture resource.So in order to reach the purpose for updating texture, it is necessary to create a shared stricture of vagina The Buffer resources of reason, update the resource of shared texture with the Buffer resources.Specifically, exactly by calling D3D12 The asset creation function CreateCommittedResource that ingress interface (ID3D12Device) is provided, creates one and shares The Buffer resources of texture.
Step 5, the shared texture of establishment:Using the resource descriptor interface of the shared texture created in step 2, step 3 With the resource of shared texture, function is created by the texture view for calling D3D12 ingress interfaces (ID3D12Device) to provide CreateShaderResourceView, creates a shared texture.
Step S5, drafting barrage image:After barrage drafting functional module creates shared texture, control barrage draws work( Can module the barrage image copy being stored in step S1 in shared drive is shared in the shared texture for creating and using this Texture is by the full frame game source of barrage image rendering to D3D12.
During practical operation, the barrage is drawn functional module and copies the barrage image being stored in step S1 in shared drive Shellfish is in the shared texture for creating and utilizes on full frame game source of the shared texture by barrage image rendering to D3D12, specifically Including following operation:
Step one, the image resource (obtaining game image resource) for obtaining going game back buffer area:By calling The back buffer index of exchanging chain interface IDXGISwapChain obtains function GetCurrentBackBufferIndex, obtains The image index of current background relief area;Then according to the index by calling the resource of exchanging chain interface IDXGISwapChain Function GetBuffer is obtained, the image resource of current background relief area is obtained.
Step 2, change resource status:Image resource to obtaining carries out Status Change, by image resource by dispaly state It is changed to rendering objects state.As the image resource for just having got is dispaly state (D3D12_RESOURCE_STATE_ PRESENT) resource under the state can not be drawn, so current dispaly state is changed to post-processing object State (D3D12_RESOURCE_STATE_RENDER_TARGET).Specifically, drawn at the beginning of functional module by calling barrage The resource barrier function of the command queue interface ID3D12GraphicsCommandList created during beginningization The resource status in back buffer area are changed to rendering objects state from dispaly state by ResourceBarrier.
Step 3, setting rendering objects:Connect by calling barrage to draw the command queue created when functional module is initialized The post-processing object that mouth ID3D12GraphicsCommandList is provided arranges function OMSetRenderTargets, by what is obtained Image resource is set to rendering objects.Specifically, it is to arrange function OMSetRenderTargets by post-processing object to walk What the image index of the current background relief area got in rapid was created when drawing functional module initialization with barrage renders right As view interface RenderTargetView correspondence, so as to realize that the image resource by acquisition is set to rendering objects.
Step 4, setting input vertex:Connect by calling barrage to draw the command queue created when functional module is initialized The vertex buffer that mouth ID3D12GraphicsCommandList is provided arranges function IASetVertexBuffers, and barrage is painted The input vertex Buffer that functional module processed is created when initializing is arranged in pipeline.
Step 5, setting viewport and clipping region:The order created when functional module is initialized is drawn by calling barrage The viewport setting function RSSetViewports that Queue Interface ID3D12GraphicsCommandList is provided, setting viewport (depending on Mouth is a device-dependent rectangular area, and coordinate unit is device-dependent);Functional module is drawn by calling barrage The clipping region of the command queue interface ID3D12GraphicsCommandList created during initialization arranges function RSSetScissorRects, arranges clipping region.
Step 6, setting render tinter signature interface:Draw what is created when functional module is initialized by calling barrage The tinter signature that command queue interface ID3D12GraphicsCommandList is provided arranges function SetGraphicsRootSignature, barrage is drawn the tinter signature interface that renders created when functional module is initialized and is set Put in pipeline.
Step 7, setting pipeline state interface:The order team created when functional module is initialized is drawn by calling barrage The pipeline state that row interface ID3D12GraphicsCommandList is provided arranges function SetPipelineState, by barrage Draw the pipeline state interface created when functional module is initialized and be set to current line.
Step 8, setting descriptor parameters table (RootDescriptorTable):Functional module is drawn by calling barrage The resource descriptor that the command queue interface ID3D12GraphicsCommandList created during initialization is provided arranges function SetDescriptorHeaps, barrage is drawn the constant Buffer view interfaces created when functional module is initialized and is set to retouch First parameter of symbol parameter list is stated, the shared texture that barrage in step S4 draws functional module establishment is set to into descriptor ginseng First parameter of number table, represents current texture.
Line translation is entered on step 9, the summit of barrage image to depositing in shared drive so as to can be displayed in correct position Put place:The left vertex position shown by the barrage image to depositing in shared drive, and the letter such as wide, high, size for showing Breath, carries out corresponding summit conversion, and so as to be displayed at correct position, (i.e. barrage image is to be plotted in game picture On face where).
Barrage image copy in shared drive to barrage is simultaneously drawn functional module by step 10, drafting barrage image pel In the shared texture for creating:The command queue's interface created when functional module is initialized is drawn by calling barrage Pel drafting function DrawInstanced that ID3D12GraphicsCommandList is provided, draws the pel of a rectangle, Barrage image is inside the rectangular element;By the barrage picture material in shared drive is filled into the described shared of establishment In the Buffer resources of texture, so as to realize barrage image copy in the shared texture for creating.
Step 11, resetting resource state:By in above-mentioned steps two, the image resource state weight of the current buffer of change Dispaly state (D3D12_RESOURCE_STATE_PRESENT) is set to newly.
Step 12, execution command queue:Due to operation performed above, simply all of order is stored in In IGraphicsCommandList command list (CLIST)s, inreal execution, so this step is needed in command queue All orders are performed.Specifically, the command queue's interface obtained when functional module is initialized is drawn by calling barrage The command queue of ID3D12CommandQueue performs function ExecuteCommandLists, performs in command queue's list All orders of storage, to complete current barrage image rendering.
Step 13, the GPU (Graphic Processing Unit, graphic process unit) of live broadcasting client and CPU (Central Processing Unit, central processing unit), to wait the drafting of next barrage image:As D3D12 interfaces are adopted It is asynchronous model, so needing to realize the synchronization of GPU and CPU, otherwise after the completion of two field picture process, carries out next frame During the copy of image, will fail.Specifically, it is to draw the order team obtained when functional module is initialized by calling barrage The signal flow function Signal of row interface ID3D12CommandQueue, notifies that barrage is drawn when functional module is initialized and is created The synchronous fence interface ID3D12Fence for building;When the command list (CLIST) of command queue interface ID3D12GraphicsCommandList After having performed, can thus wake up and passed through to event sending signal is completed bound in synchronous fence interface ID3D12Fence Call the WaitForSingleObject functions of Windows API to wait this to complete the CPU of signal, it is achieved thereby that GPU with The synchronization of CPU.
It is shown in Figure 2, present invention also offers a kind of system for drawing barrage image on the full frame game sources of D3D12, The system includes that barrage server connection unit inside live client, barrage are drawn functional module encapsulation and inject single Functional module binding is drawn by unit, barrage and initialization unit, shared texture create control unit and the control of barrage image rendering is single Unit.
Barrage server connection unit is used for:Connection barrage server, obtains the barrage information of spectators' transmission and is depicted as Barrage image is saved in shared drive.
Barrage draws functional module encapsulation and injection unit to be used for:The method for realizing barrage image rendering function is packaged into Barrage draws functional module;And barrage drafting functional module is injected in D3D12 game process by message hook.Tool For body, it is by calling Windows system api interfaces that the barrage draws functional module encapsulation and injection unit Barrage is drawn functional module and is injected in the middle of game by SetWindowsHookEx functions.
Barrage draws functional module binding and initialization unit to be used for:By inline hook by barrage draw functional module with Foreground display function function in D3D12 game process is bound, and D3D12 game is being gone to the figure in back buffer area When showing as being submitted to foreground, the initialization for performing that barrage draws functional module is redirected automatically.
Wherein, the barrage draws functional module binding and barrage is drawn function mould by inline hook by initialization unit The idiographic flow bound by foreground display function function in block and game process is as follows:Find the exchange of D3D12 game Chain interface;By inline hook, the barrage drawn with barrage in functional module is drawn power function to catch on exchanging chain interface Foreground display function function, when have invoked foreground display function function in D3D12 game process, will jump to barrage and drawing work( The barrage of energy module draws power function.
In addition, barrage draws the initialized idiographic flow of functional module execution being:According to the friendship of the D3D12 game for finding Chain interface is changed, the D3D12 ingress interfaces of the command queue's interface and D3D12 game of the exchanging chain are obtained;By calling acquisition The command queue of D3D12 ingress interfaces creates function, creates command queue's interface;By calling the D3D12 entrances of acquisition The synchronous fence of interface creates function, creates a synchronous fence interface, and calls the event of Windows api interfaces to create letter Number creates an event, and the event for creating is bound with synchronous fence interface;By calling the label of the D3D12 ingress interfaces of acquisition Name interface creates function, and establishment renders tinter signature interface;Tinter signature interface is rendered according to what is created, by calling The pipeline state of D3D12 ingress interfaces creates function, creates pipeline state interface;By calling the D3D12 ingress interfaces of acquisition Constant Buffer views create function, create constant Buffer view interfaces;By calling the D3D12 ingress interfaces of acquisition Rendering objects view creates function, creates rendering objects view interface;By calling the resource wound of the D3D12 ingress interfaces of acquisition Function is built, a Buffer resource is created and is obtained a D3D12 resource interface, the mapping function Map provided using the interface, Vertex data is filled in the Buffer resources of establishment, input vertex Buffer is formed.
Shared texture creates control unit to be used for:After with the addition of the full frame game source of D3D12 in live client, notify Barrage is drawn functional module and creates shared texture.Specifically, the process of the shared texture of barrage drafting functional module establishment is:It is right The description scheme of shared texture is initialized;Create the resource descriptor interface of shared texture;Create the resource of shared texture; Create the Buffer resources of the shared texture for more new resources;Using the resource descriptor interface and altogether of the shared texture for creating The resource of texture is enjoyed, shared texture is created.
Barrage image rendering control unit is used for:After barrage drafting functional module creates shared texture, barrage is controlled Functional module is drawn by the barrage image copy being stored in shared drive in the shared texture for creating and using the shared stricture of vagina Reason is by the full frame game source of barrage image rendering to D3D12.Its specific operation process is corresponding to method and step, does not go to live in the household of one's in-laws on getting married herein State!
It should be noted that:The system for drawing barrage image on the full frame game sources of D3D12 that above-described embodiment is provided exists When realizing barrage image rendering, only it is illustrated with the division of above-mentioned each functional module, in practical application, can be as needed Above-mentioned functions distribution is completed by different functional modules, will the internal structure of system be divided into different functional modules, with Complete all or part of function described above.
The present invention is not limited to above-mentioned embodiment, for those skilled in the art, without departing from On the premise of the principle of the invention, some improvements and modifications can also be made, these improvements and modifications are also considered as the protection of the present invention Within the scope of.The content not being described in detail in this specification belongs to prior art known to professional and technical personnel in the field.

Claims (10)

1. it is a kind of on the full frame game sources of D3D12 draw barrage image method, it is characterised in that the method includes following step Suddenly:
Step S1:Live client connects barrage server, obtains the barrage information of spectators' transmission and is depicted as barrage image guarantor It is stored in shared drive, proceeds to step S2;
Step S2:The method for realizing barrage image rendering function is packaged into barrage and draws functional module by live client;And lead to Cross message hook barrage drafting functional module is injected in D3D12 game process, proceed to step S3;
Step S3:Before live client is drawn the barrage in functional module and D3D12 game process by inline hook Platform display function function is bound, and D3D12 plays when going to for the image in back buffer area to be submitted to foreground display, Automatically the initialization for performing that barrage draws functional module is redirected, step S4 is proceeded to;
Step S4:After with the addition of the full frame game source of D3D12 in live client, notify that the barrage draws functional module wound Shared texture is built, step S5 is proceeded to;
Step S5:After barrage drafting functional module creates shared texture, control barrage is drawn functional module and will be stored in altogether The barrage image copy in internal memory is enjoyed in the shared texture for creating and the shared texture is utilized by barrage image rendering to D3D12 Full frame game source on.
2. the method for drawing barrage image as claimed in claim 1 on the full frame game sources of D3D12, it is characterised in that:Step Barrage drafting functional module is carried out with the foreground display function function in game process by inline hook described in S3 Binding, specifically includes below scheme:Find the exchanging chain interface of D3D12 game;By inline hook, function is drawn with barrage Barrage in module is drawn power function to catch on the foreground display function function of exchanging chain interface, when in D3D12 game process Foreground display function function is have invoked, the barrage drafting power function that barrage draws functional module will be jumped to.
3. the method for drawing barrage image as claimed in claim 2 on the full frame game sources of D3D12, it is characterised in that:Step In S3, when performing the initialization of barrage drafting functional module, idiographic flow is as follows:
Step one, the exchanging chain interface played according to the D3D12 for finding, obtain command queue's interface of the exchanging chain;
Step 2, the exchanging chain interface played according to the D3D12 for finding, are connect by calling the entrance provided by the interface to obtain Mouth function, gets the D3D12 ingress interfaces of D3D12 game;
Step 3, the command queue of D3D12 ingress interfaces by calling acquisition create function, create a command queue and connect Mouthful;
Step 4, the synchronous fence of D3D12 ingress interfaces by calling acquisition create function, create a synchronous fence and connect Mouthful;Then call the event of WindowsAPI interfaces to create one event of function creation, the event of establishment is connect with synchronous fence Mouth binding;
Step 5, the signature interface of D3D12 ingress interfaces by calling acquisition create function, and establishment renders tinter signature and connects Mouthful;
What step 6, basis were created renders tinter signature interface, is created by calling the pipeline state of D3D12 ingress interfaces Function, creates pipeline state interface;
Step 7, the constant Buffer views of D3D12 ingress interfaces by calling acquisition create function, create constant Buffer View interface;
Step 8, the rendering objects view of D3D12 ingress interfaces by calling acquisition create function, create rendering objects view Interface;
The asset creation function of step 9, D3D12 ingress interfaces by calling acquisition, creates a Buffer resource, and To a D3D12 resource interface;Vertex data is filled into the Buffer of establishment by the mapping function Map provided using the interface In resource, input vertex Buffer is formed.
4. the method for drawing barrage image as claimed in claim 3 on the full frame game sources of D3D12, it is characterised in that:Step In S4, the barrage is drawn functional module and creates shared texture, specifically includes following operation:
Step one, the description scheme to sharing texture are initialized;
Step 2, the resource descriptor interface for creating shared texture;
Step 3, the resource for creating shared texture;
Step 4, the Buffer resources for creating shared texture for more new resources;
Step 5, using the shared texture created in step 2, step 3 resource descriptor interface and shared texture resource, Create shared texture.
5. the method for drawing barrage image as claimed in claim 3 on the full frame game sources of D3D12, it is characterised in that:Step In S5, control barrage draw functional module by the barrage image copy being stored in shared drive to create shared texture in simultaneously Using on full frame game source of the shared texture by barrage image rendering to D3D12, following operation is specifically included:
Step one, the image resource for obtaining going game back buffer area;
Step 2, the image resource to obtaining carry out Status Change, and image resource is changed to rendering objects shape by dispaly state State;
Step 3, the post-processing object provided by the command queue's interface for calling barrage to create when drawing functional module initialization are set Function is put, the image resource of acquisition is set to into rendering objects;
Step 4, the vertex buffer provided by the command queue's interface for calling barrage to create when drawing functional module initialization are set Function is put, barrage is drawn the input vertex Buffer created when functional module is initialized and is arranged in pipeline;
Step 5, the viewport provided by the command queue's interface for calling barrage to create when drawing functional module initialization arrange letter Number, clipping region arrange function, are respectively provided with viewport and clipping region;
Step 6, by call barrage draw functional module initialize when create command queue's interface tinter signature arrange Function, barrage is drawn the tinter signature interface that renders created when functional module is initialized and is arranged in pipeline;
Step 7, the pipeline state provided by the command queue's interface for calling barrage to create when drawing functional module initialization are set Function is put, barrage is drawn the pipeline state interface created when functional module is initialized and is set to current line;
Step 8, the resource descriptor provided by the command queue's interface for calling barrage to create when drawing functional module initialization Function is set, descriptor parameters table is set;
Line translation is entered on step 9, the summit of barrage image to depositing in shared drive so as to can show at position to be shown Show;
Barrage image copy in shared drive to barrage is simultaneously drawn functional module establishment by step 10, drafting barrage image pel Shared texture in;
Step 11, the image resource state of the current buffer changed in above-mentioned steps two is re-set as into dispaly state;
Step 12, the command queue provided by the command queue's interface for calling barrage to obtain when drawing functional module initialization Function is performed, all orders stored in performing command queue's list, to complete the drafting of current barrage image;
Step 13, the GPU of live broadcasting client and CPU, wait the drafting of next barrage image.
6. it is a kind of on the full frame game sources of D3D12 draw barrage image system, it is characterised in that:The system is included located at live Barrage server connection unit inside client, barrage draw functional module encapsulation and injection unit, barrage draw function mould Block binds and initialization unit, shared texture create control unit and barrage image rendering control unit;
The barrage server connection unit is used for:Connection barrage server, obtains the barrage information of spectators' transmission and is depicted as Barrage image is saved in shared drive;
The barrage draws functional module encapsulation and injection unit to be used for:The method for realizing barrage image rendering function is packaged into Barrage draws functional module;And barrage drafting functional module is injected in D3D12 game process by message hook;
The barrage draws functional module binding and initialization unit to be used for:By inline hook by barrage draw functional module with Foreground display function function in D3D12 game process is bound, and D3D12 game is being gone to the figure in back buffer area When showing as being submitted to foreground, the initialization for performing that barrage draws functional module is redirected automatically;
The shared texture creates control unit to be used for:After with the addition of the full frame game source of D3D12 in live client, notify Barrage is drawn functional module and creates shared texture;
The barrage image rendering control unit is used for:After barrage drafting functional module creates shared texture, barrage is controlled Functional module is drawn by the barrage image copy being stored in shared drive in the shared texture for creating and using the shared stricture of vagina Reason is by the full frame game source of barrage image rendering to D3D12.
7. the system for drawing barrage image as claimed in claim 6 on the full frame game sources of D3D12, it is characterised in that:It is described Barrage draws functional module binding and initialization unit is drawn barrage in functional module and game process by inline hook Foreground display function function is bound, and idiographic flow is as follows:Find the exchanging chain interface of D3D12 game;By inline hook Son, the barrage drawn with barrage in functional module are drawn power function to catch on the foreground display function function of exchanging chain interface, When have invoked foreground display function function in D3D12 game process, the barrage drafting that barrage draws functional module will be jumped to Power function.
8. the system for drawing barrage image as claimed in claim 7 on the full frame game sources of D3D12, it is characterised in that:It is described Barrage draws the initialized idiographic flow of functional module execution:According to the exchanging chain interface of the D3D12 game for finding, obtain Command queue's interface of the exchanging chain and the D3D12 ingress interfaces of D3D12 game;By calling the D3D12 ingress interfaces of acquisition Command queue create function, create command queue's interface;By calling the synchronous fence of the D3D12 ingress interfaces of acquisition Function is created, a synchronous fence interface is created, and is called the event of Windows api interfaces to create one thing of function creation Part, the event for creating is bound with synchronous fence interface;Letter is created by the signature interface for calling the D3D12 ingress interfaces of acquisition Number, establishment render tinter signature interface;Tinter signature interface is rendered according to what is created, is connect by calling D3D12 entrances The pipeline state of mouth creates function, creates pipeline state interface;By calling the constant Buffer of the D3D12 ingress interfaces of acquisition View creates function, creates constant Buffer view interfaces;By calling the rendering objects view of the D3D12 ingress interfaces of acquisition Function is created, rendering objects view interface is created;By calling the asset creation function of the D3D12 ingress interfaces of acquisition, create One Buffer resource simultaneously obtains a D3D12 resource interface, and the mapping function Map provided using the interface, by vertex data It is filled in the Buffer resources of establishment, forms input vertex Buffer.
9. the system for drawing barrage image as claimed in claim 8 on the full frame game sources of D3D12, it is characterised in that:It is described Barrage draws the idiographic flow of the shared texture of functional module establishment:Description scheme to sharing texture is initialized;Create The resource descriptor interface of shared texture;Create the resource of shared texture;Create shared texture for more new resources Buffer resources;Using resource descriptor interface and the resource of shared texture of the shared texture for creating, shared texture is created.
10. the system for drawing barrage image as claimed in claim 8 on the full frame game sources of D3D12, it is characterised in that:It is described Barrage image rendering control unit control barrage draws functional module by the barrage image copy being stored in shared drive to wound By on the full frame game source of barrage image rendering to D3D12 in the shared texture built and using the shared texture, idiographic flow is:
Obtain the image resource in going game back buffer area;Image resource to obtaining carries out Status Change, by image resource Rendering objects state is changed to by dispaly state;Connect by calling barrage to draw the command queue created when functional module is initialized The post-processing object that mouth is provided arranges function, and the image resource of acquisition is set to rendering objects;By calling the command queue The vertex buffer that interface is provided arranges function, barrage is drawn the input vertex Buffer created when functional module is initialized and is arranged To in pipeline;Function is set by calling the viewport that command queue's interface is provided to arrange function, clipping region, is respectively provided with Viewport and clipping region;Function is set by calling the tinter of command queue's interface to sign, barrage is drawn into function mould The tinter signature interface that renders created during initialization block is arranged in pipeline;By calling what command queue's interface was provided Pipeline state arranges function, barrage is drawn the pipeline state interface created when functional module is initialized and is set to current line; Function is arranged by the resource descriptor for calling command queue's interface to provide, descriptor parameters table is set;To shared drive Line translation is entered on the summit of the barrage image of middle storage so as to can show at position to be shown;Draw barrage image pel simultaneously Barrage image copy in shared drive to barrage is drawn in the shared texture that functional module is created;By the Current buffer of change The image resource state in area is re-set as dispaly state;Performed by the command queue for calling command queue's interface to provide Function, all orders stored in performing command queue's list, to complete the drafting of current barrage image;Finally, live broadcasting The GPU and CPU of client, waits the drafting of next barrage image.
CN201610919199.7A 2016-10-20 2016-10-20 Method and system for drawing bullet screen image on D3D12 full-screen game source Expired - Fee Related CN106528096B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610919199.7A CN106528096B (en) 2016-10-20 2016-10-20 Method and system for drawing bullet screen image on D3D12 full-screen game source

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610919199.7A CN106528096B (en) 2016-10-20 2016-10-20 Method and system for drawing bullet screen image on D3D12 full-screen game source

Publications (2)

Publication Number Publication Date
CN106528096A true CN106528096A (en) 2017-03-22
CN106528096B CN106528096B (en) 2020-02-07

Family

ID=58332959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610919199.7A Expired - Fee Related CN106528096B (en) 2016-10-20 2016-10-20 Method and system for drawing bullet screen image on D3D12 full-screen game source

Country Status (1)

Country Link
CN (1) CN106528096B (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107018191A (en) * 2017-03-31 2017-08-04 武汉斗鱼网络科技有限公司 A kind of method and apparatus for controlling game
CN107126701A (en) * 2017-03-31 2017-09-05 武汉斗鱼网络科技有限公司 The method and device of live middle addition game good friend
CN107291559A (en) * 2017-06-30 2017-10-24 武汉斗鱼网络科技有限公司 A kind of method and device of control CPU line journey and GPU thread synchronizations
CN107911708A (en) * 2017-11-09 2018-04-13 腾讯数码(天津)有限公司 Barrage display methods, live broadcasting method and relevant apparatus
CN108830920A (en) * 2018-06-28 2018-11-16 武汉斗鱼网络科技有限公司 A kind of creation constant buffer method, apparatus and readable storage medium storing program for executing
CN108845961A (en) * 2018-06-29 2018-11-20 武汉斗鱼网络科技有限公司 A kind of creation vertex buffer method, apparatus and readable storage medium storing program for executing
CN109215107A (en) * 2017-06-30 2019-01-15 畅想科技有限公司 For more viewport transform modules used in 3D rendering system
CN109445952A (en) * 2017-08-31 2019-03-08 武汉斗鱼网络科技有限公司 A kind of the display adjustment method and device of barrage message
CN110321193A (en) * 2019-05-05 2019-10-11 四川盛趣时代网络科技有限公司 A kind of exchange method and system for sharing texture based on Direct3D
CN112689188A (en) * 2020-12-21 2021-04-20 威创集团股份有限公司 Large-screen rolling caption display method, device, terminal and storage medium
CN114610405A (en) * 2022-03-03 2022-06-10 深圳盛显科技有限公司 Multi-application screen capture and network code output method, device, medium and product

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227421A (en) * 2007-01-16 2008-07-23 沃天醒石(北京)科技有限公司 Instantaneous communication method and apparatus under full screen graphics mode
CN105069831A (en) * 2015-07-28 2015-11-18 广州爱拍网络科技有限公司 Method and system for acquiring OpenGL rendering picture based on Hook technology
CN105302580A (en) * 2015-11-28 2016-02-03 武汉斗鱼网络科技有限公司 Method and system for rapidly acquiring game graphics through GPU (Graphics Processing Unit) texture sharing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227421A (en) * 2007-01-16 2008-07-23 沃天醒石(北京)科技有限公司 Instantaneous communication method and apparatus under full screen graphics mode
CN105069831A (en) * 2015-07-28 2015-11-18 广州爱拍网络科技有限公司 Method and system for acquiring OpenGL rendering picture based on Hook technology
CN105302580A (en) * 2015-11-28 2016-02-03 武汉斗鱼网络科技有限公司 Method and system for rapidly acquiring game graphics through GPU (Graphics Processing Unit) texture sharing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FRANK D. LUNA: ""Introduction to 3D game programming with DirectX 12"", 《HTTP://CENG2.KTU.EDU.TR/~CAKIR/FILES/DX12BOOK.PDF》 *
MORADIN: ""How do I get the DirectX 12 command queue from a swap chain"", 《HTTPS://STACKOVERFLOW.COM/QUESTIONS/36286425/HOW-DO-I-GET-THE-DIRECTX-12-COMMAND-QUEUE-FROM-A-SWAP-CHAIN》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107126701B (en) * 2017-03-31 2021-04-27 武汉斗鱼网络科技有限公司 Method and device for adding game friends in live broadcast
CN107126701A (en) * 2017-03-31 2017-09-05 武汉斗鱼网络科技有限公司 The method and device of live middle addition game good friend
CN107018191A (en) * 2017-03-31 2017-08-04 武汉斗鱼网络科技有限公司 A kind of method and apparatus for controlling game
CN107018191B (en) * 2017-03-31 2020-06-16 武汉斗鱼网络科技有限公司 Method and device for controlling game
CN107291559A (en) * 2017-06-30 2017-10-24 武汉斗鱼网络科技有限公司 A kind of method and device of control CPU line journey and GPU thread synchronizations
CN109215107A (en) * 2017-06-30 2019-01-15 畅想科技有限公司 For more viewport transform modules used in 3D rendering system
CN109445952A (en) * 2017-08-31 2019-03-08 武汉斗鱼网络科技有限公司 A kind of the display adjustment method and device of barrage message
CN107911708A (en) * 2017-11-09 2018-04-13 腾讯数码(天津)有限公司 Barrage display methods, live broadcasting method and relevant apparatus
CN108830920A (en) * 2018-06-28 2018-11-16 武汉斗鱼网络科技有限公司 A kind of creation constant buffer method, apparatus and readable storage medium storing program for executing
CN108830920B (en) * 2018-06-28 2022-06-21 武汉斗鱼网络科技有限公司 Method and device for creating constant buffer area and readable storage medium
CN108845961A (en) * 2018-06-29 2018-11-20 武汉斗鱼网络科技有限公司 A kind of creation vertex buffer method, apparatus and readable storage medium storing program for executing
CN110321193A (en) * 2019-05-05 2019-10-11 四川盛趣时代网络科技有限公司 A kind of exchange method and system for sharing texture based on Direct3D
CN112689188A (en) * 2020-12-21 2021-04-20 威创集团股份有限公司 Large-screen rolling caption display method, device, terminal and storage medium
CN112689188B (en) * 2020-12-21 2022-06-21 威创集团股份有限公司 Large-screen rolling caption display method, device, terminal and storage medium
CN114610405A (en) * 2022-03-03 2022-06-10 深圳盛显科技有限公司 Multi-application screen capture and network code output method, device, medium and product
CN114610405B (en) * 2022-03-03 2024-03-29 深圳盛显科技有限公司 Multi-application screen capturing and network code output method, equipment, medium and product

Also Published As

Publication number Publication date
CN106528096B (en) 2020-02-07

Similar Documents

Publication Publication Date Title
CN106528096A (en) Method and system for drawing popup image on D3D12 full screen game source
CN105354872B (en) A kind of rendering engine based on 3D web games, implementation method and tools
US7450124B2 (en) Generating 2D transitions using a 3D model
CN107567642A (en) System, method and apparatus for the three-dimensional modeling based on voxel
CN110291563A (en) Multiple tinter processes in graphics process
CN113076152B (en) Rendering method and device, electronic equipment and computer readable storage medium
CN106575445A (en) Furry avatar animation
CN106528303A (en) GPU texture sharing-based method and system for obtaining source images of D3D12 game
CN106990961B (en) Method for establishing WebGL graphic rendering engine
TW200901081A (en) Post-render graphics overlays
CN108958724A (en) Three-dimensional visualization engine construction method, device, engine, browser, equipment and storage medium
CN102651142A (en) Image rendering method and image rendering device
CN102169596A (en) Method and device for realizing 3D rendering on embedded device
CN109949395A (en) Thermodynamic chart rendering method and device
JP2005322108A (en) Display device, displaying method, and program
CN106886974A (en) Image accelerator equipment and correlation technique
CN117707676A (en) Window rendering method, device, equipment, storage medium and program product
WO2023160041A1 (en) Image rendering method and apparatus, computer device, computer-readable storage medium and computer program product
CN117036562A (en) Three-dimensional display method and related device
CN113192173B (en) Image processing method and device of three-dimensional scene and electronic equipment
CN104699850B (en) The processing method and processing device of three-dimensional geographic information
WO2023142756A1 (en) Live broadcast interaction method, device, and system
CN115019019B (en) Method for realizing 3D special effect editor
Le Feuvre Towards Declarative 3D in Web Architecture.
Zhang et al. Real-time hair simulation on mobile device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200207