问题标签 [directx-10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
426 浏览

visual-c++ - Visual c++ DirectX 编译错误

有人可以帮我解决这个错误吗?我已经链接到 d3d10.lib 和 d3dx10.lib。

我是 DirectX 的新手,我正在关注 wendy jones DirectX 10 教程

1>t1.obj:错误 LNK2019:未解析的外部符号 _D3D10CreateDeviceAndSwapChain@32 在函数“bool cdecl InitDirect3D(struct HWND *,int,int)”中引用 (?InitDirect3D@@YA_NPAUHWND__@@HH@Z) 1>C:\Users \Ehsan\Documents\Visual Studio 2010\Projects\DirectX\t1\Debug\t1.exe : 致命错误 LNK1120: 1 unresolved externals

源代码 :

0 投票
2 回答
1929 浏览

directx - 在 DirectX 10 中清除单个视口

我正准备开始一个 C++ DirectX 10 应用程序,该应用程序将由多个“面板”组成,以显示不同类型的信息。我在一个 RenderTargetView 上尝试了多个视口,并取得了一些成功。但是,我找不到关于如何一次清除单个视口的明确答案。我的应用程序中的这些面板(视口)将在某些区域重叠,所以我希望能够从“下到上”绘制它们,同时清除每个视口,这样下面板的绘图就不会显示在更高的。在 DirectX 9 中,设备对象的 Clear() 方法似乎只清除当前设置的视口。DirectX 10 使用 ClearRenderTargetView(),它清除整个绘图区域,

DirectX 10 中有没有办法只清除绘图区域内的视口/矩形?有人推测,唯一的方法可能是在该空间中绘制一个四边形。似乎另一种可能性是为每个面板设置一个单独的 RenderTargetView,但我想避免这种情况,因为它需要其他冗余资源,例如单独的深度/模板缓冲区(除非这是我的误解)。

任何帮助将不胜感激!谢谢!

0 投票
1 回答
784 浏览

texture2d - 多个纹理不显示

我是DirectX10的新手。现在我正在开发一个 Direct10 应用程序。它混合了两个根据用户输入手动填充的纹理。当前的实现是

  1. 使用 D3D10_USAGE_STAGING 创建两个空纹理。
  2. 创建两个资源着色器视图以绑定到像素着色器,因为着色器需要它。
  3. 通过调用 CopyResource 将纹理复制到 GPU 内存。

现在的问题是我只能看到第一个纹理,但看不到第二个。在我看来,绑定不适用于第二个纹理。

我不知道它有什么问题。这里的任何人都可以告诉我吗?

谢谢,马歇尔

COverlayTexture 类负责创建纹理、创建资源视图、使用来自另一个应用程序的映射位图填充纹理并将资源视图绑定到像素着色器。

我使用 COverlayTexture 类的两个实例,每个实例分别将自己的位图填充到其纹理中,并使用序列 COverlayTexture[1] 然后 COverlayTexture[0] 进行渲染。

FX 文件中的混合状态设置定义如下:

FX 文件中的像素着色器定义如下:

再次感谢。

为保罗编辑:

非常感谢,保罗。问题是对象的哪个实例应该绑定到 alpha 纹理或漫反射纹理。作为测试,我将 COverlayTexture[0] 绑定到 alpha 并将 COverlayTexture[1] 绑定到漫反射纹理。

我为这两个资源视图调用了 PSSetShaderResources。

结果是我什么都看不到。我还尝试了通道 x,y,z,w。

0 投票
1 回答
2672 浏览

c++ - DirectX 10 中多重采样的操作顺序

我对 DirectX 10 中的抗锯齿需要完成的过程感到困惑。我以前根本没有做过,所以可能只是我对一般过程感到困惑。

这是我到目前为止所知道的(或认为我知道的):您需要为在着色器中使用的 RasterizerState 对象启用多重采样,并且交换链描述 (DXGI_SWAP_CHAIN_DESC) 中的 SampleDesc 需要设置为支持的值计数(并且质量应该保持为 0,因为其他值或特定于硬件 - 尽管我不知道为什么)。在准备更多绘图的调用(ClearRenderTargetView 和 IASetInputLayout)和对 Present 的调用之间,后缓冲区应该被下采样(通过 ResolveSubresource)到一个其他大小相等的纹理。然后,(这是我找不到任何东西的部分)以某种方式呈现下采样纹理。

一路上我是不是有什么事情搞砸了?还是我只是在最后一步弄错了?我看到一些资源指的是在最后一次绘制到具有多重采样着色器纹理(Texture2DMS<>)的全屏四边形期间执行采样分辨率,但无法弄清楚这会带来什么,或者你为什么要这样做设备调用只是以这种方式解决它。

我在这方面所做的任何尝试都不会提高图像质量。

0 投票
1 回答
4287 浏览

c++ - DXUT 配置

这实际上是 2 个问题,但都与 DXUT 有关。

  1. 如何在 Visual Studio 2010 中配置项目以使用 DXUT?我是否需要将所有头文件和源文件添加到我想使用 DXUT 的任何项目中?我可以将 ($DXSDK_DIR)\Samples\C++\DXUT\Core 添加到我的包含目录吗?

  2. 是否有一个 D3D10 相当于:

    DXUTSetCallbackD3D9DeviceReset( OnResetDevice ); DXUTSetCallbackD3D9DeviceLost(OnLostDevice);

如果不是,为什么?

当我尝试构建时:

这是我的 VS 设置:

当我在我的项目中包含 DXUT .cpp 文件并尝试构建时,我仍然收到链接器错误。

0 投票
1 回答
1467 浏览

c++ - 在 DirectX 10 中导入 .x 模型

我知道使用 DXUT,您可以使用 CDXUTSDKMesh::Create() 方法导入 .x 模型:

在不使用 DXUT 的情况下,是否有一种简单的方法可以导入 .x 模型?

我在网上没有找到太多关于此的信息,我想知道是否有人可以指出我正确的方向。

或者,如果没有简单的方法可以导入 x。DX10 中的模型,您推荐什么模型格式以及如何将其加载到 ID3DX10Mesh 中?

0 投票
1 回答
814 浏览

c++ - 创建 DirectX 10 设备和交换链的问题

我在使用 D3D10CreateDeviceAndSwapChain 创建有效的 DirectX 10 设备和交换链时遇到了一些问题。我认为可能是我的窗口创建出了问题,因为它说提供的 SwapChainDesc 中的 OutputWindow 未使用=??? (或随机的 int 值)

这个问题一直困扰着我,因为我似乎无法找出项目代码有什么问题

我知道它在 CDirect3D.cpp 的第 193 行失败

如果有人可以看一下代码,我将不胜感激。我已经在http://dl.dropbox.com/u/3605545/files/LearningEngine.zip上传了项目及其来源

(不是一个庞大的代码库,到目前为止只有 4 个类)

该项目在 VS2010 中,我从 2010 年 6 月开始使用 DirectX SDK

0 投票
2 回答
413 浏览

graphics - 如何在屏幕上绘制高度图?

我正在使用 DirectX10 模拟水面,我现在使用高度图,它是点 (x,z) 处高度 (y) 的二维数组。但是要把它画在屏幕上,我必须把它变成一个网格或者有一个索引来绘制三角形拓扑。

但是数据太大,无法手动完成。有什么方法可以让我在屏幕上绘制它。我希望它很容易实现。如果 DirectX10 中包含可以实现的功能,那对我来说是最好的。

0 投票
2 回答
1321 浏览

direct3d - 与 Direct3D 10 的最佳 2D 集成?

我有一个应用程序,到目前为止,它主要是 DirectX 10 3D 图形。现在我们想要生成一些实时 2D 图像以显示在屏幕的一部分上。2D 图形将使用来自外部硬件的原始数据生成 - 每个值都将转换为像素颜色和位置。

我已经查看了 Direct2D 集成选项,但我没有看到一种直接的方法来逐个像素地绘制到表面,而只是常见的线条和形状。

我相信仅使用 Direct3D(不使用 Direct2D)也可以做到这一点,并且每个像素都有一个简单的顶点并在正交视图中绘制它。

在生成实时 2D 图形时,使用 Direct2D 是否可以提高效率?我不想使用形状工具,所以这对我来说并不是一个真正的卖点。在 Direct3D 应用程序中生成 2D 图形是否有任何其他常见的做法会更好?

任何指针将不胜感激。谢谢你。

0 投票
2 回答
793 浏览

graphics - DirectX10 穹顶

我目前正在尝试在 DirectX10 中实现一个天穹,但我在尝试在线找到一个关于我如何去做的好教程时遇到了真正的问题。我什至浏览了在搜索功能中查找“DirectX10 skydomes”所获得的所有四页结果。

这里有没有人知道任何好的网站/书籍/教程等可以帮助我制作一个看起来像样的天穹?