gpt4 book ai didi

opengl - 如何插入顶点法线?

转载 作者:行者123 更新时间:2023-12-04 21:58:32 25 4
gpt4 key购买 nike

我正在尝试使用行进立方体算法渲染带有 Gouraud 着色的 3D 模型(来自 volvis.org)。到目前为止,我有每个顶点的法线:

GetNormalForVertex(vertex &b, vertex &a, vertex &c) {
u.X = a.X - b.X;
u.Y = a.Y - b.Y;
u.Z = a.Z - b.Z;
v.X = c.X - b.X;
v.Y = c.Y - b.Y;
v.Z = c.Z - b.Z;

return Cross(u,v);
}

渲染时我可以看到一个漂亮的平面阴影。
现在,据我所知,我需要对这些顶点法线进行插值以在交点处找到法线以获得 Gouraud 着色。我怎么能插入顶点法线?

最佳答案

首先,您不是在计算顶点法线。您正在计算面法线。这是计算顶点法线过程中的第 1 步。

下一步不是插入任何内容。您要做的是为连接到顶点的每个面计算(非标准化)面法线。然后将它们加在一起并标准化结果。那是顶点法线。

如何确定哪些面附加到顶点是另一回事。在您的情况下,因为您是通过行进多维数据集构建此数据,所以从相邻多维数据集生成或检索三角形应该不会太困难。但是,如果您通过生成步骤并且只有一袋三角形,那么您将需要一个合适的网格拓扑数据结构。 Winged-edgeQuad-edge都是不错的选择。

关于opengl - 如何插入顶点法线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624736/

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