SlimDX(DirectX10)-如何更改纹理中的纹理?

我尝试更改已加载纹理的纹理 我的假设是使用Texture2D::Map和UnMap函数,但当我更改给定DataRectangle的数据时,没有任何更改 我需要一个简单的例子,比如,创建一个128x128的纹理,每个边都有从黑到白的渐变 Thx PS:Direct3D 10 C++示例也有帮助,SlimDX只是一个包装器,几乎完成了相同的功能。 < P>这是我的D3D10二维纹理加载器< /P> bool D3D10Texture::Init( GFXHandler* pHandler, unsi

以编程方式创建directx 11纹理,三种不同方法的优缺点

说明了在directx 11中,有多种方式以编程方式填充directx 11纹理: (1) 使用默认使用纹理创建纹理,并使用内存中的数据对其进行初始化 (2) 使用动态用法创建纹理,使用DeviceContext Map获取指向纹理内存的指针,写入它,然后使用Unmap指示您已完成(此时我猜它已复制到gpu) (3) 使用暂存用法创建纹理,并遵循与“动态纹理”相同的步骤,但随后调用ID3D11DeviceContext.CopyResource以使用此暂存纹理依次填充(不可变)默认纹理或动态纹理

我可以使用DirectX 11开发应用程序吗

我想知道我们是否可以使用DirectX 11开发C#,WPF应用程序。我有一个使用DirectX编写的应用程序(中等大小)。我们需要使用Directx 11的功能,比如并行渲染。是否可以使用DirectX 11开发应用程序?如果是的话,谁能给我提供一些这方面的申请样本?我们不能选择像SlimDX这样的其他选项,因为我们无法重写整个代码 请告诉我最好的选择是什么?我自己还没有尝试过将C#与DirectX一起使用,但从我所读到的内容来看,您对DirectX和C#的主要选择要么是SlimDX(您不考虑

Directx 编写非常简单的HLSL像素着色器时出错

我正在编写我的SlimDX应用程序来测试人类视觉系统的颜色对比敏感度阈值。主题呈现一个与背景对比度较低的大号字母,并要求识别该字母。但是,我需要能够显示更多的颜色,然后是一个简单的8位每通道颜色深度。(即rgb值为0-255)。我计划通过一个简单的“抖动”算法实现HLSL像素着色器。基本上,如果请求slimDX以颜色4(0.55f,0.55f,0.55f)渲染文本到一个表面,该颜色对应于rgb值(140.25,140.25,140.25),我希望每个像素的每个颜色通道有25%的几率设置为141,

结合sdl和directx缓冲区

我可以在SDL窗口上渲染DirectX和SDL内容,但当渲染DirectX内容时,它会隐藏SDL的内容,当渲染SDL内容时,它会隐藏DirectX的内容。这是因为DirectX和SDL缓冲区不同 有没有办法将这两个内容存储在一个缓冲区(DirectX或SDL)中?或者有没有办法处理 您可能需要将DirectX内容渲染到纹理,将像素复制到SDL纹理,然后使用该纹理执行SDL渲染 可以帮助将DirectX渲染到纹理,并且可以对SDL端使用SDL\u曲面对象(请参见SDL\u CreateRGBSur

时间到了,Windows时间限制应用程序能否将游戏从全屏(DirectX?)模式中挤出?

我的工作是使用C++/MFC跟踪时间的软件,当时间临近时发出几次警告后时间就到了,我们需要把这个人从计算机上赶走 与Windows应用程序配合使用非常好,但是,似乎有相当数量的游戏(通常是在全屏模式下)可以玩,即使我们已经完成隐藏其他窗口和/或切换到其他桌面的工作 我对DirectX一无所知,既然我对它一无所知,我很想责怪它- 我的假设是,在某种DirectX模式下,游戏与硬件进行交互,无论Windows API在做什么,游戏和视频硬件都不会在意 问题是,我有一些不开心的父母,他们认为我们的软件

DirectX 11透明混合缺少每隔一个纹理

我正在尝试在directX 11中渲染透明像素,但我不确定是应该创建着色器,还是混合状态会自动执行此操作。 早些时候,我认为这是自动完成的,但我的透明纹理渲染为一种纯色,忽略了每一个纹理。 原始纹理为(7,7,7,139),渲染颜色为(38,47,56,255) 像素着色器 float4 TexturePixelShader(PixelInputType input) : SV_TARGET { float4 textureColor; textureColor = shaderTextur

Directx 高斯模糊效应

我试图通过后处理实现高斯模糊。我有两个渲染过程;第一遍渲染场景,第二遍用于效果 这是我的像素着色器代码: const float offset[] = { 0.0, 1.0, 2.0, 3.0, 4.0 }; const float weight[] = { 0.2270270270, 0.1945945946, 0.1216216216, 0.0540540541, 0.0162162162 }; ppColour = Scene

Directx 直接模式下的捕获帧(Nvidia)

我需要将以直接模式运行的应用程序中的帧捕获到D3D11Texture2D中。我通常通过挂接Present()或Present1()来实现这一点,但现在一些应用程序(如SteamVR游戏、OVR游戏等)在()中输出帧 有人有什么想法吗?为了解决这个问题,我进入了图形管道的输出合并阶段。我发现我所需要的只是渲染目标。多个渲染目标可以实现多缓冲。也许您应该挂接DX12设备。是的,我尝试过,但没有Present1()调用,也根本无法访问swapchain。直接模式提供了处理驱动程序级输出的接口,我不知道

Directx 使用动态格式创建二维纹理时出错

我是directx的新手。 我在处理资源方面遇到了麻烦 deviceContext->Unmap(readTex, 0); 首先,我创建了可以在GPU中读/写的纹理,效果很好。 现在,正如您可以检查我的代码一样,我也想在CPU中读取这个纹理(从应用程序端读取),所以我将用法从usage\u DEFAULT编辑为usage\u DYNAMIC Microsoft::WRL::ComPtr<ID3D11Texture2D> outputTexture; D3D11_TEXTUR

Directx 直接在屏幕/客户端坐标上绘制纹理

如果有必要的话,我使用正交投影,我可以使用世界坐标在世界上绘制纹理。对于HUD对象,它一开始工作得很好,但一旦我有了相机,它就会移动,我的所有HUD纹理都会随着世界移动,因此迟早会离开相机的视野 为了在HUD上绘制,必须使用客户坐标(左上角或中心为(0,0))绘制它们。你知道怎么做吗?我对这一点很陌生,所以我希望能得到更详细的帮助 谢谢 如果你设置了一个身份视图和投影矩阵,那么所有坐标都将直接传递到屏幕上。后投影和w除法-1,-1为左下角,1,1为右上角,0,0为中心 现在,如果您希望能够传入屏

Directx 如何在桌面应用程序中启动Windows 8屏幕键盘

我有一个全屏DirectX桌面应用程序,希望在用户点击游戏中的文本框时显示屏幕键盘。是否有办法在全屏模式下执行此操作?如果是桌面应用程序,您可能需要为osk.exe调用ShellExecute 如果是Metro应用程序,则无法从应用程序本身调用SIP。根据: 这意味着应用程序无法以编程方式调用touch 键盘通过操纵焦点。过去这里的罪魁祸首 许多网页都在默认情况下设置了焦点 执行osk.exe将弹出更老式的屏幕键盘。 执行以下操作将弹出Windows 8触摸键盘 C:\Program Files

Directx 警告X3557:循环仅执行0次迭代,强制循环展开

编译器产生一个警告X3557:循环只执行0次迭代,迫使循环展开,我不明白为什么 这是源代码。这是一个重新访问的itoa函数,用于HLSL在uint数组中生成结果ascii码 #define ITOA_BUFFER_SIZE 16 // Convert uint to ascii and return number of characters uint UIntToAscii( in uint Num, // Number to convert

Directx AquireNextFrame()失败,出现不同错误

我有一些循环捕获当前桌面的工作代码,并使用/ 除了在一台机器上(不幸的是,我没有物理访问权限进行详细的调试,但只能从用户那里获取报告),这一切都很好。在这台计算机上,当我以500的超时值调用AcquireNextFrame()时,它会反复失败,错误代码为0x887A0027/DXGI\u error\u WAIT\u timeout。要明确这一点:调用不会只失败几次,它会一直失败,因此AcquireNextFrame()永远不会返回结果,不管返回结果的频率有多高 当我将超时值增加到850时,它将

编译的directx9着色器文件的格式?

fxc.exe生成的已编译像素和顶点着色器对象文件的格式是否有正式或非正式的文档记录 我希望能够从着色器文件中读取常量名称以注册指定。我知道D3DX中的特效框架可以做到这一点,但我需要避免使用D3DX,因为它可能没有安装在用户的机器上,而且我不需要它做任何其他事情,所以我希望避免他们不得不运行directx更新 如果特效框架能做到这一点,那么我也能做到,如果我能找到文件格式,但我似乎在任何地方都能找到文档 (这是在directx9中使用的)Microsoft故意将此信息远离您。当您使用Direc

Directx HLSL中Tex2D背后的数学

有人能解释一下HLSL中Tex2D函数背后的数学原理吗 其中一个示例是:给定一个具有4个顶点的四边形,其上的纹理坐标为(0,0)(0,1)(1,0)(1,1),纹理的宽度和高度分别为640和480。着色器如何确定要执行的采样次数?如果要将texel直接映射到像素,是否意味着着色器需要执行640*480次采样,并且纹理坐标以某种梯度增加?另外,如果您能提供更多关于这个主题的参考资料和文章,我将不胜感激 谢谢。在顶点着色器之后,光栅化器将三角形“转换”为像素。每个像素与屏幕位置相关联,三角形的顶点属

Directx 如何查询Direct3D9的视频内存总量?

很抱歉,如果这是一个明显的问题,但我只是在网上找不到任何东西 在Direct3D9中,如何获取特定显示设备的视频内存总量?我正在寻找运行dxdiag并在那里查找的编程等效程序。(我不关心可用内存;只关心视频卡有多少MB。) 了解用户视频卡的内存大小将是崩溃报告中的有用信息。在Windows Vista、Windows 7、Windows 8.x和Windows 10上,使用DXGI。详细信息在DXGI\u ADAPTER\u DESC结构中:专用视频内存,专用系统内存,共享系统内存 如果您的目标

Directx HLSL-顶点着色器的输出位置0如何影响像素着色器的纹理贴图uv?

似乎POSITION/POSITION0将输出结构中的所有内容都分隔开了。这样使得像素着色器可以进行正确的透视贴图。并且它不能被删除,否则像素着色器将不会输出任何内容 我在程序代码中没有看到任何配置。它是所有设备的固定默认设置吗?或者我可以自定义此设置吗?您可以选择在任何插值器上禁用hlsl中的透视校正 您需要的修改器不是透视的

Directx 为什么DX12使用像ID3D12XXX、ID3D12XXX1、ID3D12XXXN这样的错误命名?

我觉得这些命名惯例很糟糕,因为它们不能告诉你彼此之间的区别,让人们很难记住哪个是正确的 PS:相关页面在不讨论我们喜欢什么命名约定的情况下,我将尝试解释设计选择背后的原因 此数字是结构/函数的版本,它在添加新功能时在API中出现的顺序,因此更容易跟踪函数附带的API版本 在一个完美的世界中,它们只有一个函数/结构,因为这些XXXN函数只是前一个函数的扩展,但考虑到渲染技术的不断发展,这是不可能的 不过,正如您在Vulkan中看到的,还有其他方法,通过VkStructureTypeenum在运行时

Directx DXVA-HD不可用时Windows上的视频渲染

让我先说一句,我不是Windows各种视频API的专家,这也是我问这个问题的部分原因 我们的应用程序使用DXVA-HD API在.NET 4.6 WPF应用程序的表面上输出视频。它可以在英特尔和nVidia设备上运行,但我们发现AMD图形设备不支持DXVA-HD,我们的应用程序只是显示一个空白表面。(我们已经在HD4550、HD8970M、270X、Radeon VII、5700XT上进行了测试) 如果DXVA-HD不受支持,推荐的显示加速视频的方式是什么(在windows 10上,我们已经停止

Directx 找到有关警告的更多详细信息的任何方法:ID3D10Buffer::SetPrivateData:已找到同名但大小不同的现有私有数据!

在调试模式下运行DirectX10程序时遇到此错误: D3D10:警告:ID3D10Buffer::SetPrivateData:找到同名但大小不同的现有私有数据![状态设置警告#55:SETPRIVATEDATA_CHANGINGPARAMS] 我试图将该项目作为一个学习练习,使其高度面向对象,因此有可能发生这种情况,但有没有办法获得更多细节?您正在寻找或感兴趣的其他数据 警告非常清楚正在发生的事情,但是如果您想查找更多的数据,可能有一些事情需要尝试 请尝试使用相同的名称调用ID3D10Buf

使用HDC初始化directX

有人知道如何使用hdc初始化directX吗?问题是我想在窗口内的组件中绘制我的东西,这些东西通常只有HDC,但DX获取分配给窗口的HWND。HDC表示渲染设备,而HWND表示窗口 您可以获得表示窗口渲染目标的HDC(完成后不要忘记ReleaseDCit) 希望对您有所帮助?HDC表示您的渲染设备,而HWND表示您的窗口 您可以获得表示窗口渲染目标的HDC(完成后不要忘记ReleaseDCit) 希望对您有所帮助?您可以使用宽度为0、高度为0的CreateWindow创建一个不可见窗口,并使用该

DirectX 11:同时使用多个适配器

我们需要从一台pc上驱动8到12台显示器,所有显示器都呈现单个3d场景图的不同视图,因此必须使用多个图形卡。我们目前运行的是dx9,所以我们希望迁移到dx11,希望能让这更容易 最初的调查似乎表明,显而易见的方法是行不通的——除非我们从一个单独的过程中驱动每张卡,否则性能很差。网络搜索一无所获。有谁能建议使用dx11从单个进程同时使用多张卡的最佳方法吗?使用IDXGIFactory枚举可用的设备,为每个设备创建一个ID3D11设备,然后从不同的线程馈送它们。应该可以正常工作。也许您不需要升级Di

Directx 从ID2D1BitmapBrush检索IDXGISurface

我的应用程序使用2个DXGISurfaceRenderTargets 第一个渲染目标用于创建ID2D1Bitmap,然后从中创建ID2D1BitmapBrush 生成的ID2D1BitmapBrush用于在第二个渲染目标上填充几何体 是否可以从ID2D1BitmapBrush或ID2D1BITMAPH检索用于创建ID2D1BitmapBrush的IDXGISurface Windows 8有ID2D1Bitmap1withGetSurface方法,但我需要在Windows 7上使用该方法 谢谢。

使用DXUT的DirectX示例无法创建Direct3D设备(仅限调试)

这里有一个非常奇怪的问题,我正在尝试从DirectX示例浏览器运行DXUT DirectX 10/11教程。它们构建良好,但无法在调试模式下运行,因为这会触发错误警告“无法创建Direct3D设备”。这很奇怪,因为我可以在发布模式下运行它们。然而,最奇怪的是,它们通常在调试模式下运行,我发誓在它运行的那一天,我什么也没改变,第二天它也没改变。一个朋友也有同样的问题,发生在同一时间 有没有人遇到过这个问题并知道解决方案,或者可能知道为什么会发生这种情况?很明显,如果您没有注意到,我有一张支持Dir

Directx9复位装置

我在状态丢失后重置设备时遇到问题。我可以重置Direct3D设备,但是当我在ID3DXFont上调用OnLostDevice函数时,我得到一个错误 First-chance exception at 0x00e6ec05 in Turbo3D.exe: 0xC0000005: Access violation reading location 0xcccccccc. Unhandled exception at 0x76ee15de in Turbo3D.exe: 0xC0000005: Acc

Directx DX11中的多文本处理是如何工作的?

我有一系列的着色器,我通过合并一系列片段通过编程生成。每个片段都可以有自己的纹理,它负责上传/绑定适当的值 我在Google上找到的所有解决方案要么使用纹理数组,要么指定寄存器(例如)。这篇文章写得不好。在GL中,这很容易,因为您可以按名称查找纹理 有更好的办法吗?或者我必须记录每个片段通过寄存器处理它们时使用的纹理数量吗?在OpenGL中,您使用着色器程序内省 DirectX还具有以下功能: 在D3DCompiler_xx.dll中定义 还有Effects framework(,),它

像素着色器可以访问结构化缓冲区,而顶点着色器可以';这是DirectX规范吗?

============================编辑:解决方案===================== 我终于发现了这个问题,因为答案对于学习DirectX的初学者来说可能很重要,所以我把它贴在这里。(我使用F#和SharpDX作为DirectX的.NET包装器) 在我的程序中,资源(缓冲区、视图等)只有在交换链调整大小时才会改变。因此,我将所有资源分配(IA、OM、VS、PS)放入一个函数switchTo2DLayoutswitchTo2DLayout立即返回(不做任何操作)。这是由

Directx 自定义视频文件我将提取多少图像?

很多人都会建议,为什么不使用Bink或DirectShow来播放视频甚至ffmpeg呢。然而,电影到底是什么?只是把图像和声音放在一起 我已经创建了一个程序,在这个程序中,我获取了一组图像,并将它们放入自定义视频文件中。最酷的是,我可以很容易地把它放在一个四线组上。我遇到的问题是,我只能从自定义视频文件中提取一幅图像。当我有不止一个;我有问题,我完全理解 我有一个索引查找表的所有图像大小,然后原始图像。我的计算如下: offset = NumberOfImages + 1 * sizeof(l

Directx HLSL不是';t插值?

我有一个非常简单的VS和PS,应该在屏幕上画一个屏幕大小的四元体。但是,我的基于纹理坐标的着色测试显示整个矩形(屏幕)上的纯色,而不是沿x和y方向的插值淡色。以下是我的着色器代码: struct FRAGMENT {float4 position:SV_POSITION; float3 tex_coord:TEXCOORD0;}; FRAGMENT vs_main(uint vertex_id : SV_VertexID) { FRAGMENT OUT; OUT.tex_coo

Directx 识别深度测试中检查的多边形(DX11)

我是图形编程领域相当极端的新手,所以如果这个问题有一个明显的答案,请原谅我,但我还没有找到答案 在DirectX 11中执行深度测试时,如何确定在任何给定时间测试的三角形?我试图手动告诉深度测试失败,除非通过特定多边形查看特定多边形,即,您只能通过一个曲面看到一组几何体,并且只能通过另一个曲面看到另一组几何体 我想真正的问题是,当测试像素时,系统如何引用该像素位置、颜色等的数据。?是不是有什么东西我完全忽略了 就目前而言,我对更大问题的替代解决方案不感兴趣,只对这个特定问题的答案感兴趣。谢谢你的

Directx 是否可以共享DXVA曲面?

我用的是DXVA视频解码器。它工作正常,但我想与另一个IDirect3D9设备对象共享解压缩的曲面 我阅读了文档,调用方法来创建曲面,并尝试传递一个非NULL的句柄*,该句柄指向NULL作为该方法的最后一个参数。但该方法失败,结果为0x8876086c(D3DERR\u INVALIDCALL)。我还尝试分配一个句柄数组,并将每个元素设置为NULL,然后将该数组作为参数传递,但仍然得到相同的错误 有没有办法在IDirect3D9设备之间共享DXVA曲面?阅读文档: 资源创建API包括-Creat

Directx 像素着色器仅处理从顶点着色器传递的部分数据

我使用DirectX11绘制场景。但我只有黑色的形状。然后,我使用MicrosoftVisualStudio的图形调试器查看数据过程。所有恒定缓冲区、输入缓冲区数据均已纠正,并从主存传输至GPU内存。但在像素着色器中,调试器仅处理环境光。另一个灯光和NoramlW、Eyeposition向量显示为“不在范围内”或“未使用”。指令指针跳过所有这些“不在范围内”变量程序行。结果是几乎没有环境光颜色(0.1+f),因此基本为黑色。当我将初始环境光增加到1.0f时,形状会有一些颜色。但是,整个像素着色器

Directx 在d3d11的情况下,我应该使用什么来代替d3d9中的SetTexture?

我有多个纹理,我必须在d3d11中将它们分阶段使用。SetTexture用于d3d9,但在d3d11中我应该使用什么?您现在必须将资源绑定到特定的管道阶段,而不是绑定到采样器。使用设备上下文的SetShaderResources方法。例如,ID3D11DeviceContext::PSSetShaderResources()将其绑定到像素着色器阶段 要将纹理绑定到管道,您必须创建纹理并将其传递给上述方法。您应该参考本教程了解D3D 11中的纹理:从API设计角度来看,Direct3D 11基本上

Directx 设备花费了不合理的时间来执行其命令

我正在将C代码移植到HLSL(计算着色器)。 编译器疯狂地使用其中一个for循环。在运行时,显示设备驱动程序检测到执行代码的时间不合理 以下是部分源代码,其中包含有问题的for循环: P = FloatToAsciiNoExponent(F * Factor, DstBuf, 7); uint TmpBuf[FTOA_BUFFER_SIZE]; uint BytesWritten = IntToAscii(Exp10, TmpBuf, BASE10); DstBuf[P++] = 'E'; [f

运动模糊方向识别DirectX

我正在纹理中存储速度信息。由于纹理的颜色值只能在{0,1}范围内,我应该如何确定速度的方向? 一种解决方案是创建另一个纹理,该纹理仅存储速度的方向信息,但成本非常高。 有什么想法吗?你有4个频道。。r、 g,b和a。。。使用每个通道表示x、y和z的方向。有点像普通地图。对于alpha通道,可以使用样式格式进行编码。实际上,将归一化向量存储在R、G和B通道中,然后将指数存储在a/E通道中 编辑:此外,使用类似球形环境贴图的东西,可以将方向向量编码为x和y索引,从而保存通道

Directx 如何使用着色器常量缓冲区?

我正在努力理解DirectX中的常量缓冲区。我见过两种语法 float4 myVar; 在着色器文件的顶层声明,并 cbuffer myBuffer { float4 myVar; } 详细说明 我知道常量缓冲区需要分配给插槽(基于零的索引),并且可以在代码中设置 我所看到的两个框架(SlimDX和SharpDX)似乎使用了不同的约定来设置它们——SlimDX通过字符串名称(通过着色器反射?)和SharpDX通过插槽编号——尽管不清楚插槽编号从何处获得 有人能解释这两种语法之间的区别

Directx HLSL错误X4507:超出了最大常量寄存器索引

我有一个带有cbuffer的顶点着色器,其中包含以下成员: float4 myArray[16]; 在着色器的主体中,我可以使用变量索引读取和使用数组值: float4 anElement = myArray[(int)(input.Color.g * 255)]; 这很好。但是,如果我声明数组包含256个元素: float4 myArray[256]; 然后编译器失败,出现以下错误: 错误X4507:最大vs_4_0_级别_9_1常量寄存器索引(256) 已超出-请尝试减少编译引用的常量

DirectX如何克隆多维数据集?

我对立方体的定义如下: void cube(void){ struct CUSTOMVERTEX vertices[] = { { D3DXVECTOR3(-0.5000f, -0.5000f, 0.5000f), //pos of first vertex D3DXVECTOR3( 0.0000f, 0.0000f, 1.0000f), //normal of first vertex D3DXCOLOR ( 1.0f, 0.0f

Directx 关于着色器的错误

我试图研究directx3D,但我对D3DXCompileShaderFromFile有一个问题。这是我代码的一部分 ID3DXBuffer* pShader; ID3DXBuffer* error_buffer; HRESULT hr =D3DXCompileShaderFromFile(L"Transform.txt", NULL, NULL, "vs_main", "vs_3_1", D3DXSHADER_DEBUG, &pShader, &error_buf

如何在directx中制作旋转立方体?

我正在学习directx编程。昨天我成功地做了一个立方体。 我想做一个旋转的立方体。事实上,我成功了,但我不确定我用的是正确的方法 下面的代码是常用的方式吗?我调用了一个函数来转换顶点位置,并在每一帧上创建新的顶点缓冲区。有没有其他方法不在每个帧上创建顶点缓冲区?有没有更有效的方法来证明绩效 void BoxApp::makeVertex() { Vertex vertices[] = { { XMFLOAT3(-1.0f, -1.0f, -1.0f), (con

Directx 这个代码有什么问题

我正在编写DirectX。我为directx 11做了一个新的项目,虽然我的代码书是为directx 6.0编写的,是如何编写一个实时战略游戏,并且是在1999年编写的。我有一些错误,这是我的代码和错误 你能告诉我这个代码有什么问题吗 //*********************************8************************************************************************************************

为什么mstsc在浏览器中使用directX视频时崩溃:TOR、Chrome等

在Windows10上使用RDP。在任何浏览器中渲染directX视频时RDP崩溃 例外情况: 故障应用程序名称:mstsc.exe,版本:10.0.15063.0,时间戳:0x57950623 故障模块名称:d3d11.dll,版本:10.0.15063.0,时间戳:0x6a789089 异常代码:0xc0000005 故障偏移量:0x00000000000d52df 出错进程id:0x2654 故障应用程序启动时间:0x01d3686b519f9468 出现故障的应用程序路径:C:\WIND

无法在directx9中渲染方形

由于某种原因,无法渲染正方形。我找了一个小时,但找不到答案。 有人知道怎么画吗?我使用的是directx9。 尝试使用DrawindExperiive,但结果相同。这里可能发生了一些事情: 您没有设置顶点或像素着色器,因此使用的是传统的固定函数“渲染管道”。此管道要求您使用SetTransform设置视图/投影矩阵。因为您还没有这样做,所以您在“屏幕空间”中提供的顶点位置并不是您认为它们的意思。看 您没有设置viaSetRenderState,因此它默认为D3DCULL\u CCW(即剔除逆时

Directx 用于生成PC硬件报告的良好Windows工具

我以前使用过dxdiag,但我更愿意让潜在用户使用一些更简单的工具,他们可以直接运行并通过电子邮件向我发送输出 除了CPU、RAM、图形、DirectX版本和Windows版本等显而易见的东西外,我还需要知道ExpressCard(笔记本电脑标准)是否受支持 我知道这不是一个编程问题,但在我们部署软件之前,建立一种方法告诉用户他们的硬件是否支持我们的软件是至关重要的。系统信息工具(msinfo 32)。是操作系统的标准配置;还支持一系列功能,允许您实现自动化 特别是,您可以告诉用户只需运行以下命

Directx HLSL像素着色器颜色示例

我是hlsl的新手。我正在尝试编写一个像素着色器,将RGB空间转换为YIQ空间(NTSC)。转换过程很好,但我似乎无法让采样器和tex2D返回纹理左上角以外的任何颜色。我知道这一定是个愚蠢的错误,但谷歌搜索让我更加困惑 我曾尝试声明一个纹理并将其链接到带有sampler_状态的sampler2D,但这似乎没有改变任何东西。我正在使用,它运行DirectX 9和Pixel Shader 3.0。我有一个带有图像纹理的简单平面对象。我只想在经过着色器之后能够看到未被触动的纹理,这样我就可以尝试转换步

学习DirectX技术的最佳来源是什么

我是一名计算机工程师。我想学习DirectX。我的问题是什么是从头开始学习DirectX的好来源或书籍。学习DirectX的先决条件是什么?熟练掌握组件对象模型是学习DirectX所必需的。 -谢谢。首先下载DirectX SDK并播放示例,阅读。。。。一直阅读MSDN文档,因为我总是能找到一些有用的小技巧 下载Nvida样本并查看AMD的 读芬克斯·卢娜的书,你可以找到它们 但最重要的是,开始玩一些代码,把脚弄湿,然后跳进去。 我从XNA来,没有编程经验,花了2年时间才真正掌握DirectX

  1    2   3   4   5   6  ... 下一页 最后一页 共 24 页