标签: direct3d

你能将一个进程的Direct3D窗口渲染到另一个进程'HWND吗?

我想要做的是让Windows应用程序启动另一个Direct3D应用程序,并将Direct3D应用程序渲染到父进程提供的控件中.

这甚至可能吗?如果是的话,怎么办呢?

winapi direct3d

7
推荐指数
2
解决办法
2262
查看次数

一个顶点缓冲区中有多个网格?

我是否需要为每个网格使用一个顶点缓冲区,还是可以在一个顶点缓冲区中存储多个网格?如果是的话,我应该这样做,我该怎么做?

c++ 3d direct3d vertex-buffer

7
推荐指数
1
解决办法
4145
查看次数

不同CG/GLSL/HLSL功能的性能

有标准的着色器函数库,例如Cg.但是有没有资源可以告诉你每次采取多长时间......我的想法类似于你曾经如何查看每个ASM操作所需的周期数.

opengl 3d performance shader direct3d

7
推荐指数
1
解决办法
3250
查看次数

转储正在运行的Direct3D或OpenGL应用程序的3d几何数据

对于涉及3D打印机的我的业余爱好项目,我想从各种计算机游戏中捕获3D模型.游戏在Windows上运行,通常使用DirectX9,但也有一个可以配置为使用OpenGL.

是否有任何工具/软件允许我从正在运行的应用程序中获取整个场景并将其转储到可以转换为某种流行的3D格式(如OBJ)的文件中?

我需要的只是几何学; 点,边,多边形.我不需要纹理或着色器数据.这有可能吗?

opengl directx 3d direct3d export

7
推荐指数
1
解决办法
1万
查看次数

在Visual Studio 2012上调试着色器,找不到符号

我不知道你们中是否有很多人尝试使用Visual Studio 2012的新功能来调试基于Direct3D的应用程序.

我成功捕获了我的应用程序的框架,然后我想调试顶点着色器的执行: 在此输入图像描述

我点击绿色三角形来调试给定的顶点,但是我找到了"No Symbol Found"消息,这使我无法调试它.

有人知道如何为Visual Studio找到符号吗?

谢谢.

debugging direct3d sharpdx visual-studio-2012

7
推荐指数
1
解决办法
3185
查看次数

无法添加对WinRT C++ DLL项目的引用

情景:

我正在基于"Direct3D App"Visual Studio代码示例为Windows应用商店应用程序制作[edit:native WinRT] C++ Direct X DLL项目.

这必须是我的Windows Store App项目中的一个单独的DLL项目,因为我将在Windows 8 Metro应用程序和Windows Phone版本的应用程序中使用我的XAML UserControl和Direct X渲染器.

问题:

我无法在C#Windows Store应用程序项目中引用C++项目.Visual Studio拒绝使用以下单词:

A reference to <project-name> could not be added.
Run Code Online (Sandbox Code Playgroud)

我已经看到了使用/ clr标志编译C++项目的建议,但这与以下内容不兼容:

  • 项目中某些API所需的/ ZW标志
  • "wrl.h"标题
  • 项目设置中的众多其他命令行标志

因此,在这种情况下,/ clr标志似乎不是一个选项.

问题:

如何引用C++项目以便在C#Windows Store App项目中使用我的XAML Direct X渲染器?还是有更好的选择吗?

提前致谢.

c# c++ clr xaml direct3d

7
推荐指数
1
解决办法
3030
查看次数

GetXD/ReleaseDC的IDXGISurface1线程安全/同步规则?

IDXGISurface1 GetDC/ReleaseDC用于创建纹理的线程安全规则是D3D11_RESOURCE_MISC_GDI_COMPATIBLE什么?

我可以交互ID3D11DeviceID3D11DeviceContext之间GetDC,并ReleaseDC在另一个线程,没有数据争或因阻止隐式同步?或者我是为了避免GPU空转被迫为D3D11Device执行GDI渲染的线程创建一个单独的,然后D3D11Device通过复制到"主"将其传回D3D11_RESOURCE_MISC_SHARED_KEYED_MUTEX

即以下是否有效?

thread 1:

D3D11Device::CreateTexture2D // Create texture 1

IDXGISurface1::GetDC // Get DC for texture 1

... // Draw to texture1 using GDI

IDXGISurtface1::ReleaseDC // Release DC for texture1

thread 2:

// Is this valid if thread 1 is drawing using GDI?

D3D11DeviceContext::OMSetRenderTargets

D3D11DeviceContext::Draw // Draw texture2. 
Run Code Online (Sandbox Code Playgroud)

c++ direct3d thread-safety dxgi

7
推荐指数
1
解决办法
717
查看次数

如何使用ComPtr中包含的Direct3D 11指针获取11.1接口?

我正在关注教程,并且我已经将通常的初始化转换为使用ComPtrs到此行:

ID3D11Device*           g_pd3dDevice = nullptr;
ID3D11Device1*          g_pd3dDevice1 = nullptr;
// Obtain the Direct3D 11.1 versions if available
hr = g_pd3dDevice->QueryInterface( __uuidof( ID3D11Device1 ), reinterpret_cast<void**>( &g_pd3dDevice1 ) );
Run Code Online (Sandbox Code Playgroud)

这就是我所期望的直接模拟:

Microsoft::WRL::ComPtr<ID3D11Device>    device = nullptr;
Microsoft::WRL::ComPtr<ID3D11Device1>   device1 = nullptr;
// Obtain the Direct3D 11.1 versions if available
hr = device->QueryInterface(__uuidof(ID3D11Device1), reinterpret_cast<ID3D11Device1**>(&device1));
Run Code Online (Sandbox Code Playgroud)

有很多编译器和智能感知警告(对我来说真的很神秘).它不喜欢演员,它不喜欢我如何使用QueryInterface().

我该怎么办?

错误:

Error   1   error C2440: 'reinterpret_cast' : cannot convert from 'Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<ID3D11Device1>>' to 'ID3D11Device1 **'
Error   2   error C2660: 'Microsoft::WRL::Details::RemoveIUnknownBase<T>::QueryInterface' : function does not take 1 arguments
Run Code Online (Sandbox Code Playgroud)

智能感知警告(可能有帮助吗?):

18  IntelliSense: function …
Run Code Online (Sandbox Code Playgroud)

c++ windows directx direct3d

7
推荐指数
1
解决办法
4738
查看次数

为什么在顶点着色器之后处理几何着色器?

OpenGLDirect3D渲染管道中,几何着色器在顶点着色器之后和片段/像素着色器之前处理.现在显然在片段/像素着色器没有意义之后处理几何着色器,但我想知道为什么不把它放在顶点着色器之前?

从软件/高级角度来看,至少,它似乎更有意义:首先运行几何着色器以创建所需的所有顶点(并转储仅与几何着色器相关的任何数据),然后运行这样创建的所有顶点上的顶点着色器.有一个明显的缺点,现在必须在每个新创建的顶点上运行顶点着色器,但是在当前管道中需要为几何着色器中的每个顶点运行需要完成的任何逻辑. ,据推测; 所以那里没有太大的表现.

我假设,因为几何着色器在两个管道中处于这个位置,所以存在硬件原因,或者说它更有意义的非显而易见的管道原因.

(我知道在运行几何着色器之前需要进行多边形链接(如果它需要单点作为输入,可能不会这样做)但是我也知道它需要在几何着色器之后运行,所以它仍然不会在这些阶段之间运行顶点着色器的感觉?)

opengl pipeline direct3d geometry-shader vertex-shader

7
推荐指数
1
解决办法
1073
查看次数

Direct3D编程新手:11对12

对于D3D编程的新手,在潜入D3D12之前,应该直接学习D3D12还是需要D3D11?

假设从头开始和C++的正确知识,我应该走哪条路?

direct3d direct3d11 direct3d12

7
推荐指数
1
解决办法
2878
查看次数