Direct3D 11 拾取

本文将引导您通过一系列步骤来理解Direct3D11拾取操作中mesh接口缺失的问题,并详细介绍如何进行三维对象的选择。在Direct3D11中,拾取操作比Direct3D10复杂,因为mesh接口不再可用,需要手动实现从屏幕空间到视图空间的转换,然后到世界空间的转换,最后遍历每个三角形以找到与射线相交的物体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ID3DX10Mesh::Intersect

dx10里面有intersect 函数,

可是在dx11里面呢相应的替代函数在哪里?


http://www.braynzarsoft.net/index.php?p=D3D11PICKING

介绍

我们将学习如何选择对象的Direct3D 11 拾取

D3D11的时间比在D3D10拾取一个额外的步骤。这是因为 mesh 接口不是D3D11可用

Picking a 3D Object

To pick a 3D object, we will need to follow a series of steps:

  1. Get a 2D vector (x, y) of the Position of the mouse cursor in screen space (the client window) (in pixels).
  2. Transform the 2D vector representing the mouses position in screen space to a 3D vector (x, y, z) representing a ray in view space.
  3. Transform the view space ray into a world space ray.
  4. Transform the model, or objects vertex positions from model (or local) space to world space.
  5. Loop through each of the triangles in the model to find out which (if any) triangle the ray intersects with. (This is the step we were able to skip in D3D10 by using a method provided by the mesh interface.)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值