标签: directx

在 3D 游戏中模拟鼠标移动?

嗨,我在 CodeBlocks IDE 中使用 C++ 和 OpenCV 制作了一个人机界面来使用手指控制鼠标 http://www.youtube.com/watch?v=-q5aXTg0pVE 我想在像荣誉勋章这样的 3D 游戏中使用它

首先我使用 SetCursorPos(x,y) 它不起作用所以我切换到 SendInput 和 mouse_event。他们确实解决了角色开始指向所有随机方向并自行改变方向的错误。

我应该使用directinput,因为游戏使用directx。如果是这样怎么办?我已经尝试了很多教程,但都在谈论如何从鼠标获取数据,而不是如何插入鼠标流我使用了绝对定位和相对定位,但都失败了角色表现得很奇怪

c++ directx 3d mouse

1
推荐指数
1
解决办法
3470
查看次数

OpenGL和Directx可以完全用软件模拟吗?

有些虚拟机根本不显示卡。我想知道OpenGL和DirectX是否可以完全由软件模拟?

opengl directx

1
推荐指数
1
解决办法
1617
查看次数

当我们调用 IUnknown::Release 时会发生什么

例如,在以下代码中:

ID3D11Texture2D* texture2d; 

    HRESULT result = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*) &texture2d);//mSwapChain is a swap chain, as obvious

    result = mDevice->CreateRenderTargetView(texture2d, 0, &mTargetView);

    texture2d->Release();
Run Code Online (Sandbox Code Playgroud)

我真的很困惑在调用 release 之后交换链中的后台缓冲区会发生什么。目前我认为可能发生的是,指针被释放,而不会影响后台缓冲区本身。不过,我需要一个更详细的答案,因为我很难理解这个概念。

directx directx-11

1
推荐指数
1
解决办法
475
查看次数

3D 屏幕空间光线投射/拾取 DirectX9

我需要根据特定深度(用于光线投射)将 2D 鼠标坐标转换为 3D 世界坐标。我没有直接在 C++ 中使用 DirectX,我使用的是专有语言,但是如果你用 C++ 或伪代码(首选 C++)给我答案,我可以转换它。

我可以访问世界矩阵、视图矩阵和投影矩阵以及各种矩阵操作功能。

如果有必要将 vector4 乘以 matrix4,那么我唯一可以使用 vector4 和 matrix4 的函数是transformVector4(vector4Source,matrix4Source). 如果这很重要,我不确定它将它们乘以哪个顺序。

任何帮助将不胜感激:) 我已经为此工作了几个小时,但我没有得到 3D 数学......

c++ directx 3d matrix raycasting

1
推荐指数
1
解决办法
4058
查看次数

E_INVALIDARG 一个或多个参数无效。- 创建设备

我有一个 d3dDevice:

ComPtr<ID3D11Device1>d3dDevice;
Run Code Online (Sandbox Code Playgroud)

我在这里将它用于 dxgiDevice:

    ComPtr<IDXGIDevice3> dxgiDevice2;

    HRESULT hr;

    hr = d3dDevice.As( &dxgiDevice2 ); // S_OK

    hr = d2dFactory->CreateDevice( dxgiDevice2.Get(), d2dDevice.GetAddressOf() ); // E_INVALIDARG One or more arguments are invalid

    hr = d2dDevice->CreateDeviceContext(
        D2D1_DEVICE_CONTEXT_OPTIONS_NONE,
        &d2dDeviceContext
        );
Run Code Online (Sandbox Code Playgroud)

为什么在运行时会发生此错误?

http://msdn.microsoft.com/en-us/library/windows/desktop/dn280482(v=vs.85).aspx

与问题相关的全部代码:http : //pastebin.com/P7Rs9xdh

c++ directx windows-8

1
推荐指数
1
解决办法
5523
查看次数

如何创建圆碰撞检测?C++

嗨,我想知道如何创建一个也可以作为传感器的圆形碰撞.例如,当玩家进入敌人的圆半径时,敌人将开始追逐玩家.根据我的尝试,我只使用碰撞盒RECT SpriteRect.但这对于圈子来说不够准确.我正在考虑使用矢量,D3DXVECTOR2但我不擅长转换.请帮助我如何实现这一目标.. 在此输入图像描述

c++ directx 2d transformation vector-graphics

1
推荐指数
1
解决办法
2034
查看次数

在地幔,dx和ogl上的表现

因此,最近所有关于3D图形的新API的骚动,据说可以大量加速图形,我想知道为什么以前没有这样做过.旧方式和新方式之间有什么不同?

我想知道它是如何实现的,甚至可以概述它是如何工作的从GPU到驱动程序到DX或OGL的API.

opengl directx 3d graphics mantle

1
推荐指数
1
解决办法
171
查看次数

DirectShow SDK 与 DirectX SDK

我想在 WINdows 10 下开发一个桌面应用程序来操作 USB 摄像头并捕获帧以进行图像处理。我想留在 Windows 框架内,但有很多选择。困扰我的是选择正确的技术。如果在 W10 开发中,DirectShow SDK 和 DirectX SDK 之间有什么区别?

directx directshow video-streaming directshow.net

1
推荐指数
1
解决办法
1255
查看次数

为什么 D2D1CreateFactory 在程序集中发送错误消息

到目前为止,我有一个程序,它所做的只是尝试创建一个,D2D1Factory但我收到错误消息E_NOINTERFACE,我认为我是正确的,IID_ID2D1Factory并且我已经在多个地方多次检查过。有人可以告诉我为什么它失败和/或如何修复它。

我的代码

include externals.asm
include wincons.asm
include vtable.asm
.data
include variables.asm
;include pic.asm
include riid.asm
.code
start proc frame
    DB 48h
    push rbx
    .pushreg rbx
    push r13
    .pushreg r13
    push rbp
    .pushreg rbp
    sub rsp, 80
    .allocstack 80
    lea rbp, [rsp + 80]
    .setframe rbp, 80
    .endprolog
    mov rcx, D2D1_FACTORY_TYPE_SINGLE_THREADED
    lea rdx, IID_ID2D1Factory
    mov r8, D2D1_DEBUG_LEVEL_NONE
    lea r9, ID2D1Factory
    call __imp_D2D1CreateFactory
drawscreen:

    jnc drawscreen
    xor rcx, rcx
    call __imp_ExitProcess
    mov rsp, rbp
    pop rbp …
Run Code Online (Sandbox Code Playgroud)

windows directx assembly winapi x86-64

1
推荐指数
1
解决办法
118
查看次数

从子 COM 对象获取父 COM 对象

ID3D12GraphicsCommandList接口由继承ID3D12CommandList。那么,如果我有一个ID3D12GraphicsCommandList对象,我如何获得相应的ID3D12CommandList对象?

  1. 排版会起作用吗?
    ID3D12GraphicsCommandList *gcl = ...;
    ID3D12CommandList *cl = (ID3D12CommandList*)gcl;
Run Code Online (Sandbox Code Playgroud)
  1. QueryInterface 会工作吗?
    ID3D12GraphicsCommandList *gcl = ...;
    ID3D12CommandList *cl;
    HRESULT result = ID3D12GraphicsCommandList_QueryInterface(gcl,
                                                              &IID_ID3D12CommandList,
                                                              (void**)&cl);
Run Code Online (Sandbox Code Playgroud)
  1. 我需要做其他事情吗?

谢谢。

c com directx winapi direct3d12

1
推荐指数
1
解决办法
269
查看次数