![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenGL
文章平均质量分 82
jianminfly
这个作者很懒,什么都没留下…
展开
-
记一次因纹理缩放导致OpenGL对连续视频帧添加等比例分屏效果时,只能输出第一帧的分屏画面问题的解决过程
一、背景最近抖音的分屏效果很火,于是打算基于OpenGL的片元着色器来开发一个分屏的滤镜。开发环境:Windows10OpenGL版本:4.6二、问题开发了五种分屏,分别是二、三、四、六、九分屏,其中,二、三、六均没有问题,而四和六对图片处理没问题,但是对连续视频帧处理时,会出现后续的帧无法正常输出的问题,如下为了便于对比,把出问题的(上半部)和不出问题的(下半部)放在同一个视口上了。可以看到上下显示的内容不一样,但是我输入的纹理是一样的!三、解决过程思路如下:1.非缩放分屏,即裁剪形式的原创 2021-01-07 16:51:12 · 431 阅读 · 1 评论 -
记一次win7(OpenGL3.3)上顶点着色器的bug导致画面只出现四分之一的问题解决过程
一、背景将一个正常在win10(OpenGL4.6)上运行的程序放到win7(OpenGL3.3)上后,出现如下的只显示四分之一画面的异常现象二、解决过程1.将一个简单的OpenGL demo放到OpenGL3.3上运行,可以正常显示画面,于是把代码移植到软件的渲染过程中,可以显示画面,如下图,说明该问题至少是个可以解决的问题2.依次将顶点设置代码、着色器代码、纹理上传代码、渲染代码恢复到出问题的版本,定位到问题出在了顶点着色器代码中,我的顶点着色器代码如下#version 130in vec原创 2020-11-13 20:44:48 · 978 阅读 · 0 评论 -
opengl纹理缩放的原理
一、背景用OpenGL处理3dlut映射的时候,lut滤镜数据输入到纹理后,不经过任何处理直接输出,图像两边会有错误的像素点出现,如下(更换了图片,以便验证结果的一般性)如上图,在边缘出现了模糊的颜色二、原因在我的测试demo中有以下代码设置纹理的属性// 当纹理坐标超出范围时,重复当前纹理glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE原创 2020-07-14 10:46:18 · 1892 阅读 · 0 评论 -
图像处理中不注意内存对齐pitch的后果
1.首先了解pitch的概念pitch指的是每一行图像数据的字节数,比如一个宽100pix的图片用rgb格式存储,那pitch一般会等于100*3,但是,如果宽不为偶数,pitch可能不会等于width * <每个像素的字节数>,而是先把width取一个最近的偶数值,然后计算。类似ceil(width) * <每个像素的字节数>。—https://blog.csdn.net/hulingerlin/article/details/821205522.不注意pitch的后果假设原创 2020-05-28 10:59:45 · 1538 阅读 · 0 评论 -
OpenGL抠像之后用CPU与背景混合的操作
1.首先要明白OpenGL自身的混合操作//打开OpenGL混合,并设置为预乘模式混合glEnable(GL_BLEND);glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);while (!glfwWindowShouldClose(window)){ // input // ----- processInput(window); // render // ------ glClearColor(0.2f, 0原创 2020-05-19 22:11:51 · 426 阅读 · 0 评论 -
OpenGL绿幕抠图原理
1。计算当前像素点RGB值对应的HSV值2。设定HSV三个分量的权重,根据权重计算当前像素点的HSV值到给定背景色的HSV值的欧式距离3。将欧式距离用smoothstep做平滑,0.5以下的一定要滤掉4。将原图和背景图用平滑值混合...原创 2020-04-28 20:37:41 · 2753 阅读 · 2 评论