OpenGL |在 UV 坐标处渲染顶点

Posted

技术标签:

【中文标题】OpenGL |在 UV 坐标处渲染顶点【英文标题】:OpenGL | Render Vertex at UV coordinate 【发布时间】:2017-01-30 14:47:17 【问题描述】:

我正在使用 OpenGL,我需要在顶点的 UV 坐标处将 3D 模型的顶点渲染到 FBO。为此,我首先必须将 UV 坐标空间转换为屏幕空间。

我得出的结论是:

uv.x * 2 - 1
uv.y * 2 - 1

……应该可以解决问题。

我在我的顶点着色器中使用它来将顶点放置在那些新位置。结果如下所示:

…虽然它应该看起来像这样:

好像放大了。我不知道问题出在哪里。

【问题讨论】:

欢迎来到 ***。为什么不能直接包含图像?您应该可以使用 SO 编辑器的图像上传功能来放置它们。 新帐户不允许我直接添加它们 啊,我没有意识到这一点。 我已代表您嵌入了图像。祝你好运。 谢谢gfullam 【参考方案1】:

您确定您的屏幕空间跨度为 -1 到 1 而不是 -0.5 到 0.5?

尝试只从 x 和 y 中减去 0.5。

【讨论】:

我去试试 是的,OpenGL 空间从 -1 到 1【参考方案2】:

修复了问题,我没有调用 gl viewport,这是坐标系没有应用于 fbo 纹理大小的原因

【讨论】:

以上是关于OpenGL |在 UV 坐标处渲染顶点的主要内容,如果未能解决你的问题,请参考以下文章

opengl 高级技巧

Unity Shaders and Effects Cookbook (7-1) 在Surface Shader 中 访问 顶点颜色

opengl vbo建议[关闭]

OpenGL

OpenGL

优化流媒体vbo openg