Questions tagged [direct3d]

Direct3D is a high-performance, COM-based API for accessing graphics hardware (GPUs) in a device-independent way on Microsoft platforms.

Direct3D is a high-performance, COM-based API for accessing graphics hardware (GPUs) in a device-independent way on Microsoft platforms.

It is typically used for video game development, in contrast to the OpenGL API, which is more often used in data visualization tasks.

There are several versions of the Direct3D API, each of which corresponding to a different generation of graphics hardware.

  • Direct3D 7 incorporated hardware-accelerated transformation and lighting (NVidia Geforce, ATi Radeon).
  • Direct3D 8 added limited support for programmable graphics hardware (pixel and vertex shaders) using a specially-designed shader assembler syntax (NVidia Geforce 3, ATi Radeon 8500).
  • Direct3D 9 greatly improved support for programmable shader hardware, allowing for fairly complex shader programs (NVidia Geforce FX, ATi Radeon 9500), as well as incorporating a high-level language for writing shader programs (HLSL, basically identical to NVidia Cg).
  • Direct3D 10 featured a completely restructured API while removing support for fixed-function hardware and assembler shader programs (NVidia Geforce 8). While previous versions of Direct3D were backwards-compatible, Direct3D 10 works only on capable hardware.
  • Direct3D 11 added support for different levels of graphics hardware functionality, unifying support for "modern" (fully-programmable) as well as "legacy" (fixed-function or partially-programmable) GPUs.

Microsoft's XBox game consoles' GPUs are programmed using a variant of Direct3D (a Direct3D 8 variant on the original XBox, and an improved Direct3D 9 variant on the XBox 360, with added support for some Direct3D 10 features such as tesselation).

More information at http://en.wikipedia.org/wiki/Direct3D

1464 questions
8
votes
1 answer

read pixel data from render target in d3d11

I set a texture2d as a device render target. After draw, how can i read and write pixels from render target directly , and present it then.
TheWind
  • 81
  • 1
  • 1
  • 3
8
votes
3 answers

Can you render a Direct3D window for one process into another process' HWND?

What I want to do is have a Windows application launch another Direct3D application and have the Direct3D application render into a control provided by the parent process. Is this even possible? If it is, how would it be done?
Oliver Jones
7
votes
2 answers

Requirements for target application for Visual Studio 11's Graphics Debugger

I was super happy when the "Graphics Debugger" feature was announced for Visual Studio 11, I immediately attempted to get it working on various projects I had, unfortunately I've only managed to get it working for Windows 8 Metro applications!…
Simon Buchan
  • 12,707
  • 2
  • 48
  • 55
7
votes
3 answers

Dumping 3d geometry data of a running Direct3D or OpenGL application

For a hobby project of mine involving a 3d printer I would like to capture 3d models from various computer games. The games are running on Windows and are usually using DirectX9 but there is also one which can be configured to use OpenGL. Is there…
CodeTwice
  • 2,926
  • 3
  • 18
  • 18
7
votes
2 answers

What exactly is "lightweight COM"?

While researching which COM apartment threading models are supported by Direct2D, I discovered that despite appearances and the fact that one can use the API from .NET using COM interoperability, Direct2D (like other DirectX APIs) is not actually a…
stakx - no longer contributing
  • 83,039
  • 20
  • 168
  • 268
7
votes
1 answer

directx-12 - How to use commandlist with multiple descriptor heaps?

Currently going through microsofts examples, it is noticable, that only one cbv_srv_uav heap is used per commandlist (+ maybe on additional sampler heap). Is it possible to use multiple heaps per CommandList? So i setup heap and…
7
votes
1 answer

Unexpected sizes of arrays in a HLSL Constant Buffer

I have not yet used more complicated CBs like this here but, from what I understand, my C++ alignment and packing has to match what HLSL expects. So I'm trying to figure out the rules so I can predictably lay out the C++ struct to match what HLSL…
CodeAngry
  • 12,760
  • 3
  • 50
  • 57
7
votes
1 answer

Why does Direct3D 11 make a distinction between SRVs and UAVs?

I have been playing with Direct3D 11 and was surprised to discover that an HLSL StructuredBuffer must be bound to a Shader Resource View (SRV) whereas a RWStructuredBuffer must be bound to a Uniform Access View (UAV). Looking deeper into this,…
Trillian
  • 6,207
  • 1
  • 26
  • 36
7
votes
1 answer

QtQuick 2.0 scene on top of Direct3D scene

I have been trying to come up with a solution for having a QtQuick 2.0 scene together with a Direct3D scene for quite a while, but wasn’t very successful. My goal is to have a Direct3D engine running at reasonable speed (60 FPS?) together with QML…
PiN
  • 126
  • 3
7
votes
1 answer

How do I use a Direct3D 11 pointer wrapped in ComPtr to get a 11.1 interface?

I'm following tutorials and I've converted the usual initialisation to using ComPtrs up to this line: ID3D11Device* g_pd3dDevice = nullptr; ID3D11Device1* g_pd3dDevice1 = nullptr; // Obtain the Direct3D 11.1 versions if…
chrisp
  • 2,181
  • 4
  • 27
  • 35
7
votes
1 answer

Preventing pixelshader overdraw for a single ERG

Background Using gluTess to build a triangle list in Direct3D9 from a GDI+ DrawString(..) path: A pixel shader (v3.0) is then used to fill in the shape. When painting with opaque values, everything looks fine: The problem At certain font sizes, if…
Sichbo
  • 438
  • 4
  • 8
7
votes
4 answers

Multiple meshes in one vertex buffer?

Do I need to use one vertex buffer per mesh, or can I store multiple meshes in one vertex buffer? If so, should I do it, and how would I do it?
Electro
  • 2,994
  • 5
  • 26
  • 32
7
votes
3 answers

Passing colors through a pixel shader in HLSL

I have have a pixel shader that should simply pass the input color through, but instead I am getting a constant result. I think my syntax might be the problem. Here is the shader: struct PixelShaderInput { float3 color : COLOR; }; struct…
Justin R.
  • 23,435
  • 23
  • 108
  • 157
7
votes
1 answer

IDXGISurface1 thread-safety/synchronization rules for GetDC/ReleaseDC?

What are the thread-safety rules for IDXGISurface1 GetDC/ReleaseDC for textures created with D3D11_RESOURCE_MISC_GDI_COMPATIBLE? Can I interact with ID3D11Device and ID3D11DeviceContext between GetDC and ReleaseDC on another thread, without…
ronag
  • 49,529
  • 25
  • 126
  • 221
7
votes
2 answers

Could not add reference to WinRT C++ DLL project

THE SCENARIO: I am making a [edit: native WinRT] C++ Direct X DLL project for Windows Store apps based on the "Direct3D App" Visual Studio code sample. This must be a separate DLL project from my Windows Store App project because I will be using my…
Brett
  • 298
  • 2
  • 16