OpenGL学习笔记三

2021-02-24  本文已影响0人  MxlZlh
渲染过程中可能产生的问题

解决⽅案

ZFighting闪烁问题

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

解决方案

裁剪

//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);

上一篇下一篇

猜你喜欢

热点阅读