使用 OpenGL ES 绘制轮廓

发布于 2024-12-10 14:31:16 字数 309 浏览 0 评论 0原文

我发现或尝试在 OpenGL 中渲染轮廓的每一种技术都使用了一些在 OpenGL ES 上不可用的函数...

实际上我能做的就是将深度掩码设置为 false,将对象绘制为 3 像素宽的线框,重新启用深度掩码,然后绘制我的对象。它对我不起作用,因为它只概述了我的对象的外部部分,而不是内部结构。

下图显示了两个轮廓,左侧是正确的轮廓,右侧是我得到的轮廓。

在此处输入图像描述

那么,有人可以指导我使用 OpenGL ES 上不可用的技术吗?

Every technique that I've found or tried to render outline in OpenGL uses some function that is not avaliable on OpenGL ES...

Actually what I could do is set depthMask to false, draw the object as a 3 pixels wide line wireframe, reenable the depthMask and then drawing my object. It doesnt work for me because it outline only the external parts of my object, not the internals.

The following image shows two outlines, the left one is a correct outline, the right one is what I got.

enter image description here

So, can someone direct me to a technique that doesn't is avaliable on OpenGL ES?

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

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

发布评论

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

评论(1

墨落画卷 2024-12-17 14:31:16

有一段时间没有做过其中一项了,但我想你已经快完成了!我的建议是:

  • 保持深度蒙版启用,但翻转背面剔除以仅渲染对象的“内部”。
  • 使用该着色器绘制网格,该着色器将所有顶点沿着其法线稍微推出并作为纯色(您的轮廓颜色,可能是黑色)。确保您绘制的是实心三角形而不仅仅是 GL_LINES。
  • 将背面剔除再次翻转到正常状态,然后像往常一样重新渲染网格。

结果是,轮廓仅在网格上三角形开始远离相机的点周围可见。这将为您提供一些漂亮、简单的轮廓,围绕鼻子、下巴、嘴唇和其他内部细节。

Haven't done one of these for a while, but I think you're almost there! What I would recommend is this:

  • Keep depthMask enabled, but flip your backface culling to only render the "inside" of the object.
  • Draw the mesh with that shader that pushes all the verts out along their normals slightly and as a solid color (your outline color, probably black). Make sure that you're drawing solid triangles and not just GL_LINES.
  • Flip the backface culling back to normal again and re-render the mesh like usual.

The result is that the outlines will only be visible around the points on your mesh where the triangles start to turn away from the camera. This gives you some nice, simple outlines around things like noses, chins, lips, and other internal details.

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