gpt4 book ai didi

opengl - 使用 OpenGL 渲染轮廓/剪影

转载 作者:行者123 更新时间:2023-12-04 20:52:29 28 4
gpt4 key购买 nike

我知道有几种技术可以实现这一点,但它们似乎都不够。

  • 使用 sobel/laplace 过滤器无法找到所有正确的边缘(并找到不需要的边缘),速度很慢,并且无法控制轮廓宽度。
  • 我现在确定的是首先用纯色渲染我的物体的背面,并且比实际物体大一点。结果看起来不错,但我真的希望我的轮廓具有恒定的宽度。
  • 我已经尝试用粗线框线渲染对象的背面。给我一个恒定的轮廓宽度,但不推荐使用线宽,如果轮廓突然改变方向(例如在立方体上),则会产生渲染伪影并留下间隙。我还没有尝试使用第三个渲染 channel 为每个顶点绘制一个线框线大小的点,因为这种技术存在其他问题。

  • 有任何想法吗?

    编辑 我什至自己使用几何着色器寻找边缘,如 http://prideout.net/blog/?p=54 中所述。 ,但它与线框技术存在相同的差距。

    编辑通过禁用 GL_DEPTH_TEST,我能够使用线框技术消除渲染伪影。画轮廓的时候。不幸的是,我也丢失了重叠对象的轮廓......

    我的目标是获得他们在 Dragons Lair 3 游戏中对角色使用的相同效果。有谁知道他们是怎么做到的?

    最佳答案

    如果您在进行真正的边缘检测,我发现您可以使用卷积 LoG(拉普拉斯超过高斯)5x5 内核获得相当不错的结果,应用于深度缓冲区并混合在渲染对象上(可能具有不错的 FSAA)。您需要在片段着色器中进行一些调整以钳制混合轮廓,但结果很好。 (这是你真正想要的问题,顺便说一句)

    注意:

    1)拉普拉斯过滤和日志过滤是不同的东西,产生不同的结果

    2)如果你应用卷积在深度缓冲区 ,而不是渲染的图像,您最终会得到完全不同的结果,此外,如果需要轮廓宽度控制,可以应用扩张过滤器,然后应用选择性腐 eclipse channel ,这样您最终会得到一个紧密的渲染匹配用记号笔绘制的手绘草图,您可以很好地控制 Nib 大小,但需要额外支付 2 次

    关于opengl - 使用 OpenGL 渲染轮廓/剪影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8835453/

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