OpenGL渲染视频步骤--面试用

一 创建一个显卡可执行程序

有两种着色器Shader:顶点着色器、片元着色器。用的是GLSL语言,运行在显卡上的语言。

创建着色器,编译着色器。CreateShader、CompileShader。

创建程序,附加着色器,连接程序,使用程序。

CreateProgram、AttachShader、LinkProgram、UseProgram。

图是电子书里面的。

(区别?)

 二 上下文环境搭建

Window、Linux、Android的上下文环境搭建,都是使用EGL。

获得一个display,配置,创建context,创建surface。

gEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);ret = eglChooseConfig(gEglDisplay, attribs, configs, num_configs,&numConfigs);//参3是共享OpenGL资源,为了效率会多线程渲染
mEglContext = eglCreateContext(mEglDisplay, mEglConfig, EGL_NO_CONTEXT, contextAttributes);//起新线程执行渲染工作,为该线程绑定Surface、Context。
eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)

三 OpenGL纹理渲染

1 规定窗口大小,

2 使用显卡绘制程序,useprogram,

3 设置物体坐标,(向右增长、向上增长、范围是[-1,1]),将当前的顶点属性与顶点缓冲对象(VBO)关联起来。

4 设置OpenGL二维纹理坐标,(向右增长、向上增长、范围是[0,1])

5 将纹理对象传递给片元着色器。

6 设置纹理属性,绘制。

//后面标的数字是步骤
glViewport(0, 0, 窗口宽, 窗口高); //1glUseProgram(mProgram); //2//获取位置、纹理、矩阵计算的句柄
mPositionHandle = glGetAttribLocation(mProgram, "vPos");
mTextureHandle = glGetAttribLocation(mProgram, "vTexturePos");
mTextureMatrixHandle = glGetUniformLocation(mProgram, "textureMatrix");glVertexAttribPointer(mPositionHandle, 2, GL_FLOAT, GL_FALSE, 0, 物体坐标); //3
glEnableVertexAttribArray(mPositionHandle);glVertexAttribPointer(mTexPosHandle, 2, GL_FLOAT, GL_FALSE, 0, 纹理坐标); //4
glEnableVertexAttribArray(mTexPosHandle);GLfloat texMatrix[16];
surfaceTexture->getTransformMatrix(texMatrix);
glUniformMatrix4fv(mTexMatrixHandle, 1, GL_FALSE, texMatrix);//5glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureId);//设置纹理属性: 放大、缩小、防止超过纹理坐标(0,1)
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //6
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4); //4个顶点四边形

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27905.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解決Unity中使用AVPro Video切换视频时闪现插件Logo

最近在使用unity 3D 插件AVProVideo播放视频,切换视频的时候会在切换间隔闪现一下插件的Logo,摸索之后找到了解决方法,因此发文介绍一下怎么解决。 代码中使用的是以下方法进行切换 m_MediaPlay.OpenMedia(MediaPathType.RelativeToStreaming…

Axure制作播放器原型图-OpenGL FFmpeg QT Rtmp H264 视频监控 mp4播放

要做一个集成了: 1.视频监控 视频播放云台控制 2.图片浏览yuv jpg bmp 图片处理 锐化 模糊 二值化 3.音频播放 pcm aac 音频分析 处理 4.视频文件播放 视频文件格式分析h264-annexb avi flv mp4 5.流媒体播放 hls webrtc rtsp rtmp 6.视频分析 处理--人脸识别…

【QT项目:视频播放器——Qt opengl编程】通过shader完成显示yuv

通过Qt opengl不是为了3D绘制,而是为了将视频绘制起来 使用opengl 可以极大降低yuv转rgb的转换开销 使用Opengl需要考虑三大问题: 1、QOpenGLWidget(与界面如何交互) 1、为什么用QT的opengl 简单,界面可以自动叠加 v…

【OpenGL】读取视频并渲染

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍读取视频并渲染。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&#…

unity rtsp 视频渲染(一)

unity unity 可以说是一个不错的工具,建立三维的场景非常方便,下面我们建立一个三维的场景,并且在三维的场景中和场景外分别建立系统去播放视频。所谓场景内就是在三维中播放视频,场景外就是在三维场景前表面的二维平面中播放视频…

Unity 视频渲染插件AVPro Movie Capture 简易教程

随着Unity 的 功能日益强大,Unity5的发布使的Unity的图形渲染能力达到了一个新的层次,全局光照的加入,各种新特性的加入,使视频的实时渲染不再是天方夜谈,Unity5发布时的演示视频《Adam》,画质惊人。Unity在…

最新 |《未来简史》作者赫拉利 演讲:AI不需要意识就可以毁灭人类文明 (全文+视频)...

作者:城主 | 编辑:腾讯新闻 郝博阳 编者导语: 最近两个月,自从《暂停AI声明书》发布后,我们看到了诸多AI行业内的专家大佬隔空辩论AI的潜在威胁和治理方法,场面一时无两,基本上把技术路径上AI可…

大模型基础知识 - 语言模型及其演进 公开版

本文为作者内部分享文档,由于不涉敏可以公开,分享本身是课程形式,有什么疑问欢迎在评论区留言。 开场白 人工智能发展到现在,在2个重要领域取得了重大突破,有望达到人类水平: 计算机视觉 (Com…

使用ChatGPT帮助快速读书:《Rise of the Robots: Technology and the Threat of a Jobless Future》

有了ChatGPT的帮助,读书也快了,英文版的书也可以快速了解其主要内容,不知道这样囫囵吞枣的阅读有没有其它副作用,先读了几本再说。 《Rise of the Robots: Technology and the Threat of a Jobless Future》这本书我没找到中文版翻…

揭秘ChatGPT爆火的背后真相:学编程已经成为必选项!

这一阵最热门的话题,莫过于人工智能新选手—— ChatGPT,在推出后只用了两个月就积累了1亿用户!它的出现在科技圈掀起了一阵“惊涛骇浪”,有人称ChatGPT的意义,堪比当年蒸汽机的出现,它足以爆发新一轮的“工…

【ChatGPT】AI 2.0 时代:拥抱先进的生产力

AI 2.0 时代:拥抱先进的生产力 目录 AI 2.0 时代:拥抱先进的生产力 康波周期是什么? 人类工业革命以来的近现代史 先进生产力的变成了信息与数据 AI科技改变世界

GraphPad Prism 科研绘图(一)

打开GraphPad软件,可以在左侧选择要绘制的图表类型,也可以在左下方直接打开现有的文件 graphpad的工作流程是,首先你需要输入你的数据,也就是你的实验原始数据,叫做Data Table 然后你可以对你的原始数据进行分析&…

科研绘图软件大全

作为材料,化学,环境,物理领域的科研工作者,你是否常为如何表达自己的思想而苦恼? 作为学术论文创造者,你是否为论文中图文单一而叹气? 在这里,推荐给你几款常用科研绘图软件,让你论文从此成为…

【知识图谱】知识图谱的本质是什么?

持续总结更新中 一句话总结知识图谱人工智能从感知到认知什么是知识?什么是先验知识?什么是知识表示?知识图谱的基本组成要素?什么是概念?什么是实体?什么是本体?谈谈本体构建什么是知识图谱的s…

【毕业季】毕业设计避坑指南

文章目录 前言🍊缘由毕业季,毕业设计分手季 🎯主要目标实现4大重点 🍈猜你想问如何与狗哥联系进行探讨1.关注公众号【JavaDog程序狗】2.踩踩狗哥博客 🍯猜你喜欢文章推荐 正文1.毕业设计如何选题2.毕业设计如何去写3.网…

文心一言“插刀”百度?

在ChatGPT出世半年,爆火将近2月后,中国版AI大模型终于崭露头角。 3月16日,百度于北京总部召开新闻发布会,主题围绕基于文心大模型技术生成式对话产品——文心一言,这也预示着中国首个类ChatGPT产品面世。在其正式推出前…

MSRA王晋东:大模型时代,普通人的科研何去何从

王晋东 投稿量子位 | 公众号 QbitAI 最近,电子工业出版社送了我一本《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》,不禁感叹:现在连写书都这么卷了! 要知道,ChatGPT 于去年11月30日刚刚发布、…

ZadigX 发布:价值驱动一切 链接最酷玩家

Zadig 徜徉开源大漠,用爱发电两年之际,低调发布企业版 ZadigX,广泛链接一切价值创造者。发布会将在 2023 年 4 月 27 日 以全线上形式举办,特邀一位神秘总裁,两大车企总监,十大云原生盟主联创/CEO&#xff…

我是普通人,我居然可以这样借力ChatGPT?(此文不卖课)

昨天写了一篇《程序员,如何借力ChatGPT?》,分享了借助AI: (1)撰写通用代码; (2)协助寻找BUG; (3)协助优化算法性能; &…

没有ChatGPT和new bing ?加入文心一言!

前言: 话虽说ChatGPT和newbing已经席卷网络AI语言,当了现在ai的头号老大,但是那两个都是需要梯子才能使用,ChatGPT还需要付费,所以还是有很多童鞋是没有加入使用ai大军的,那我们不妨看一下这个:文心一言。 步入正题…