gpt4 book ai didi

opengl - 使用 GPU 查询点 epsilon-接近点云中的剖切面

转载 作者:行者123 更新时间:2023-12-04 19:02:48 24 4
gpt4 key购买 nike

我正在尝试使用 GPU 功能解决当前问题:“给定一个点云 P 和一个由点和法线 (Pp, Np) 描述的定向平面,返回云中距离等于或小于 EPSILON 的点从飞机上”。

与我的一位同事交谈后,我得出了以下解决方案:

1) 准备一个带有附加纹理坐标的点的顶点缓冲区,以便每个点都有不同的顶点坐标
2) 将投影状态设置为正交
3) 旋转网格,使平面的法线与 -z 轴对齐并偏移,使 x,y,z=0 对应于 Pp
4) 设置 z 剪裁平面,使得 z:[-EPSILON;+EPSILON]
5) 渲染到纹理
6) 从显卡中检索纹理
7) 从显卡读取纹理,查看渲染了哪些点(根据它们的索引),即在所需距离范围内的点。

现在的问题如下:
q1) 我需要打开一个窗口框架才能进行这样的操作吗?我在 MATLAB 中工作并调用 MEX-C++。凭经验我知道,一打开新的框架,整个套装就崩溃的很惨!
q2) 给 GLPoint 一个纹理坐标的原语是什么?
q3)我不太清楚如何实现对纹理的渲染?任何引用,教程都会很棒......
q4) 你将如何从卡片中检索这个纹理?再次,任何引用,教程都会很棒......

我的日程安排很紧,因此,如果您能指出我应该学习的技术的名称,而不是像某人所做的那样指出 GLSL 规范文档和 OpenGL API,那就太好了。这些对我的问题的回答有点过于模糊。

非常感谢您的任何评论。

附言
还要注意,如果可能的话,我宁愿不使用任何像 CUDA 这样的资源,因此,得到一些使用
尽可能多的 OpenGL 元素,而无需我编写新的着色器。

注意:交叉张贴在
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=245911#Post245911

最佳答案

这很简单:
设 n 为平面的法线,x 为点。

n_u = n/norm(n)         //this is a normal vector of unit length
d = scalarprod(n,x) //this is the distance of the plane to the origin

for each point p_i
d_i = abs(scalarprod(p_i,n) - d) //this is the distance of the point to the plane

显然,“scalarprod”的意思是“标量积”,“abs”的意思是“绝对值”。
如果您想知道为什么只阅读维基百科上关于标量产品的文章。

关于opengl - 使用 GPU 查询点 epsilon-接近点云中的剖切面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com