Tag: directx 11

在directx 11中渲染h264video帧

我是DirectX新手。 我正在尝试编写一个自定义IP摄像机video播放器,我正在使用DirectX11以Wpf Gui作为我的前端渲染解码图像。 我是一个c#开发人员 ,并使用了托管的directx,不再由microsoft更新,因此转移到wpf和directx11。 我的应用程序的所有部分直到帧的渲染工作正常。 我已经设法创建了一个D3DImage源,它将在Wpf应用程序中使用,成功创建我的视口和我的设备,包括我的共享资源,因为D3DImage仅适用于Directx9。 我使用SharpDX作为DirectX API的包装器。 现在我的问题是我似乎无法找到一种方法来创建纹理/从解码的图像字节更新纹理,或者这样做的正确方法是从接收的字节渲染解码图像。 任何有关这方面的帮助都会很棒,或者有人可以指导我如何接近这个方向的正确方向? 谢谢。

DirectX:查看矩阵的世界 – 我的误解在哪里?

我开始使用DirectX(和SharpDX,因此仅在C#/ hlsl中编程)并且我正在尝试构建自己的相机类。 它应该是可旋转的,允许向前和向后移动以及“侧向”运动(经典的第一人称运动通常映射到A和D,在我的情况下加上和向下)。 为了更容易修复错误,模型和世界空间在我的情况下是相同的,透视投影尚未实现,旋转相机,我的相机应该在正Z轴(进入屏幕)。 我的错误修正模型是一个简单的四边形,宽度和高度为1.f,z = 0并且在屏幕上居中。 为了便于使用,我找到了DirectX的Matrix.LookAtLH()并使用它来构建我的矩阵,用于从世界到视图坐标的平移,基于我的相机在世界坐标中的位置,向上矢量(现在 – 没有旋转 – 总是正Y轴)和世界坐标中的目标点。 我的(顶点)着色器使用此矩阵的简单乘法: output.position = mul(position, worldToView); LookAt-Matrix计算如下: Matrix.LookAtLH(vec3(0, 0, -1), vec3(0, 0, 0.5f), vec3(0, 1, 0)) 得到这张图片: 现在我想将相机移到右边,在这种情况下,将1.f添加到它的X坐标。 我的预期结果与之前的四元组相同,向左移动了一点。 我构建了一个新的LootAt矩阵,通过相同的向量移动眼睛坐标和目标坐标: Matrix.LookAtLH(vec3(1, 0, -1), vec3(1, 0, 0.5f), vec3(0, 1, 0)) 结果如下: 我移动相机越多越好,但屏幕中心仍保持四边形的中心。 这与我对Matrix.LookAtLH潜在误解有关吗?

SharpFX 2.5在WPF中的DirectX11中

我正在尝试使用SharpDX 2.5将DirectX 11实现到WPF中。 可悲的是http://directx4wpf.codeplex.com/和http://sharpdxwpf.codeplex.com/与SharpDX 2.5无法正常工作。 我也无法将WPFHost DX10示例移植到DX11,并且此示例的完整代码包已关闭: http : //www.indiedev.de/wiki/DirectX_in_WPF_integrieren 有人可以提出另一种实施方式吗?

使用DeviceCreationFlags.Debug启动SharpDX / DirectX应用程序

我正在尝试使用DeviceCreationFlags.Debug启动我的directX / SharpDX应用程序但是我在启动时遇到以下崩溃: SharpDX.SharpDXException: HRESULT: [0x80004005], Module: [General], ApiCode: [E_FAIL/Unspecified error], Message: Unspecified error at SharpDX.Result.CheckError() at SharpDX.Direct3D11.Device.CreateDevice(Adapter adapter, DriverType driverType, DeviceCreationFlags flags, FeatureLevel[] featureLevels) at SharpDX.Direct3D11.Device..ctor(Adapter adapter, DeviceCreationFlags flags, FeatureLevel[] featureLevels) at SharpDX.Toolkit.Graphics.GraphicsDevice..ctor(GraphicsAdapter adapter, DeviceCreationFlags flags, FeatureLevel[] featureLevels) at SharpDX.Toolkit.GamePlatform.CreateDevice(GraphicsDeviceInformation deviceInformation) at SharpDX.Toolkit.GraphicsDeviceManager.CreateDevice(GraphicsDeviceInformation newInfo) at SharpDX.Toolkit.GraphicsDeviceManager.ChangeOrCreateDevice(Boolean forceCreate) at SharpDX.Toolkit.GraphicsDeviceManager.SharpDX.Toolkit.IGraphicsDeviceManager.CreateDevice() at SharpDX.Toolkit.Game.InitializeBeforeRun() at SharpDX.Toolkit.GameWindowDesktop.Run() at […]

在C#中使用DirectX11和SlimDX的Nvidia 3Dvideo

美好的一天,我正在尝试使用nvidia 3DVision和两个IP摄像头显示实时立体video。 我对DirectX完全不熟悉,但已尝试在此网站和其他网站上完成一些教程和其他问题。 现在,我正在为左眼和右眼显示两个静态位图。 一旦我的程序部分工作,这些将被我的相机中的位图取代。 这个问题NV_STEREO_IMAGE_SIGNATURE和DirectX 10/11(nVidia 3D Vision)给了我很多帮助,但我仍然在努力让我的程序正常工作。 我发现我的快门眼镜开始正常工作,但只显示右眼图像,而左眼仍为空白(鼠标光标除外)。 这是我生成立体图像的代码: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Drawing; using System.Drawing.Imaging; using System.IO; using SlimDX; using SlimDX.Direct3D11; using SlimDX.Windows; using SlimDX.DXGI; using Device = SlimDX.Direct3D11.Device; // Make sure we use DX11 using Resource = SlimDX.Direct3D11.Resource; namespace SlimDxTest2 { static class Program { private […]

检查安装了哪个版本的DirectX

根据标题,我如何检查用户安装的DirectX版本? 检查FeatureLevel是不够的,因为我的应用程序可以在function级别10.0上运行,但需要安装DirectX 11.1。 为什么这不重复: 如何在C#中在我的机器上获得直接X版本的代码? 这个问题的第一个答案是“如果Windows 7,DirectX = 11,如果Windows Vista,DirectX = 10”。 这是错误的,因为Vista支持DirectX 10和11,Windows 7支持DirectX 11和11.1。 第二个答案引用了一个仅适用于DirectX 9及更低版本的注册表项。 即使在安装了DirectX 11.1的Windows 7系统上,此注册表项也不会指示安装的版本大于9.0c .NET如何检测是否支持DirectX 10? 这个问题的答案再次引用了DirectX 9和更低版本的相同注册表项。 我需要一个适用于DirectX 10安装及以上的答案。 这意味着确定他们的版本是10,10.1,11或11.1。