如何“推” OpenGL ES 中深度缓冲区向后退了一点?

发布于 2024-11-04 01:29:47 字数 279 浏览 3 评论 0原文

我正在尝试使用以下方法绘制 3D 对象的轮廓:

  1. 绘制实际对象

  2. 绘制轮廓(多边形的 GL_LINEs),但有点向后。

然而,使用“将其向后平移一点”的方法在 3D 环境中效果不太好,因为投影矩阵会稍微倾斜一些。

有没有办法改变投影矩阵,以便将东西放在后面一点?我尝试更改投影矩阵的 z 部分,但现在才想起投影矩阵并不像普通矩阵那样工作。

我想 glDepthTestOffset 的存在可以解决所有这些问题。

I'm trying to draw an outline of a 3D object by using this method:

  1. draw the actual object

  2. draw the outlines (GL_LINEs of the polygons), but a bit to the back.

However, using a "translate this a bit to the back" approach doesn't work too well on a 3D environment, because the projection matrix tilts things a little bit.

Is there a way to alter the projection matrix so that it puts things a little bit further down the back? I tried altering the z part of the projection matrix, but only remembered now that the projection matrix don't really work like normal matrices.

I suppose the existence of glDepthTestOffset would solve all of these problems.

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

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

发布评论

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

评论(1

清风不识月 2024-11-11 01:29:47

您可以使用 glPolygonOffset 来根据对象偏移轮廓。

You can use glPolygonOffset to offset your outlines against the object.

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