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 坐标处渲染顶点的主要内容,如果未能解决你的问题,请参考以下文章
Unity Shaders and Effects Cookbook (7-1) 在Surface Shader 中 访问 顶点颜色