gpt4 book ai didi

opengl - 使用 GL_TRIANGLES 绑定(bind)纹理

转载 作者:行者123 更新时间:2023-12-04 00:38:49 27 4
gpt4 key购买 nike

过去,我曾将纹理绑定(bind)到 QUADS,然后用它渲染它们。如果我有一个动画,其中我必须将图像的特定部分绑定(bind)到四边形,那么我只需要使用通用坐标 [0..1],仅此而已。

问题是现在我再次尝试使用 openGL,我已经看到 GL_QUADS 已被弃用,现在我看到的所有内容都是用 TRIANGLES 渲染的。我的问题是我不知道如何使用三角形绑定(bind)纹理。

谢谢

最佳答案

这是一个示例,说明如何将纹理绑定(bind)到 GL_TRIANGLE_STRIP

float verts[] = {
0, 0,
w, 0,
0, h,
w, h,
};

const float texcoord[] = {
u1 + 0 , v1 + v2,
u1 + u2, v1 + v2,
u1 + 0 , 0 + v2,
u1 + u2, 0 + v2
};

/*
1. uv(0,1) +-----+ 2. uv(1,1)
| /|
| / |
| / |
| / |
|/ |
3. uv(0,0) +-----+ 4. uv(1,0)
*/

你可以像这样简单地使用它

glEnable(GL_TEXTURE_2D);

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glTexCoordPointer(2, GL_FLOAT, 0, tex_coord);
glVertexPointer(2, GL_FLOAT, 0, verts);

glBindTexture(GL_TEXTURE_2D, texture_id);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

glDisable(GL_TEXTURE_2D);

关于opengl - 使用 GL_TRIANGLES 绑定(bind)纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21811786/

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