gpt4 book ai didi

algorithm - 如何获得每个有效点的法线向量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:32:53 25 4
gpt4 key购买 nike

float pts[N][4]={{x1,y1,z1,v1},{x2,y2,z2,v2},...,{xN,yN,zN,vN}};
//in viewsight(0,0)-(w,h);
//N==w*h
//if pts[n][3]==0 then pts[n] is invalid

如何计算每个有效点的法向量?

pts是Point-cloud-data中的点,在大小为(w,h)的viewsight中可见;

像这样:

p11,p12,p13...p1w,
p21,p22,p23...p2w,
...
...
ph1,ph2,ph3...phw,

每个点都与它们的邻居相关联,并一起为我们生成一个表面。

pts 一个接一个地紧密排列,行和列。而我们的任务是找到一种方法来尽可能准确地评估每个点朝向我们视野的法向量。

我正在尝试实时执行此操作,因为 pts 是实时生成的。例如一次计算 1024x1024 点。以前是否有人发布过解决方案?

最佳答案

通常,曲面上顶点的法线计算为相邻多边形法向量的平均值。请参阅:http://www.opengl-redbook.com/appendices/AppH.pdf

在这种情况下,对于具有以下邻居的顶点 p55:

p44 p45 p46
p54 p55 p56
p64 p65 p66

你可以找到每个三角形的法线,

n1 = (p55 - p44) x (p55 - p45)
n2 = (p55 - p45) x (p55 - p46)
...

确保保持矢量的方向,使所有法线都指向同一方向(朝向观察者)。从那里您只需对所有向量进行归一化,然后取它们的平均值。

关于algorithm - 如何获得每个有效点的法线向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201950/

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