Tag: directx

从世界位置获取屏幕位置

我希望从DirectX中的世界位置获得屏幕位置。 我可以得到我的球的世界位置。 但我不知道如何将其转换为屏幕位置。

1> main.obj:错误LNK2001:未解析的外部符号_D3D10CreateDeviceAndSwapChain @ 32

无法让我的直接进入,我得到以下错误 1>Linking… 1>main.obj : error LNK2001: unresolved external symbol _D3D10CreateDeviceAndSwapChain@32 1>C:\Users\numerical25\Desktop\Intro ToDirectX\msdnTutorials\tutorial0\tutorial\Debug\tutorial.exe : fatal error LNK1120: 1 unresolved externals 下面是我的代码 // include the basic windows header file #include #include #include ID3D10Device* g_pd3dDevice; IDXGISwapChain* g_pSwapChain; // the WindowProc function prototype LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); bool InitDirect3D(HWND); // the entry point […]

如何将网格规范化为-1到1,然后从规范化网格恢复为原始网格?

我有一个X,Y,Z格式的网格模型。 让我们说。 Points *P; 在第一步中,我想将此网格规范化为(-1,-1,-1)到(1,1,1)。 这里标准化意味着将此网格拟合到(-1,-1,-1)到(1,1,1)的框中。 然后我对标准化网格进行一些处理,最后我想将尺寸恢复为与原始网格相似。 步骤1: P =原始网格尺寸; 步骤2: nP =归一化(P); //从(-1,-1,-1)到(1,1,1) 步骤3: cnP =用(nP)做某事,顶点数增加或减少。 步骤4:原始网格尺寸=恢复(cnP); //尺寸应与原始网格相同 我怎样才能做到这一点?

DirectX 9 HLSL与DirectX 10 HLSL:语法相同吗?

在过去一个月左右的时间里,我一直在努力学习DirectX。 所以我一直在DirectX 9和10之间来回混音。我在两者中看到的一个主要变化是如何在图形卡中处理矢量。 我注意到的一个重大变化是你如何让GPU识别你的结构。 在DirectX 9中,您可以定义灵活顶点格式。 您的典型设置如下: #define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE) 在DirectX 10中,我相信等效的是输入顶点描述: D3D10_INPUT_ELEMENT_DESC layout[] = { {“POSITION”,0,DXGI_FORMAT_R32G32B32_FLOAT, 0 , 0, D3D10_INPUT_PER_VERTEX_DATA, 0}, {“COLOR”,0,DXGI_FORMAT_R32G32B32A32_FLOAT, 0 , 12, D3D10_INPUT_PER_VERTEX_DATA, 0} }; 我在DirectX 10中注意到它更具描述性。 除此之外,还有一些重大变化,HLSL语法是否相同?

在C中使用DirectX编程?

在过去,我用C ++编程语言创建了DirectX应用程序,但是,我想知道是否可以使用C编程语言来完成这项工作。 谢谢。

使用矩阵,欧拉角和/或四元数进行旋转表示的优缺点是什么?

矩阵和欧拉角可能受到万向节锁的影响,但是使用一个而不是另一个的其他一些论点呢? 你认为DirectX有什么好感? 你在日常的C ++ / C / DirectX编程中使用了什么?

C语言中__uuidof的替代

我正在使用一个使用DirectX的C项目,我遇到了一个问题。 某些DX调用需要IID对象,通常使用__uuidof生成。 这需要做的一件事是创建一个RenderTargetView。 DirectX示例/教程执行此操作: ID3D11Texture2D* pBackBuffer = NULL; hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer ); 当我尝试在我的C代码中调用__uuidof时,出现编译错误: Error 19 error C4233: nonstandard extension used : ‘__uuidof’ keyword only supported in C++, not C DirectX有一个C接口,所以我想必须有办法做到这一点,但我不知道它会是什么。 谁知道?