加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – DirectX / SharpDX中的“glReadPixels”之类的函数

发布时间:2020-12-15 04:24:35 所属栏目:百科 来源:网络整理
导读:我正在寻找一种在鼠标点读取像素颜色的方法.在OpenGL中,它是在绘制场景(或部分场景)后调用函数“glReadPixels”完成的.我想在后台制作一个简单的颜色拾取程序,用于识别3D空间中的形状/线条. 那么,在SharpDX(DirectX10 / DirectX11)中是否有相同的方法/功能/
我正在寻找一种在鼠标点读取像素颜色的方法.在OpenGL中,它是在绘制场景(或部分场景)后调用函数“glReadPixels”完成的.我想在后台制作一个简单的颜色拾取程序,用于识别3D空间中的形状/线条.

那么,在SharpDX(DirectX10 / DirectX11)中是否有相同的方法/功能/建议?

解决方法

使用Direct3D11完全可以:只需按照以下步骤操作:

>使用DeviceContext.CopySubResourceRegion将部件从源纹理复制到分段纹理(要回读的像素区域的大小,格式相同,但使用ResourceUsage.Staging)
>使用Device.Map/UnMap从此分段纹理中检索像素.

关于网络的这个主题有很多讨论(例如:“Reading one pixel from texture to CPU in DX11”)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读