标签: Directx
renderinghlslslimdxrender-to-texture
我正在使用SlimDX,目标是具有着色器模型4的DirectX 11。我有一个像素着色器“preProc”,它处理我的顶点并保存三个纹理数据。一个用于每像素法线,一个用于每像素位置数据,一个用于颜色和深度(颜色占用rgb,深度占用alpha通道)
随后,我在后处理着色器中使用这些纹理以实现屏幕空间环境光遮挡,但似乎没有任何数据保存在第一个着色器中
这是我的像素着色器:
PS_OUT PS( PS_IN input )
{
PS_OUT output;
output.col = f
标签: Directx
directx-11compute-shaderdeferred-shading
又来了。我准备在dx11引擎中添加延迟着色,但我有一个架构问题。我想首先使用MRT渲染gbuffer,将其传递给计算着色器,分派,然后输出结果。我的问题是,我应该创建两个交换链,一个用于渲染gbuffer,另一个用于将计算着色器渲染到Backuffer并呈现,还是有其他方法?。我在这里试图避免的是必须使用fullscren四元体并在其上渲染cs的输出。开销太大了。提前感谢。编辑:我需要补充一点,您在执行此操作时会收到一些状态警告,因此请小心使用
最后,不需要两个交换链。首先使用DXGI_USAG
默认情况下,Direct2D图片显示在函数EndDraw之后的屏幕上
出于调试目的,我需要在绘制任何绘图原语后在屏幕上显示图片
这在Direct2D中可能吗?
出于这些目的,我在GDI中使用了GdiSetBatchLimit1,这是不可能的。您需要围绕每个基本体开始绘制/结束绘制。如果有图层或剪辑,也需要在每个基本体周围设置并删除它们
您可以在D2D目标上呈现GDI内容
或者,您可以尝试使用一个循环,该循环将封装一个基本体,然后封装两个基本体,然后封装三个基本体,直到您的图形代码在Begin/e
在微软,有两个剪刀和两个堆描述符
似乎只使用了postviewport(每次调整大小时,调用LoadSizeDependentResources(),更新postviewport)
那么,在这种情况下,sceneviewport的作用是什么?示例使用两次渲染。它首先渲染到中间渲染目标(使用m_sceneViewport和m_scenesiscorrect),然后将中间渲染目标缩放到屏幕。检查OMSetRenderTargets调用。当选定的全屏模式维度与中间渲染目标的维度不同时,“缩放”就会发生
我制作了一个HLSL着色器(fx格式),并希望在其UI中添加一个枚举/列表参数-作为布尔标志列表的更好替代
因此,不是:
[x] “使用自定义映射”
[x] “使用自定义贴图alpha”
[x] “使用漫反射alpha”
[x] “使用镜面反射alpha”
[x] “使用普通alpha”
拥有:
来源:[“使用自定义地图”]
所有5个选项和代码级别上选定项的索引
“DirectX标准注释和语义参考”提到了ListPicker小部件,但我找不到任何示例或说明如何使用它
问题是:
在着色器
我有一个640x480渲染目标(它是主backbuffer)
我将全屏四元体传递给顶点着色器,全屏四元体的X和Y坐标都在[-1,1]之间,这意味着我只将坐标传递给像素着色器,而不进行计算:
struct VSInput
{
float4 Position : SV_POSITION0;
};
struct VSOutput
{
float4 Position : SV_POSITION0;
};
VSOutput VS(VSInput input)
{
VSOutpu
我有一个非常简单的地形图与瓷砖!所有的瓷砖大小相同,只是高度不同(z值)!
我可以渲染它们,但有数千个瓷砖,但不是所有的都在屏幕上,只有一部分(在视图前面)!所以我正在做一个批渲染,只收集屏幕上出现的瓷砖,然后在一个调用中渲染它们!
我尝试使用D3DXVec3Project将世界空间上的顶点投影到屏幕空间,然后检测屏幕上的三角形,但是这非常慢,调用此函数可将整个地图的时间缩短到7毫秒(大约250x250次调用)
现在我使用的是iso视图(D3DXMatrixOrthoLH),没有摄像头或眼睛,当
我正在建立维基,
然后我发现Ogre::SceneManager::setAmbientLight()根本不起作用。
我发现谷歌搜索后没什么用,有人能给我一些想法吗?
代码如下所示:
m_pSceneMgr = OgreFramework::getSingletonPtr()->m_pRoot->createSceneManager(ST_GENERIC, "GameSceneMgr");
m_pSceneMgr->setAmbientLight(Ogre::ColourVal
我试图通过Monogame的VertexositionColorTexture在游戏中实现环境光遮挡。我提出的当前环境光遮挡的图像是这样的,但它并不完全完整:
我没有使用着色器来实现此效果,一直在努力找出如何在环境光遮挡中使用着色器。使用颜色而不是法线是错误的吗?我应该使用法线而不是颜色参数吗?我知道BasicFect类是一个着色器,但我只是好奇
谢谢大家。我不知道monogame,但是如果你想做环境遮挡,通常它会作为后期效果。这样,每个像素都保证被渲染。因为对于每一个像素,你需要在它的附近,
标签: Directx
hlsldirectx-11convolutiondirectcompute
我刚刚开始学习DirectCompute,出于学习的目的,我想制作一个简单的卷积滤波器来模糊纹理。我编写了以下计算着色器来模糊纹理:
Texture2D<float4> inputTex;
RWTexture2D<float4> outputTex;
[numthreads(32, 32, 1)]
void main( uint3 DTid : SV_DispatchThreadID )
{
float4 totalPixVal = float4( 0.0f,
我正在尝试使用directx10/direct2D输出面板而不是表单创建自定义控件。我在重写OnPaint方法中进行所有渲染,但是我在某些地方读到它是错误的,应该改用RenderLoop。但如果我只能在控件内部编写代码,我应该在哪里插入RenderLoop.Run?谢谢。您将创建一个线程,并在线程内运行RenderLoop。执行此操作时,必须确保以安全的方式调用组件之间来回发送的事件。如果不需要动画,也可以。
我想只发布源代码源代码,不发布我在zlib或MIT许可下创建的基本游戏引擎的二进制文件,但是它使用DirectX库,如Direct2D、Direct3D等,这些库不是开源的。我不打算将它们包含在我的项目的存储库中,所以当涉及到源代码本身时,这应该很好,但是当涉及到实际编译源代码时,不会有任何许可冲突吗?许可证是否也包括二进制文件?我应该在许可证或自述文件中添加一些注释,说明我选择的许可证不包括第三方库,只是为了确定,还是我根本不需要关心这些?这不是你的问题。您只发布源代码,并且您的许可证仅适用于
是否可以通过链接到Windows10SDK中的DirextX版本来使用D3D9字体
下面是我想运行的代码类型。但我找不到Windows 10 SDK中支持的字体
D3DXFONT_DESC fontDesc;
fontDesc.Height = 80;
fontDesc.Width = 40;
fontDesc.Weight = FW_BOLD;
fontDesc.MipLevels =
在许多D3D12教程和书籍中,当清除渲染目标视图时,只需清除深度模具缓冲区。这是大多数情况,但我遇到了特殊情况,我想知道,即使另一个缓冲区已被清除,缓冲区数据的数据是否已被保留。例如,清除渲染目标时是否保留深度模具缓冲区的数据
在Vulkan中,甚至Metal都提供了LoadOp和StoreOp,以保证在命令队列开始或完成执行时缓冲区数据。但是,我在D3D12中找不到类似的选项
正如我所知,在历史上,D3D不保证缓冲区数据被清除。是这样吗
否则,它是否总是保证保存?如果Microsoft有任何关
标签: Directx
directx-11vulkansteamdirectx-9
对于像DOTA 2这样可以使用不同图形API(如DX9、DX11、Vulkan)运行的游戏,我还没有找到一个可行的解决方案来检查当前使用的API。我想这样做,以正确地注入一个动态链接库,以便在游戏中显示图像
我已经研究过手动检查游戏加载的dll
此工具例如:
但是,对于DOTA,如果在steam上的启动选项中未指定任何库,则它将同时加载d3d9.dll和d3d11.dll库。关于如何确定使用的正确图形API,有没有其他想法?在Vulkan中,一个干净的方法是实现一个Vulkan层来进行覆盖。它比
我想在DirectX游戏中绘制文本,所以我注入了一个钩住EndPaint的DLL。我的逻辑是,由于EndPaint应该是WM_PAINT操作的最后一步,我可以在钩子中绘制文本,然后自己调用EndPaint。通过这样做,我完全避免了DX接口
问题是它什么也没做。这是我的密码
#include <windows.h>
#include "Hooks.h"
static const TCHAR g_cszMessage[] = TEXT("utterly fantastic");
BO
我尝试搜索DirectX备忘单,但只找到了DirectX 10的备忘单:
我真正感兴趣的是DirectX 9和11
有没有这些备忘单?可以说最好的“备忘单”是MSDN:
标签: Directx
shaderdirectx-11directcompute
我的计划中有一些众所周知的步骤:
CreateBuffer
Create..View
CSSet..Views
Dispatch
在哪一步将数据复制到GPU?供您选择,并在需要时将数据复制到GPU 他们之所以投票否决,是因为你似乎没有在谷歌搜索上下功夫
答:当调用创建方法时,DirectX通常将数据从系统内存传输到视频内存。创建方法的一个示例是“ID3D11Device::CreateBuffer”。此方法需要指向数据所在位置的内存位置的指针,以便可以将数据从系统RAM复制到视频RAM。
看看这个
if(msg.message == WM_QUIT)
在你的while循环中。
也许可以改为,比如:
if(true)
原因:您希望应用程序传递所有消息,而不仅仅是导致其退出的消息。例如,windows希望应用程序自行绘制时。基本上,您当前的代码不允许您的应用程序做任何事情,除了退出
如果您想在应用程序退出时执行一些特殊操作,请在WinProc中已经存在的案例WM_DESTROY:之后添加另一个案例WM_QUIT:
游戏运行的当前位置;这对你不合适。
您可以将其放在一个单独的线程中
我已经被这个问题困扰了几个星期,我只是不断地遇到奇怪的调试错误,比如:
1.dxgi1_2.h中关于DXGI_RGBA的3个错误组合(现在暂时消失)
C4430、C2143和C2061
喜欢这个链接中的错误吗
2.错误C2677:二进制“”:未找到采用“DirectX::XMVECTOR”类型的全局运算符(或不存在可接受的对话)
操作符重载的这个版本是在DirectXMath.h中声明的,它在DirectXMathVector.inl中定义,并且在这个演示项目的其他部分工作得非常好。
3.有时候
我想知道SampleGrad函数希望TextureCube对象使用哪个DDX DDY值。
我知道这是2D纹理UV坐标的变化。所以我想,在这种情况下,这将是方向的改变。然而,情况似乎并非如此
如果我尝试使用Sample函数与SampleGrad,我会得到不同的结果:
// calculate reflected ray
float3 reflRay = reflect(-viewDir, normal);
// reflection map lookup
float3 dxr = ddx(refl
如您所见,regedit中没有Direct3D文件。
我需要在我的代码中找到内存泄漏。
我已经用_CrtSetBreakAlloc清除了所有内存泄漏
D3DX:检测到内存泄漏:60个分配未泄漏(4603字节)
D3DX:将HKLM\Software\Microsoft\Direct3D\D3DXBREAGNALLOCID=0x736设置为调试
这是我在VisualStudio中调试D3DX时收到的消息
如何在regedit中找到Direct3D文件
如果不可能,是否有其他方法使用D3DXBrea
XNA和C#能否用于制作商业上可行的PC/XBOX游戏
这是用C#创建3D游戏的最佳方法吗?如果没有,会是什么?我怀疑你是否会用它创造下一个战争齿轮,但XNA在许多类型的游戏中都很好用。XBox Live上的大多数(所有?)社区游戏都是使用XNA创建的。对第一个问题的简短回答是,是的。完全可以使用XNA库创建任何类型的游戏。它可以用来制作简单的2D平台,也可以制作中等复杂的3D射击游戏。
根据游戏的不同,您需要为游戏创建的逻辑量可能会有所不同
当然,在创建3D游戏时,您必须创建自己的3D引擎,或
标签: Directx
direct3ddirectx-11direct3d11
我正在使用Direct3d 11,我遇到了一些奇怪的事情。我已经采取了一个正常的地图和编码它到DDS文件两次。一次使用R8G8B8A8_SNORM编码,一次使用BC5_SNORM
接下来,我将使用D3DX11CreateShaderResourceViewFromFile和D3DX11GetImageInfoFromFile加载每个纹理。当我在像素着色器中对这些纹理进行采样时,我发现R8G8B8A8_SNORM纹理返回的值在[-1,1]范围内,这是我对SNORM纹理的期望值。但是,BC5_snr
这个问题看起来很简单,但我找不到HLSL如何处理自己的坐标系
我只想知道(0,0)位于何处(左上角或左下角),由于我完全是这些着色器概念的初学者,我无法自己推导
谢谢你的帮助 我相信您想了解DirectX的坐标系。HLSL是一种着色语言,不定义要使用的坐标空间
这里有几个链接可以帮助您开始
我相信你想了解DirectX的坐标系。HLSL是一种着色语言,不定义要使用的坐标空间
这里有几个链接可以帮助您开始
在顶点着色器中,可以使用多个坐标系或空间
通常,顶点数据到达世界坐标
然后顶点数据通
如果我想在Windows XP和更高版本的Windows上实时缩放和合成2D抗锯齿矢量和位图图像,充分利用可用的硬件加速,我应该使用GDI+还是DirectX 9.0c?(实际上,Windows XP和Windows 7很重要,但我们并不关心Vista的性能。)
如果应用程序不是跨平台的(而且永远不会),那么使用SDL有什么好处吗?我想知道SDL是否可以使切换到性能更好的底层绘图API更容易
在哪里可以找到在DirectX 9.0c中进行二维图像缩放和合成的文档?(我找到了DirectDraw的
标签: Directx
gpunvidiahlsldirectx-10
在Visual Studio 2012中打开VC++项目并进行编译时,我收到以下错误消息:
错误5错误MSB4064:“FXC”任务不支持“CommandLineTemplate”参数。验证任务上是否存在该参数,以及该参数是否为可设置的公共实例属性
我是否缺少一个框架或SDK?或者可能需要修改此示例以使用VS2012
非常感谢 你有最新的吗
此外,是否有可能VS有一个自定义编译操作来运行您缺少的FXC(着色器编译器)
如果您可以通过fxc找到编译其着色器所需的参数,则可以通过命令提示符运行该参
有人能告诉我DirectX 11是否可以使用以下计算着色器吗
我希望调度中访问缓冲区(g_positionsGrid)中元素的第一个线程将该元素设置为(比较交换)临时值,以表示它正在执行某些操作
在本例中,临时值为0xFFFFFF,第一个线程将继续并从结构化附加缓冲区(g_位置)分配一个值,并将其分配给该元素
因此,到目前为止一切正常,但调度中的其他线程可以进入比较交换和第一个线程的分配之间,因此需要等待,直到分配索引可用。我在忙着等待(while循环)时这样做
然而,不幸的是,这只会锁定GPU
标签: Directx
ms-media-foundationdirect2ddxvawpf-mediakit
我是这方面的新手,所有与DirectX、渲染视频、渲染图像等相关的东西。。
所以我需要你的帮助:
我有一个WPF应用程序。此应用程序需要渲染大量视频(至少并行渲染10个视频),并且这些视频必须在GPU而不是CPU上渲染。我已经尝试使用WPF MediaKit,但它会消耗大量内存(RAM)和CPU。我还尝试了WPF MediaElement,它还消耗了大量内存(RAM)
所以,我的问题是:
1-如何构建一个应用程序,以尽可能少的内存在GPU上同时渲染大量视频?您将使用什么技术?
注意:如果您建议使
作为起点,我正在使用RasterTek DX10教程11:2D渲染中的DirectX,并且我能够运行该示例
我的目标是通过共享内存将UINT32阵列从一个应用程序传递到我的新DirectX应用程序,以在屏幕上显示每像素10位的彩色图像,即DXGI_格式_R10G10B10A2_UNORM。出于开发目的,我只需在DirectX应用程序中填充我的数据数组,其中所有像素都具有相同的值(一旦我开始工作,我将不会只显示纯色,这就是我尝试此操作的原因)。我可以看出数据是有意义的,例如,仅显示纯白色图像,我的
我刚刚阅读了DirectX文档,在页面中遇到了一些有趣的内容:
要在
CPU和图形加速器,
打电话是有利的
IDirect3DDevice9::EndScene到目前为止
尽可能提前打电话给在场的人
我已经习惯于编写我的游戏循环来处理输入之类的,然后绘制。我有倒着的吗?也许游戏循环应该更像这样:(显然是半伪代码)
根据文档中的这句话,这个循环将“实现最大的并行性”
这是常见的吗?像这样安排游戏循环有什么坏处吗?在第一次迭代之后,我看不出它有什么真正的问题。。。我知道知道知道像这样的东西的实际速度
标签: Directx
renderingscalingparticle-system
请告诉我应该使用什么值我为D3DRS_POINTSCALE_A、D3DRS_POINTSCALE_B、D3DRS_POINTSCALE_С设置点精灵,使其与场景中的其他对象一样缩放。参数A=0 B=0和C=1(由F.D.Luna提出)不合适,因为比例不够精确,粒子(点精灵)之间的距离可能大于其应有的距离。如果将点精灵替换为公告牌,则粒子的比例是正确的,但渲染速度要慢得多。请帮助我,因为为我的任务渲染粒子的速度非常重要,但它们的精确比例也非常重要
Direct3D根据以下公式计算屏幕空间点大小
基本上,它就像一个天空盒,但它是一个完全平坦的平面,位于屏幕前面。我的想法是拥有一个大的纹理,并且根据你旋转相机的方式,它在平面上渲染纹理的不同部分,就像你相对于“天空”移动一样在平面上绘制,当你到达边缘时,它会渲染它+另一侧的部分(我会使用无缝纹理,这样看起来就不会有接缝)。我已经找到了做这件事的公式,但我不确定使用什么方法。我是说我不确定我是否应该用C++来做,或者它应该在一些FX文件中的着色器中完成,直接在GPU上进行? < P>你所需要做的就是在你的场景后面绘制一个全屏四边形,或者使用深
我一直试图利用GPU作为我的一个项目的一部分。我已经研究过CUDA和OpenCL,但是缺乏信息来说明如何将它们引入到项目中,这令人震惊。甚至他们专门的论坛小组也已经死亡。现在,我正在研究DirectCompute
据我所知,它只是一种利用HLSL的新型着色器文件。我的问题是,除了DirectX 10/11之外,我的程序是否需要改变其结构
我的意思是,这仅仅是一个创建CS文件的例子,在项目中像其他着色器一样设置,然后看着神奇的发生
请提供有关这方面的任何信息。是的,CS适合通常的DirectX编程
谁能帮我把这个DX9代码移植到DX10(不是11!)。这是一个简单的绘画纹理
// create the texture
m_pDevice->CreateTexture(m_width, m_height, 1, 0, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &m_pTexture, NULL);
// get its surface (target surface)
m_pTexture->GetSurfaceL
我是DirectX的初学者,所以请为我保持简单。我已经加载了一个纹理并将其显示在一个四边形上,但透明的背景仍然显示出来。我怎样才能阻止它?我尝试了两种不同的方法,他们阻止了它的显示,但我在屏幕上绘制的其他四边形也消失了(它们没有纹理)。我的问题是,在绘制没有纹理的基本体之前,我没有将纹理重置为null。我尝试抛光我的水晶球,但没有任何帮助。请提供一些关于您的问题的附加信息,特别是一些假设错误的代码(drawcall、顶点设置)。如果透明度不起作用,第一个猜测是:是否已将alpha混合的rende
标签: Directx
quaternionseuler-angles
我正在寻找一种方法,返回一个由四元数旋转的欧拉角
我知道从四元数中提取俯仰、横摇和偏航充其量是有问题的,但如果可以的话,我只需将其值添加到我自己的值中,以获得最终的欧拉角
我也可以将欧拉角转换成四元数,然后将二者结合起来,但剩下的四元数我无法转换成欧拉
我承认在最好的时候,我会与四元数斗争,所以任何帮助都会受到欢迎
为了清楚起见,我只需要返回一个欧拉角,如果需要,所有其他的计算都可以用四元数完成
我用的是子弹物理,直接X,C++
谢谢
不能将Euler角与Euler角或Euler角与四元数直接组
我正在尝试使用DXGI捕获DWM的DirectX曲面,并使用Direct3D 10/11捕获GetDisplaySurfaceData
但是,在调用GetDisplaySurfaceData之前,当我使用IDXGIOutput::TakeOwnership获得适配器输出的所有权时,整个屏幕会暂时变黑,然后恢复,就像在显示模式切换期间一样
为什么会发生这种情况,我怎样才能防止这种情况发生?我知道现在已经非常晚了。但无论如何,文档明确指出,您不应该直接呼叫收购,因为结果将是不可预测的
我知道现在已经
我目前正在尝试使用DirectX API,我想知道在DirectX 11中渲染精灵的常用方法是什么(例如,对于俄罗斯方块克隆)
是否有类似于ID3DX10Sprite的界面,如果没有,在DirectX 11中绘制sprite的常用方法是什么
编辑:这是为我工作的HLSL代码(投影坐标的计算可以做得更好):
struct SpriteData
{
浮动2位;
2号;
4色;
};
结构输出
{
浮动4位置:SV_位置;
浮动4颜色:颜色;
};
cbuffer屏幕大小:寄存器(b0)
{
2屏幕大
我已经看过了,但找不到任何与使用Direct3d 10或11与MinGW相关的材料。我该怎么做才能让事情顺利进行?DXSDK提供的头文件中有错误
甚至没有人想到建议使用Visual Studio。这里似乎解释了如何使用MinGW从SDK获取DX头:
使用谷歌翻译将网页翻译成英语
或者,从以下位置尝试使用mingw64项目中的DirectX标头:
您需要“下载头文件和CRT源代码v2.0.1(r4623)(7.0MB)”。或者您可以直接从svn中查看它们:可能这就是答案
我尝试了日本网站的建议,也
[使用HLSL、一个*.fx文件和DirectX9]
我对使用着色器很陌生,有一个场景可以工作,但不明白为什么。我很困惑网格如何可以有一个版本的顶点偏移,而着色器可以定义另一个版本
我用D3DXCreateSphere(…)创建了一个ID3DXMesh球体,它是用D3DFVF_XYZ | D3DFVF_NORMAL设置的。我调用ID3DXMesh::DrawSubset(0)进行渲染;内部BeginPass/EndPass调用
然后我有一个定义了结构的顶点着色器:
struct Vertex {
标签: Directx
stencil-buffershadow-mapping
我正在学习影子地图上DirectX SDK中的一个示例。此示例在初始化过程中创建了模具曲面,并显示:
Create the depth-stencil buffer to be used with the shadow map
We do this to ensure that the depth-stencil buffer is large
enough and has correct multisample type/quality when rendering
the shad
我在我的3d项目中有一个球体,我有一个地球纹理,我使用来自的算法来计算纹理坐标。
我的效果文件中的代码如下所示:
float pi = 3.14159265359f;
output.uvCoords.x = 0.5 + atan2(input.normal.z, input.normal.x) / (2 * pi);
output.uvCoords.y = 0.5f - asin(input.normal.y) / pi;
结果如下图所示:
从左边看(有一行,这是我的问题)
从前面看
从右
这个问题的表述不完全正确,因为用一句话来说有点难,所以真正的问题是:
在Direct3D9中创建表示设备的对象的函数如下所示
HRESULT IDirect3D9::CreateDevice(
UINT Adapter,
D3DDEVTYPE DeviceType,
HWND hFocusWindow,
DWORD BehaviorFlags,
D3DPRESENT_PARAMETERS *pPresentationParameters,
ID
所以我有下面的函数来渲染动画实体
void DeferredRenderer::DrawAnimated(ID3D12GraphicsCommandList * clist, std::vector<Entity*> entities)
{
clist->SetPipelineState(sysRM->GetPSO(StringID("animDeferredPSO")));
clist->SetGraphicsRootDescriptorTable
我的问题涉及处理多个纹理的最佳方法。首先是一些背景:
我在非游戏应用程序中使用DirectX-11;gui专门使用DirectX。我正在使gui可蒙皮,以便用户可以根据自己的喜好自定义gui
我编写代码的方式是,gui布局和每个gui元素的大小可以根据配置文件进行更改。gui目前仅通过DrawIndexedInstanced使用DirectX primatives,但我希望支持用户提供的纹理。这些纹理的大小可能会有所不同。这些不同的纹理多达24种
我可以通过以下任一方法解决此问题:
动态组合纹理
原因是什么
从DLL_PROCESS_ATTACH上的DllMain()调用IDirect3D9::CreateDevice(),它将挂起
代码很简单,就像:
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if (ul_rea
我尝试在中创建这个2D三角形,将输入汇编程序设置为三角形带:
1.(0.0f, 0.0f, 0.5f)
2.(-0.5f, 0.0f, 0.5f)
3.(-0.5f, -0.5f, 0.5f)
但是,没有绘制三角形,事实上渲染目标上没有绘制任何东西,甚至没有绘制一条直线。我到处乱搞,然后我交换了坐标2和3,结果成功了。三角形是按我的意图画的。这种奇怪行为的原因是什么?您以逆时针顺序定义顶点,而Direct3D默认情况下将以逆时针顺序定义消隐面,因此在背面消隐期间对三角形进行消隐,因此您没有得到
我正在尝试使用计算着色器实现。在本文中,有一系列的过程是在纹理上完成的,因为这是在计算着色器之前编写的
在纹理或缓冲区上进行每次传递是否会更快?最终的过程无论如何都必须应用于纹理。我建议使用适合模拟的资源维度。如果是1D模拟,请使用RWBuffer;如果是2D模拟,请使用RWTexture2D;如果是3D模拟,请使用RWTexture3D
您链接的算法中似乎存在使用双线性过滤的阶段。如果您限制自己使用缓冲区,则必须执行4或8次内存提取(取决于2D或3D),然后执行更多指令来计算加权平均值。尽可能
我设置了一个DX12应用程序,它只在每一帧清除backbuffer
这真的是赤裸裸的:没有PSO,没有根。。。
唯一的特殊性是,它在启动新帧()之前等待swapChain使用Present()完成(我也将帧延迟设置为1,并且on上只有2个缓冲区)
第一个帧工作正常,但它立即开始绘制第二个帧,当然,命令分配器会抱怨它在GPU上执行命令时被重置
当然,我可以在移动到新帧之前设置一个围栏,等待gpu完成,但我认为这是可等待交换链对象的工作
以下是渲染例程:
if(m_命令\u分配器->重置()==E_
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 24 页