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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 143
- 238000009877 rendering Methods 0.000 claims description 52
- 230000001360 synchronised effect Effects 0.000 claims description 17
- 238000005538 encapsulation Methods 0.000 claims description 8
- 238000002347 injection Methods 0.000 claims description 7
- 239000007924 injection Substances 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012805 post-processing Methods 0.000 claims description 5
- 208000031481 Pathologic Constriction Diseases 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 210000001215 vagina Anatomy 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000004040 coloring Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 241000208340 Araliaceae Species 0.000 description 1
- 235000002918 Fraxinus excelsior Nutrition 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 239000002956 ash Substances 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8146—Monomedia 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
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.
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)
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)
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 |
-
2016
- 2016-10-20 CN CN201610919199.7A patent/CN106528096B/en not_active Expired - Fee Related
Patent Citations (3)
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)
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)
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 |