我应该为精灵创建什么样的顶点?

发布于 2024-11-28 20:08:01 字数 554 浏览 1 评论 0原文

我正在使用 OpenGL 和 C 创建 2D 渲染引擎。我正在学习 VBO 以及如何使用它们进行非立即模式渲染。我一直在阅读: http://www.opengl.org/wiki/Vertex_Buffer_Object

教程建议如下:

struct MyVertex
{
float x, y, z;        //Vertex
float nx, ny, nz;     //Normal
float s0, t0;         //Texcoord0
float s1, t1;         //Texcoord1
float s2, t2;         //Texcoord2
float padding[4];
};

我不需要法线值,并且我不确定单个顶点如何或为何有三个纹理坐标。

我认为我需要的只是 Vertex (XYZ) 和一个 Texcoord (s0, t0 <-- 仍然不知道这些意味着什么)。

I am using OpenGL and C to create a 2D rendering engine. I am learning about VBOs and how to use them for non-immediate mode rendering. I have been reading from: http://www.opengl.org/wiki/Vertex_Buffer_Object

The tutorial suggests the following:

struct MyVertex
{
float x, y, z;        //Vertex
float nx, ny, nz;     //Normal
float s0, t0;         //Texcoord0
float s1, t1;         //Texcoord1
float s2, t2;         //Texcoord2
float padding[4];
};

I do not need the Normal values, and I am unsure how or why there are three texture coordinates for a single vertex.

I think all I should need is Vertex (XYZ), and one Texcoord (s0, t0 <-- still do not know what those mean).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小嗲 2024-12-05 20:08:01

这只不过是一个例子而已。不要将该顶点格式视为福音,甚至是建议。事实上,在任何严肃的应用程序中,人们都不会使用这么多的浮点数。

无论如何,如果您想删除这些属性,那也可以。由你决定。

至于为什么需要三组纹理坐标,那是因为有三组纹理映射到表面。这样做是有原因的,但在实践中相当罕见。

此外,OpenGL 有一种不同的方式来命名其纹理坐标。 OpenGL 使用“ST”,而不是大多数其他事物的“UV”方式。

That was nothing more than an example; don't take that vertex format as gospel or even a suggestion. Indeed, in any serious application, one wouldn't use so many floats.

In any case, if you want to remove those attributes, that is fine. It's up to you.

As to why one might need 3 sets of texture coordinates, it would be because one has three sets of texture mappings to the surface. There are reasons for doing things like that, but it's fairly rare in practice.

Also, OpenGL has a different way of naming its texture coordinates. Rather than "UV" the way most other things do it, OpenGL uses "ST".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文