
opengl
szfhy
这个作者很懒,什么都没留下…
展开
-
opengl保存并加载二进制program
通常情况下,opengl 的shader会被编译成program,然后再将program送到GPU里面去执行。如果我们的应用程序,每次都用源码编译shader,这样效率肯定是不高的,特别是在嵌入式平台上, 性能比较弱的场景下。其实我们可以稍微修改一下我们的程序结构,将编译完的program保存下来,下一次再用的时候,直接加载保存好的二进制program就好了,不必每次都编译,浪费时间。...原创 2019-12-09 21:07:47 · 2058 阅读 · 0 评论 -
opengl 显示UYVY422格式的数据--性能提升
前面我们分享过,opengl 显示UYVY422格式的数据我们显示的是视频,每帧数据都copy到GPU中去渲染,图像数据一般是挺大的,copy数据的快慢对整个性能的影响还是很大的。在opengl中copy frame data用到的API是glTexImage2D.其实上文中的用法不太好。每帧图像都要渲染,直接在GPU内部分配一个固定的Buffer,不用每帧都去申请,然后再释放。...原创 2019-11-01 21:50:10 · 2106 阅读 · 0 评论 -
opengl 显示UYVY422格式的数据
前面我们分享过如何显示YUV420P的图像,渲染YUV420P数据这此我们分享一下UYVY422格式图像的渲染方法,关于YUV420P和UYVY422的区别,网上有很多图例可以帮大家理解。直接看代码,代码是直接可以运行的。完整代码和资源文件,请访问:https://download.youkuaiyun.com/download/szfhy/11940081#include <st...原创 2019-10-29 21:10:31 · 3609 阅读 · 8 评论 -
opengl 使用shader对图像进行锐化处理
在之前的博客中opengl 在显示的YUV视频序列上画多个框如果我们要对输入的视频内容做一个锐化处理,或者其他特效,在shader中如何处理呢?完整code如下,看到code就明白其中的道理了,还是很简单的。// VideoPlayer.cpp : Defines the entry point for the console application.//#include &...原创 2019-06-16 16:39:49 · 3977 阅读 · 0 评论 -
opengl GLSL宏加载shader source
在opengl shader的编写过程中,常用的两种方式是:将shader 定义为字符串,然后使用glShaderSource加载static const char *vs = "attribute vec4 vertexIn;\n" "attribute vec2 textureIn;\n" "varying vec2 textureOut;\n" "void main(...原创 2019-06-08 15:03:04 · 2111 阅读 · 0 评论 -
opengl 保存渲染好的图像
在前面的文章中,我已经可以将媒体文件通过opengl来进行显示。opengl 在显示的YUV视频序列上画多个框opengl 显示BMP图像如果希望将blend,或者其他方法处理过之后的图像数据保存为图像文件,该如何做呢?这个时候我们就要用到glReadPixels函数,GPU渲染完数据在显存,回传内存的唯一方式glReadPixels函数,glReadPixels:读取一些像素。当...原创 2019-06-01 12:59:45 · 4898 阅读 · 6 评论 -
opengl 在显示的YUV视频序列上画多个框
在之前的文章中,opengl 在显示的图像视频上画多个框记录了如何将BMP图像通过opengl显示,并在显示画面上叠加图层。这一次我们输入一段YUV序列,利用Shader将YUV转换为RGB并显示,同时叠加多个图层上去。代码中调试遇到了一些问题,图像数据总是不能正常的显示,问题的详细解释如code中的注释所示。// VideoPlayer.cpp : Defines the...原创 2019-04-22 20:50:18 · 1637 阅读 · 0 评论 -
openGL shader学习总结
原文地址:https://blog.youkuaiyun.com/github_39611196/article/details/78416902着色器是运行在GPU上的小程序,着色器是一种C风格语言——GLSL。一、GLSLGLSL是为图形量身定制的,它为向量和矩阵运算提供了很大帮助。1、着色器的开头总是要声明版本,接着是输入和输出变量、uniform和main函数。main函数时每个着色器的入口...转载 2019-03-13 14:49:09 · 7441 阅读 · 0 评论 -
opengl 在显示的图像视频上画多个框
接上一篇,其实blend完成一次之后就相当于一个完整的层,在其时候继续调用glBlendfunc可以继续进行画框的操作,代码如下所示:#include "stdafx.h"#include <GLTools.h> // OpenGL toolkit#include <GLShaderManager.h>#ifdef __APPLE__#include &l...原创 2019-03-11 19:20:28 · 1881 阅读 · 0 评论 -
GPU处理图像 Shader的入门
原文链接:https://www.jianshu.com/p/8687a040eb48Shader着色器Shader出现在OpenGL ES 2.0中,允许创建自己的Shader。必须同时创建两个Shader,分别是Vertex shader和Fragment shader.Shader工具Shader会有很多坑,不过一些工具能够帮助你跳过这些坑GPUImage:https:/...转载 2019-03-15 16:56:50 · 1047 阅读 · 0 评论 -
opengl 在显示的图像视频上画框
在前面的博客中opengl 显示BMP图像,总结了如何使用opengl显示BMP图像,如何显示BMP图像序列。在做Object detection的一些工作中,经常会将检测到object用一个框标记出来,这次探索一下如何实现这个功能。这要使用Opengl的blend功能。void glBlendFunc(GLenum sfactor,GLenum dfactor);sfactor...原创 2019-03-09 11:24:14 · 2637 阅读 · 1 评论 -
opengl 显示BMP图像
本想系统的学习一下OPENGL,最近几天跟蓝皮书的接触效果不太好,索性还是按照自己的想法来。先显示一张图片吧,已经调试过的代码如下:#include <GLTools.h> // OpenGL toolkit#include <GLShaderManager.h>#ifdef __APPLE__#include <glut/glut.h>#e...原创 2019-03-05 19:52:00 · 3779 阅读 · 2 评论