美文网首页
OpenGL学习笔记三

OpenGL学习笔记三

作者: MxlZlh | 来源:发表于2021-02-24 18:16 被阅读0次
    渲染过程中可能产生的问题

    解决⽅案

    • 油画法
    • 正背面剔除
    • 深度测试

    ZFighting闪烁问题

    为什么会出现 ZFighting 闪烁问题?
    答:深度相差非常⼩的情况下会出现。

    解决方案

    • Polygon Offset ⽅式解决
      启⽤Polygon Offset glEnable(GL_POLYGON_OFFSET_FILL)
      关闭Polygon Offset glDisable(GL_POLYGON_OFFSET_FILL)

    裁剪

    //1 开启裁剪测试 glEnable(GL_SCISSOR_TEST);
    //2.关闭裁剪测试 glDisable(GL_SCISSOR_TEST);
    //3.指定裁剪窗⼝
    void glScissor(Glint x,Glint y,GLSize width,GLSize height);
    x,y:指定裁剪框左下角位置; width , height:指定裁剪尺⼨

    混合

    glEnable(GL_BlEND);

    ⽬标颜色:已经存储在颜⾊缓存区的颜⾊值
    源颜色:作为当前渲染命令结果进入颜⾊缓存区的颜⾊值 当混合功能被启动时,源颜⾊和⽬标颜⾊的组合方式是混合⽅方程式控制的。在默认情况下,
    混合⽅程式如下所示:
    Cf = (Cs * S) + (Cd * D)
    Cf :最终计算参数的颜色
    Cs : 源颜⾊
    Cd :⽬标颜色
    S:源混合因⼦子
    D:⽬标混合因子

    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

    相关文章

      网友评论

          本文标题:OpenGL学习笔记三

          本文链接:https://www.haomeiwen.com/subject/hinsfltx.html