Directx HLSL中的渲染深度

大家好 这应该是一个简单的任务,但由于某些原因,我没有得到它的工作 我只想使用着色器对场景中的深度进行可视化: float4x4 matViewProjection; float4x4 matWorld; float4 eyePos; struct VS_OUTPUT { float4 position : POSITION0; float depth : TEXCOORD0; }; VS_OUTPUT vs_main( VS_INPUT input ) { VS_OUTPUT

如何显示大图像+;使用DirectX(或DirectShow?)覆盖

我有一个应用程序(硬件),可以非常快地生成大图像(例如2048x5000)(例如30 fps)。 因此,我想使用GPU来缩放和显示它们以及覆盖(例如文本注释) 最快的方法是什么 将图像复制到屏幕外 表面,将其拉伸到 backbuffer,重新绘制所有批注 创建纹理(平铺?)并将其映射到矩形上 DirectShow 其他选择 谢谢, 弗洛里安 备注:也应该在Windows XP中运行如果必须在Windows XP中运行,最好的选择是Direc3D 9,使用支持高达8192高度纹理的视频卡。否则

你能把DirectX游戏移植到谷歌原生客户端吗?

这是我第一次尝试本地客户端。我读了一篇文章,找到了关于OpenGLES2.0使用的3D图形的每个示例。我可以将Direct3D游戏移植到本机客户端,还是必须用OpenGL ES重写代码?您必须将D3D代码重写为OpenGL ES 2.0(或者引入一个运行时转换层,将DirectX调用转换为OpenGL ES) 本机客户端设计为可跨操作系统(当前为Windows、Linux、Mac OS和Chrome OS)移植,因此您不能使用特定于一个操作系统的任何东西。在本机客户端中,您可以将Pepper A

Directx 通过编程确定是否需要使用硬件光栅化器

我有一个DX11应用程序,我想添加对软件渲染的支持。这是因为在某些情况下,它将在没有GPU的机器上运行。从我所做的研究来看,我的最佳选择似乎是 将应用程序更改为使用WARP非常简单: hr = D3D11CreateDevice( NULL, D3D_DRIVER_TYPE_WARP, // was D3D_DRIVER_TYPE_HARDWARE NULL, creationFlag, featureLevels, ARRAYSIZE(feat

Directx Direct2D和自定义形状的窗口

Direct2D是否支持自定义形状的窗口?比如,在所有其他窗口上画一个圆圈。如果是的话,有人能提供一个链接到这类技术的文章或样本吗?谢谢 是的,是的 下面是一篇有示例的文章,不幸的是,它是用俄语写的,所以请使用在线翻译:

使用DirectX11像素着色器在GPU中从DXGI_格式_B8G8R8A8_UNORM到NV12的颜色转换

我正在编写一段代码,使用桌面复制捕获桌面,并使用Intel hardwareMFT将其编码为h264。编码器仅接受NV12格式作为输入。我有一个DXGI_格式的B8G8R8A8_UNORM-to-NV12转换器(),它工作正常,基于DirectX视频处理器 问题是,某些英特尔图形硬件上的视频处理器仅支持从DXGI_格式_B8G8R8A8_UNORM到YUY2的转换,而不支持NV12。我通过GetVideoProcessor OutputFormats枚举支持的格式来确认这一点。虽然视频处理器Bl

DirectX 11和DirectX 12之间的主要区别是什么?

我正在学习DirectX 12,对此我很好奇 谁来帮帮我 enter code here TL:DR:如果您是Direct3D新手,请先学习DirectX 11。对新手要宽容得多。一旦你掌握了DirectX 11,切换到DirectX 12应该会容易得多 DirectX 11和DirectX 12基本上控制着相同类型的硬件(尽管较新的功能仅在这一点上添加到DirectX 12,如DirectX光线跟踪和DirectX终极硬件功能级别),但它们有许多不同的API编程模型 简言之:DirectX

Directx 使用Direct3D绘制具有圆形端点的线

有没有办法用ID3DXLine画一条以圆结尾的线?我试图从线段的数量中绘制一条曲线,但得到线段连接的空白区域。 这里的表现至关重要 谢谢 使用D3D绘制粗曲线的任何其他快速方法?您最好使用圆形纹理(边缘具有抗锯齿),然后在线条的两端绘制一半纹理。然后,可以沿围绕线的矩形沿纹理中心渲染条带,然后在另一端使用纹理的另一半结束。这会给你带来你想要的效果,但它比简单地叫“DrawLine”或其他什么有点复杂

DirectX如何读取顶点?

所以我已经阅读了一些教程和资源,比如DirectX文档/参考资料本身,要么我遗漏了一些东西,要么我真的找不到问题的答案 问题如标题所述:DirectX如何将顶点读入顶点缓冲区 当然,我知道您必须提供一个或多个FVF代码。但它没有说明如何正确设置顶点结构。我唯一能想到的是,DirectX会检查线性“时间线”中的标志,因此,可能需要相同数据类型和顺序的标志也必须首先出现在结构中 作为我的意思的一个小例子: struct MyVertex { float x, y, z; float

Directx 模型渲染会打乱其他渲染

这是一个不切实际的问题,但仍然: 我创建了一个简单的地形图(带有地面纹理的矩形平面,我使用“DrawPrimitive()”渲染),它们工作得非常好。然后,我渲染了一个静态模型(没有帧层次),地形变得一团糟 渲染模型后,所有地形顶点将集中在模型的角部,即轴零点附近的某个位置 这个模型看起来不错,所以我认为没有问题 我假设渲染模型后需要清理一些东西,但我不知道是什么 我试图清除所有的转换(通过将我的世界矩阵设置为身份矩阵),但仍然是一团糟 有什么想法吗 提前感谢。尝试从DirectX SDK->U

Directx 无法在visual studio中加载Windows 8 SDK示例?

我正在尝试加载windows 8 sdk示例附带的directx示例。起初,VS2010告诉我解决方案是用较新版本的visual studio创建的,所以我安装了VS2012 Express。现在,当我尝试在VS2012中加载示例时,我得到了以下错误,它不会加载项目 我正在尝试加载凹凸贴图示例,但它发生在所有这些示例上,而这不是我从中加载它们的目录,我只是从项目文件夹或桌面加载它们。您没有说明正在使用哪个操作系统,但我怀疑问题在于您试图在Windows 7上安装的VS 2012上加载Windo

Directx Skybox处于透视视图中

我的天空盒在透视图中,我走得越近,它就越近。我还禁用了D3DRSzuWriteEnable Device->SetTransform(D3DTS_WORLD,GetTransform()); Device->SetRenderState( D3DRS_LIGHTING,FALSE); Device->SetRenderState(D3DRS_ZWRITEENABLE,FALSE); Device->SetSamplerState( 0, D3DSAMP_ADDRESSU

具有多个曲面/纹理的DirectX9 AlphaBlend

我正在写一个2D窗口框架(gui引擎)。每个控件(窗口、按钮、面板等)都涂在单独的表面上。绘制树中的所有控件后,这些曲面将合并在一起 例如(窗口包含面板和按钮3,面板包含按钮1和按钮2): 油漆窗 油漆板 油漆按钮1 将按钮1表面与面板表面合并 油漆按钮2 将按钮2表面与面板表面合并 油漆按钮3 将按钮3表面与面板表面合并 将面板曲面与窗曲面合并 我们的问题是合并曲面时正确的alpha混合计算。我们尝试了不同的配置,但alpha值对所有配置都表现得“奇怪”。最大的问题是alpha孔(

如何更改DirectX项目游戏';s显示模式从4:3到16:9?

如何将项目游戏的显示模式从4:3更改为16:9?您可以创建一个类并更改LoadContent方法以查看此组件的运行情况。您只需加载相关内容,创建HelpScene实例,并执行HelpScene对象的Show方法: public class HelpScene : GameScene { public HelpScene(Game game, Texture2D textureBack, Texture2D textureFront) : base(

Directx 输入布局重用/从着色器提取?

在DirectX 11中,输入布局需要获取着色器签名,但是我只对所有着色器使用一个输入,我希望重用它 是否可以在不传入着色器的情况下创建输入布局(我很乐意丢失验证)? 如果不是,如果我使用其他着色器共用的着色器签名创建输入布局,那么跨不同着色器重用输入布局是否安全?不传入着色器就无法创建输入布局,但使用具有相同顶点属性的其他着色器重用输入布局是安全的。谢谢,然后,制作一个与我需要的签名无关的存根着色器&重用布局,谢谢

直线的Direct2D/DirectX光栅化规则

我已经阅读了有关DirectX光栅化规则的在线文档,但我仍然不明白为什么这段代码不能在屏幕上显示任何内容 目标->设置抗锯齿模式(D2D1抗锯齿模式抗锯齿) 目标->绘制线(D2D1::Point2F(0.f,0.f), D2D1::点2F(10.f,0.f),红刷,1.f) 当然,如果我将两个线点的y从0.0f更改为1.0f,我会在窗口客户端区域的左上方看到一条可见的水平线,但我想了解这里涉及的原则。我无法从可用的文档中找出它们。您应该在“像素中间”画一条线: 否则,如果不使用抗锯齿,可以在0

Directx MaxTextureRepeat限制在什么时候起作用?

在Direct3D下执行像素着色器时,MaxTextureRepeat对纹理坐标施加的限制是否仅在调用纹理查找函数(如Tex2D())时才成为问题,还是在着色器中访问纹理坐标时,这些限制就会起作用 我想知道,在将纹理坐标传递给纹理查找函数之前,是否可以通过对纹理坐标调用类似frac()的函数来避免MaxTextureRepeat限制。纹理坐标处于本机插值精度。在支持像素着色器2.0的硬件上,这至少是24位浮点(或者可能是32位,不确定)。在内部,像素着色器中的计算必须至少为24位浮点。大多数现代

Directx 检测全屏Direct3D应用程序

有没有办法通过Direct3D API检测以全屏模式运行的Direct3D应用程序 ,仅在Vista及以上版本上受支持。它也仅在浏览器外壳程序运行时起作用。请尝试“IDirect3DDevice9::GetDisplayMode”: 参数: iSwapChain[in] pMode[out] 适配器的显示模式。作为 与显示器的显示模式相反 设备,如果 设备没有全屏模式 我发现了如何检测全屏Direct3D和OpenGL(例如Minecraft)应用程序 打电话。如果活动的全屏Direct3D应

DirectX设置单个像素的颜色

我在另一个线程中读到,我可以通过纹理读取单个像素。锁定/解锁,但我需要在读取像素后将其写回纹理,这是我到目前为止的代码 unsigned int readPixel(LPDIRECT3DTEXTURE9 pTexture, UINT x, UINT y) { D3DLOCKED_RECT rect; ZeroMemory(&rect, sizeof(D3DLOCKED_RECT)); pTexture->LockRect(0, &rect, NULL

Directx 带有DirectDraw(2d)覆盖的Direct3D 11

基本上,我想在3d交换链上绘制2d。但是我的代码注入了另一个程序,我没有源代码 我可以画图,但它只在使用DXGI_格式_B8G8R8A8_UNORM(BGR)格式创建交换链时起作用 最初,该程序使用DXGI_格式_R8G8B8A8_UNORM(RGB),当我将其切换到BGR时,该程序会在窗口/屏幕之外渲染。几乎所有的东西都更大 有没有一种方法可以使用RGB将Direct3D 11与2D进行互操作,或者有没有一种方法可以使应用程序渲染在BGR中正常工作?如果交换链是使用DXGI_格式R8G8B8A

更新directX纹理

我如何解决以下任务:某些应用程序需要 使用数十个dx9纹理(使用dx3d渲染) 及 更新其中一些(全部或部分) 也就是说,有时(每帧/秒/分钟一次)我需要将不同格式(argb、bgra、rgb、888、565)的字节(void*)写入现有纹理的某些子矩形。 在openGL中,解决方案非常简单-glTexImage2D。但这里陌生的平台功能完全把我搞糊涂了。 对dx9和dx11的解决方案感兴趣。要更新纹理,请确保在D3DPOOL\u管理的内存池中创建纹理 D3DXCreateTexture( de

Directx 11兼容性

我的硬件只支持Directx 10.1,但我知道通过功能级别,我可以使用Directx 11 API开发,并且仍然保持兼容性。我关心的一个问题是我的硬件支持着色器模型4.1,directx 11支持着色器模型5.0 所以我的问题是,我是否能够为directx 11开发包括着色器模型5.0和directx 10.1硬件 非常感谢您的帮助。除了使用参考设备或WARP,答案是否定的 当您使用DX11 API时,您必须创建10.1功能级别的设备,因此无法创建使用5.0着色器模型级别编译的着色器。如果可以

在DirectX11中绘制某些对象线框

我需要画一些物体线框和一些实体。我认为为每个对象调用RSSetState是一种不好的做法 可能我可以将对象分成两组,然后绘制线框组和实体组。但我不确定是否有可能,因为我可能还有其他事情要考虑。 也许我可以为线创建索引缓冲区并用线绘制线框,但我仍然需要剔除来处理这些线,可能吗 rasterDesc.FillMode = D3D11_FILL_SOLID; ... rasterDesc.FillMode = D3D11_FILL_WIREFRAME; 是的,这是可能的,但会浪费时间,因为如果您还想

Directx 用于数字视频渲染的Direct2D与Direct3D

我需要将来自多个IP摄像机的视频渲染到客户端应用程序中的多个控件中。 在视频的顶部,我应该能够添加一些OSD,比如时间戳和相机名称。 我想做的与3D无关,因为我们谈论的是带有文字的数字视频 哪种API更适合此用途?Direct3D还是Direct2D? 性能也应该是一个考虑因素。过去,Direct2D对于Windows Phone来说是一个糟糕的选择(如果您关心该系统的话),因为它不受支持,但Win Phone 8.1现在有了它,所以问题不大。 我使用D2D的经验是,它提供了快速、高质量的2D渲

DirectX安装目录

因此,我尝试安装Microsoft DirectX 2010,当我在安装程序中设置的目录时,我将它放在了我想要的错误目录中。现在,每次我打开安装程序,它都不会给我一个选项来更改目录,它只是说继续并安装。如果有人能解决这个问题,那就太好了 编辑:还忘了注意,当我将其安装在我的D:驱动器上时(它应该在C:上),我得到了错误代码S1023S1023问题的详细信息见。因为安装完全失败了,而且它是建立在古老的MSI前技术之上的,所以您需要手动清除旧安装 删除失败的安装目录 使用regedit删除HKC

DirectX边界框图形

其想法是在显示我的模型后,将边界框绘制为屏幕上的二维角点 我在一个std::vector中得到了DirectXKT的边界框角,所以 auto mf = m_world * m_view * m_proj; D3D11_VIEWPORT vp; UINT j = 1; ctx->RSGetViewports(&j,&vp); for (auto& c : corners) { DirectX::SimpleMath::Vector3 ft = DirectX:

使用DirectX 9显示网格-网格差异

是显示.x网格的程序。我可以显示网格,但无法显示。两个网格之间有什么区别?代码中有什么我应该处理的吗?但我可以使用标准网格查看器查看这两个网格,就像DirectX SDK附带的一样 谢谢 但不能显示球 问题还不清楚。网格是否加载?它是否包含顶点/面?或者它会使应用程序崩溃?还是加载失败 两个网格之间有什么区别 区别在于第二个网格(ball.x)不包含“模板” 即本部分: template Header { <3D82AB43-62DA-11cf-AB39-0020AF71E433>

DirectX 9着色不是线性的吗?

我正在使用托管DirectX9和C。我制作了一个cnc机器的可视化 在计算机1上,它工作得很好。左侧的圆管为亮灰色,阴影与深灰色呈线性 在计算机2上,我得到了不同的相同代码!: 左边是白色,右边是深灰色,但不是线性的。它仍然是白色的,大约占管子的45%,在55%时是黑色的。着色仅在此点之间可见 有什么想法吗 看起来我用的灯太亮了,但代码完全一样 /编辑 好的,这里是一个屏幕截图: 出现问题的计算机是i3+英特尔板载图形+Win7 64位 具有正确可视化效果的计算机是一台较早的Intel,具有板载

DirectX 11着色器错误。仅接收NaN的像素着色器

大家好。我开始重新编码引擎,将其转换为directx 11。我现在正试图让基本的工作,但这个错误真的阻止了我。 我创建了一个基本着色器,它是法线和视图的简单点积。我让它编译没有错误,但它不工作。 它只是使输入网格完全变形。我在vs2012中开始调试,发现像素着色器在所有NaN中都作为输入。我附加了两个屏幕和着色器代码,如果有人能提供任何想法,这将是真正的apriciated 顶点着色器 //---------------------------------------------------

Directx NVidia立体线框

我想用solidwireframe显示一些几何图形,它似乎是一个具有多个效果和单次传递的fx文件 所以我写了一个类来执行我认为效果文件正在做的事情。头文件是我编译的着色器,是英伟达的副本。使用版本4.0编译 # include "SolidWireFrame.h" # include "WireGeometryShader.h" # include "GeometryShader.h" # include "WirePixelShader.h" # include "ColorPixelShad

Directx 线性深度到世界位置

我有以下片段和顶点着色器 HLSL码 ` //顶点着色器 //----------------------------------------------------------------------------------- void mainVP( float4 position : POSITION, out float4 outPos : POSITION, out float2 outDepth : TEXCOORD0, uniform f

如何手动渲染使用DirectX工具包加载的网格

我有一个c++/cx项目,我正在使用DirectX-11渲染程序网格,看起来一切都很好,但现在我还想从文件(确切地说是从fbx)导入和渲染网格。 我被告知要为此使用DirectX工具包 我学习了工具箱的教程,所有这些都很有效, 但后来我尝试在我的项目中这样做,但似乎不起作用。导入的网格不可见,并且现有程序网格渲染不正确(好像没有深度缓冲区) 然后,我尝试手动渲染导入的网格(与程序网格相同,不使用DirectXTK的Draw函数) 这样效果更好,现有网格都是正确的,但导入的网格颜色是错误的;我使用

Directx D3D11纹理上的Direct2D绘制不混合

我有一个与Direct3D交互的Direct2D 我的Direct2D渲染为Direct3d纹理效果良好。然后,我尝试在Direct3D场景的顶部渲染该纹理,但当我渲染纹理时,它显示得很好,但它以黑色覆盖其余部分,而不是混合 D2D1_BITMAP_PROPERTIES1 properties = D2D1::BitmapProperties1( D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW, D2D1::PixelFo

DirectX 11仅在屏幕的一部分?

我正在尝试设置一个窗口,其中DirectX只参与屏幕的一半 我的交换链描述宽度是半屏,视口宽度是半屏,但当我将渲染目标清除为蓝色时,整个屏幕是蓝色的,而不是我指定使用的一半。我知道这是一个老问题,但无论如何,如果有人从搜索中来到这里: 说: Direct3D 9和Direct3D 11/10之间的差异: 与Direct3D 9不同,资源视图的完整范围始终为 变明朗。视口和剪刀设置未应用

Directx Direct3D是否适用于大型图像的缩放和平移?

我想为大图像(高达2000 x 8000像素)制作一个具有非常灵敏的缩放和平移功能的图像查看器,比如30fps或更高。我想到的一个选项是创建一个3D场景,将图像作为一种固定的广告牌,然后向前/向后移动摄影机进行缩放,向上/向下/向左/向右移动摄影机进行平移 这个基本想法对我来说似乎是合理的,但我没有3D图形方面的经验。有没有什么基本的东西让我的想法变得困难或不可能?什么可能会导致问题或难以很好地实施?此设计的哪个部分将限制最大图像大小?有没有关于我可能达到的帧率的猜测 我也欢迎任何关于如何为Di

Directx 使用GPU着色器HLSL将YUV422转换为RGB

我正在考虑使用HLSL执行从YUV422到RGB的颜色空间转换。四字节YUYV将产生2个三字节RGB值,例如,Y1UY2V将给出R1G1B1(左像素)和R2G2B2(右像素)。如果像素着色器中的纹理坐标呈梯度增加,我如何区分左侧像素(即所有R1G1B1)的纹理坐标和右侧像素(即所有R2G2B2)的纹理坐标。这样我就可以在一个纹理而不是两个纹理上渲染所有R1G1B1和R2G2B2 谢谢 不确定您使用的是什么版本的DirectX,但这是我用于dx11的版本(请注意,在这种情况下,我将yuv数据发送到

DirectX 11 compute是否能够将超过10k个顶点写入RWStructuredBuffer?

我有一个带有无序访问视图的顶点缓冲区,我使用计算着色器填充顶点,该着色器将UAV视为RWStructuredBuffer,使用顶点定义的等效结构。有216000个顶点(即60 x 60 x 60)。但我的计算着色器似乎只填充了其中的8000个,剩下的是它们的初始值。结构化缓冲区中可以以这种方式写入的元素数量是否有限制?事实证明,如果启用DirectX错误检查,将顶点缓冲区的UAV指定为着色器中的RWStructuredBuffer将被视为错误。因此,尽管这确实有效(对于有限数量的顶点),但它不受

Directx 更改ID3D11Texture2D像素格式

我有纹理,使用方法D3DX11CreateTextureFromFile()从.DDS文件加载。DDS是使用块压缩1压缩创建的,因此,当我从ID3D11Texture2D查询IDXGISurface1时,曲面的像素格式是DXGI_format_BC1_UNORM 所以我的问题是:我可以将曲面的格式更改为DXGI_format_B8G8R8A8_UNORM吗。我尝试了这个方法,但它似乎无法从BC1转换为32bppBGRA 欢迎提供任何建议。如果这是一次性或构建时过程,请使用中包含的工具。如果需要在

Directx 如何将DXGI共享资源的句柄传递给另一个进程?

根据IDXGIResource::GetSharedHandle的文档,我应该能够“将这个句柄封送到另一个进程,以便与另一个进程中的设备共享资源” 但不清楚如何通过这个把手。我可以把这个句柄的值传递给另一个进程吗?还是我需要一些具体的方法 谢谢 是的,您可以将此句柄直接传递给另一个进程并通过OpenSharedResource函数访问它。是的,您可以将此句柄直接传递给另一个进程并通过OpenSharedResource函数访问它。现在建议使用CreateSharedHandle()而不是GetS

Directx 如果DepthBias设置为非常大,会发生什么情况?

如果我们将DepthBias设置为非常大,它是否也会从顶点进一步绘制并可见 深度偏差仅影响深度测试。它通常用于使与绘制的几何体同时绘制的“贴花”纹理可见,尽管深度缓冲区中的计算z值相同。如果使深度偏移非常大,则可能超出深度缓冲区中所有现有的z值。结果取决于您启用的深度测试比较功能。太好了。因此,如果考虑DirectX,深度偏差应保持在1以下,大于0。

Directx 如何对存储在法线贴图alpha通道中的高度贴图进行采样?

错误X3523:DX9样式的内部函数在不处于DX9兼容模式时被禁用 如何在dx10中使用tex2Dgrad()函数?您可以打开back compat模式(即,使用/Gec开关和FXC.EXE命令行,或使用D3DCOMPILE\u启用向后兼容标志和D3DCOMPILE API) 或者,使用Direct3D 10/着色器模型4引入的“纹理对象”语法,而不是使用DirectX 9样式tex2Dgrad() Texture2D <float4> MyTex : t0; Sampler MyS

Directx 多次调用RWByteAddressBuffer上的Interlockedd会产生意外结果(在NVidia上)

我想从使用计数器缓冲区返回一些计算着色器例程,但在Nvidia卡上出现了一些意想不到的行为 我做了一个非常简单的例子(所以这样做没有意义,但这是我遇到的最小问题) 因此,我希望在缓冲区的多个位置执行条件写入(同样为了简化,我只运行一个线程,因为这种行为也可以通过这种方式重现) 我将写入4个UINT,然后写入2个uint3(使用InterlockedAdd“模拟条件写入”) 因此,我使用一个缓冲区(在uav上具有原始访问),具有以下简单布局: 0 -> First counter 4 -&g

Directx 如何实施翻译与翻译;游戏级编辑器的旋转小部件

我正在开发游戏编辑器。为了检测3D模型上的鼠标点击,我使用了鼠标拾取的概念。 但我想实现平移和旋转小部件,就像其他游戏编辑器一样,在模型的中心有三个方向的实际箭头。 如何做到这一点。。? 有人能推荐同样的示例代码吗 您选择的任何给定对象都将具有局部到世界的变换矩阵 使用DirectX很容易获得3个轴。 矩阵的第一行,如果边(x)向量 第二行是上(y)向量。 thidd行是正向(z)向量。 知道位置(第四排)使三角函数很容易计算出来。因此,基于此信息进行旋转和平移非常简单

Directx DXSDK链接器问题

我已经在我的电脑上安装了VS2k10和DXSDK。 我启动了一个新项目,然后在VC中添加了include和lib/x64 dir++ 目录。我还在其他依赖项中添加了d3dx10.lib和d3d10.lib。 但我一直得到“错误LNK2019:未解析的外部符号_D3D10CreateDeviceAndSwapChain@32函数中引用了…“错误。 我错在哪里?错误告诉您缺少指向32位版本d3d10.lib的链接,因此请确保在“项目>属性>链接器>输入>其他依赖项”下链接该链接,或者在“解决方案>配

非托管DirectX中的数学方法

我很好奇,在非托管DX中是否定义了一些数学方法,例如托管DX中的RotationAxis(将一对角度和vetor转换为四元数) 我意识到在托管DX中可以使用许多预定义的数学方法,但在非托管directx中也是如此吗 好的,我知道实现这样的算法并不困难,但是使用预定义的算法会很好 我如何使用数学方法呢?我在SDK文档或google中找不到任何东西:( Sorr my代表“英语”,my noobinity:)它们位于SDK中包含的库中。只需包含,不要忘记将D3dx9.lib添加到链接器依赖项 (寻找

在DirectX 9.0中以后台模式加载资源

我用DirectX9.0制作了一个3D游戏 我想使用线程在后台模式下加载资源 这是我的密码 ----------------附件--------------------------- #define AFXBEGINTHREAD(pfnThreadProc,pParam) AfxBeginThread(pfnThreadProc, pParam, THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL) CWinThread* g_pThread = N

DirectX照明

嗨。我有一个使用DIGTX10和C++的小游戏。然而,我开始使用meshloaderfromOBJ10 direct X示例制作它,我只是在它的基础上进行构建。然而,我的物品看起来都是纯黑色的,尽管它们有颜色 我知道这是因为灯光,但似乎更改任何代码来处理灯光对本示例没有任何影响 我想知道是否有人知道一种简单的方法来点亮所有的东西,比如让它到处都亮起来。我不在乎阴影、反射或其他类似的东西,因为我做的不是必须的,但如果能看到我的物体而不仅仅是轮廓,那就太好了 干杯 然而,我的物品看起来都是纯黑色的,

为什么DirectX使用翻转的Y轴?

我正在保存我的驱动X/Y坐标,然后使用一个函数将坐标转换为米,并向每个点添加1280(这样它将很好地适合2560x2560图像),然后在“点”之间绘制一个多边形,从而形成某种赛车线。但一旦生成多边形并将其保存为图像,它就会以某种方式垂直翻转。垂直翻转图像将使其与轨迹位图完美匹配。我被告知这是由于DirectX内部的Y轴翻转。为什么DirectX使用翻转的Y轴?问题是,DirectX是有翻转的Y轴还是图像 DirectX使用3D/4D坐标系,当未应用任何变换时,X轴指向右侧,Y轴指向上方。这是因为

Directx 每实例世界矩阵为0.0f/NaN

我正在尝试用硬件实例绘制一些立方体。 然而,它们不会被展示出来。所以我调试了我的代码,找到了问题的根源: 在我的VertexShader中,具有每实例世界矩阵的var的值为: {0.0f,0.0f,0.0f,0.0f, 0.0f,0.0f,0.0f,0.0f, 0.0f,0.0f,0.0f,0.0f, 0.0f,NaN,NaN,NaN} 最奇怪的是它超过了NaN(不是一个数字)。以下是创建实例缓冲区的方法: XMMATRIX trans[4]; trans[0] = XMMatrixTran

DirectX什么是反资源?

在ID3D12Device::CreateUnorderedAccessView方法中可以指定ID3D12Resource*pCounterResource。我知道这是另一个包含原子计数器的缓冲区 Q:这个计数器是用来做什么的?如何从HLSL访问它?它们用于消耗和附加缓冲区

上一页 1 2  3   4   5   6    7   8   9  ... 下一页 最后一页 共 24 页