问题标签 [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 投票
0 回答
212 浏览

directx - DirectX 10 原点灯亮?

我正在使用 Frank Luna 的书来学习 DirectX 10,但我对我得到的一些照明有点困惑。我有几个对象,一个定向光和一个可以在场景中移动的点光源。我的问题是,当我移动点光源时,光会移动,但距离原点越远,它就会越暗。在原点时,它具有强烈的白光。为什么会这样,我怎样才能让它正常工作?谢谢。

这是点光源的代码:

效果文件:

光定义:

0 投票
0 回答
288 浏览

visual-c++ - DirectX 10 着色器通道描述符损坏

大家下午好。

我有一个奇怪的问题,我似乎无法弄清楚。

在以下代码段中

Direct X 调试输出提供以下信息:

一些我不确定的事情。在最后一行中,我看到了 D3D11 CORRUPTION,但我只使用了 D3D10 头文件和库。我在 Visual Studio 2012 中工作,并且安装了 Windows 8 SDK,因此可能会导致问题。

我不知道如何进行,任何建议将不胜感激。

0 投票
1 回答
811 浏览

rendering - DirectX10 中的多通道前向渲染器

我正在使用 DirectX 10 实现正向渲染器。我希望它能够处理无限量的灯光,以便稍后将其性能与延迟渲染器进行比较。所以基本上我使用的算法是:对于每个对象,对于每个灯光 -> 设置灯光,绘制对象。使用加法混合,我为每个灯光渲染对象,并将每个灯光对它的贡献相加。一切都使用加法混合和禁用深度写入。我遇到的问题是,使用这种简单的方法,不同的对象被混合在一起(因为深度写入被禁用),而我只想要一个对象与它上面的不同光贡献混合,但仍然掩盖它后面的其他对象. 我怎样才能做到这一点?Z pre-pass 是解决方案吗?任何建议将不胜感激。谢谢。

这是我在 HLSL 着色器中使用的混合和深度/模板状态:

0 投票
1 回答
72 浏览

2d - 渲染一个不可见的遮挡物

我目前正在从 DirectDraw 系统(是的,我知道,它很旧)升级到 DirectX10。这是一个 2D 系统,但模拟现实世界,因为每个对象都有一个以米为单位的范围/深度。有一个背景图像被渲染并保持在最远的 z 顺序上。所有其他对象都绘制在它上面,并根据它们的范围/深度进行缩放。但是,我拥有某种类型的对象,它被定义为多边形并呈现出一些不同。它充当隐形的遮挡物。例如,遮挡物的范围/深度为 40(我的单位是米),并由视口中间的 5 个顶点(一个五边形)定义。在同一视口位置有一个精灵对象,但范围/深度为 50。所需的输出是不渲染精灵对象,但应该通过他们两个看到背景。所以本质上这些是不可见的遮挡物,除了它们不遮挡背景。

需要注意的是,遮挡物和精灵都派生自相同的基础对象类型,并在深度排序的容器中混合在一起。

我的想法是重写 occluders Render 方法,以便它们绘制到写入范围/深度值的渲染目标。然后我会正常渲染精灵,但在顶点或像素着色器中会将精灵的范围值与渲染目标中的范围值进行比较。但是,在我看来,在调用 Present 之前,我可能必须在同一通道中从渲染目标读取/写入,这是未定义的。如果我要渲染遮挡物,取消绑定渲染目标并将纹理传入以供其他对象查找,我将不得不将精灵位置转换为可能不重要的纹理空间。这些方法中的任何一种都可能吗?

又想了想,又想到了另外一个想法。我可以使用遮挡物并参考背景纹理设置它们的纹理坐标。通过这种方式,他们将绘制与背景相同的颜色值,并且由于在精灵后面的排序,用户仍然会看到“背景”,但实际上它是看起来像它的遮挡物。

抱歉,如果这不是一个问题,而是更多地大声思考,但我想就解决此问题的最佳方式获得印象和想法。在我看来,我有选择,但不确定哪个最有效,哪个最简单。提前感谢您的任何回复。

0 投票
1 回答
803 浏览

directx - 无法编译 nVidia HLSL 示例 - FXC 任务不支持 CommandLineTemplate

我正在尝试从 nVidia 网站编译一个示例来进行可靠的线框渲染:

http://developer.download.nvidia.com/SDK/10/direct3d/samples.html

在此处输入图像描述

当我在 Visual Studio 2012 中打开 VC++ 项目并进行编译时,我收到以下错误消息:

错误 5 错误 MSB4064:“FXC”任务不支持“CommandLineTemplate”参数。验证该参数是否存在于任务中,并且它是一个可设置的公共实例属性。

在此处输入图像描述

我是否缺少框架或 SDK?或者也许需要修改此示例以与 VS2012 一起使用?

非常感谢!

0 投票
1 回答
2519 浏览

directx-11 - 总是使用 D3D11_BIND_SHADER_RESOURCE 和 D3D11_BIND_RENDER_TARGET?

总是使用绑定标志 D3D11_BIND_SHADER_RESOURCE 和 D3D11_BIND_RENDER_TARGET 定义标准 directx 缓冲区是否存在性能副作用或任何其他副作用,但更专业的缓冲区(如索引、顶点、常量等)除外。

0 投票
0 回答
854 浏览

directx - 为什么我的像素没有被近/远平面裁剪

我有一个非常奇怪的问题。我使用 D3D10 在场景中渲染了一些三角形,令人惊讶的是,这些像素的颜色值并未针对近/远平面进行裁剪。另一方面,深度值似乎被裁剪得很好。正如我刚才所描述的那样有效的证据如下:

  • 当我在“内”视锥体的 z 范围内渲染对象时,一切都很好
  • 当一个物体在 z 范围内并且一个物体在它前面(在相机的眼睛和近平面之间)时,z 范围内的物体会“透过”更近的物体。所以 z-buffering 工作得很好
  • 我还检查了输出 VS 顶点值;所有在 z 范围之外并且应该被剪裁的顶点(它们在 z 缓冲区中但不在颜色缓冲区中)的 Z/W 值在 [0, 1] 区间之外

想法想法什么可能是错的?我认为这可能是一些渲染状态设置不正确,但我真的不知道在哪里看。

0 投票
1 回答
758 浏览

delphi - Firemonkey 中的 DirectX10 支持(非 10.1)

是否可以下降到 DX10 而不是 DX10.1 支持。我有一个客户的电脑只支持 DX10,所以他们不能利用 Direct2D,因为 FM 似乎只支持 10.1

我尝试修改源以使用 DX10(FMX.Canvas.D2D 和 FMX.Context.DX10),并再次切换到 DX10,但一个调用似乎失败了。

我修改了共享设备的创建方式

当我使用设备时,我使用下面这样的代码..

我在源代码中创建了一个开关,允许我在 10.1 和 10 设备之间切换,并修改了 FMX.Canvas.D2D 和 FMX.Context.DX10 中的所有代码以使用替代设备。

但...

CreateDxgiSurfaceRenderTarget 失败,错误代码为 -2147024809。

所以应用程序加载,但表单都是空白的,因为无法创建目标。

有哪位大师可以帮助解决这个问题吗?

0 投票
1 回答
746 浏览

visual-c++ - 错误 LNK2019 Directx10 VC++2010

我正在尝试了解 DirectX 2010,在设置库后我如何安装库:-VC++ 2010-查看-其他 windows-属性管理器

我打开了 Microsoft.Cpp.Win32.user VC++ 目录:- 包括目录:C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include Library Directories: C:\Program Files (x86)\Microsoft DirectX SDK (2010 年 6 月)\Lib\x64

这是我得到的错误列表:- 错误 1 ​​错误 LNK2019:未解析的外部符号 _D3DX10CreateEffectFromFileW@48 在函数“long __cdecl InitDevice(void)”(?InitDevice@@YAJXZ) c:\Users\ahmed_saad\documents\visual studio 2010 中引用\Projects\CodeName_Yarab\CodeName_Yarab\Main.obj CodeName_Yarab 错误 2 错误 LNK2019:未解析的外部符号 _D3D10CreateDeviceAndSwapChain@32 在函数“long __cdecl InitDevice(void)”(?InitDevice@@YAJXZ) c:\Users\ahmed_saad\documents\visual 中引用studio 2010\Projects\CodeName_Yarab\CodeName_Yarab\Main.obj CodeName_Yarab Error 3 error LNK1120: 2 unresolved externals c:\users\ahmed_saad\documents\visual studio 2010\Projects\CodeName_Yarab\Debug\CodeName_Yarab.exe 1 1 CodeName_Yarab

我正在使用 Windows 8 pro x64

0 投票
1 回答
1002 浏览

directx - 样本方法的复杂性 HLSL。O(1),O(n)?

大家好。我想知道是否有人知道 HLSL 纹理采样函数的复杂性,例如 tex2d 和 DX10/11 等效函数。如果纹理所在的像素阵列,它会以恒定的复杂性访问一个像素,但它使用 UV 来访问像素,所以我不知道函数的复杂性。有谁知道?