gpt4 book ai didi

opengl-es - OpenGL ES 中使用的 3d 立方体的法线是什么?

转载 作者:行者123 更新时间:2023-12-02 22:10:14 24 4
gpt4 key购买 nike

我有一个立方体定义为:

  float vertices[] = {
//Vertices according to faces
-1.0f, -1.0f, 1.0f, //Vertex 0
1.0f, -1.0f, 1.0f, //v1
-1.0f, 1.0f, 1.0f, //v2
1.0f, 1.0f, 1.0f, //v3

1.0f, -1.0f, 1.0f, //...
1.0f, -1.0f, -1.0f,
1.0f, 1.0f, 1.0f,
1.0f, 1.0f, -1.0f,

1.0f, -1.0f, -1.0f,
-1.0f, -1.0f, -1.0f,
1.0f, 1.0f, -1.0f,
-1.0f, 1.0f, -1.0f,

-1.0f, -1.0f, -1.0f,
-1.0f, -1.0f, 1.0f,
-1.0f, 1.0f, -1.0f,
-1.0f, 1.0f, 1.0f,

-1.0f, -1.0f, -1.0f,
1.0f, -1.0f, -1.0f,
-1.0f, -1.0f, 1.0f,
1.0f, -1.0f, 1.0f,

-1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f, -1.0f,
1.0f, 1.0f, -1.0f,
};

这个立方体的法线是多少?我需要法线的实际值。

我们需要 6 个还是 12 个法线?由于 OpenGL ES 仅使用三角形,这意味着我们需要 12 个法线,但我可能是错的。

最佳答案

法线是按顶点指定的,并且由于共享每个顶点的三个面的法线是正交的,因此通过指定仅具有 8 个顶点的立方体并对三个面法线求平均值来得到一些看起来非常奇怪的结果顶点法线。它将被着色为球体,但形状像立方体。

您需要指定 24 个顶点,因此绘制立方体的每个面时不会与任何其他面共享顶点。

至于值(value)观,这非常简单。如果我们假设 x 向右增加,y 随着向上而增加,z 随着向前移动而增加,则右侧的法线为 (1, 0, 0),左侧的法线为 (-1, 0, 0),顶边是(0,1,0),等等

总结一下:不要画立方体,而是画 6 个恰好有重合顶点的四边形

关于opengl-es - OpenGL ES 中使用的 3d 立方体的法线是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959654/

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