opengl

【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)

為{幸葍}努か 提交于 2021-02-16 16:26:34
公众号回复:OpenGL,领取学习资源大礼包 音视频学习入门技术文章连载: 技术开发故事会连载 【音视频连载-001】基础学习篇-SDL 介绍以及工程配置 【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应 【音视频连载-004】基础学习篇-SDL 加载图片并显示 【音视频连载-005】基础学习篇-SDL 加载 YUV 文件并显示 【音视频连载-006】基础学习篇-SDL 播放 YUV 视频文件 在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来要通过 SDL 去播放 PCM 音频文件。 SDL 播放音频文件有两种方法,可以理解成 推(push) 和 拉(pull) 两种模式。 推 就是我们主动向设备缓冲区填充 Buffer ,而 拉 就是由设备拉取 Buffer 填充到缓冲区。 在一些开发模型中,如果数据传递能够抽象成 流 的形式,那么肯定就会有 推 和 拉 两种模式。 本篇文章主要是讲解 SDL 以推的形式播放音频文件。 PCM 文件素材准备 首先还是得准备素材,做音视频相关实验就是这么麻烦~~ 找一个 mp3 文件,使用 FFmpeg 命令将它转换成 pcm 文件,方便的话可以直接使用代码仓库提供的 mp3 文件。 不像在视频播放中准备素材那样简单,音频文件对于参数的信息要求多一点

Not getting an output for OpenGL to print line using mouse click

 ̄綄美尐妖づ 提交于 2021-02-16 14:59:07
问题 My aim is to draw a line using mouse click. When you click the first click it reads the coordinates then when for the nest click it will draw the line using GL_LINES with first and second points. int first, x1, yi, x2, yj, ww = 600, wh = 400; void drawl() { glClear(GL_COLOR_BUFFER_BIT); glLineWidth(5.00); glColor3f(0,1,0); glBegin(GL_LINES); glVertex2i(x1,yi); glVertex2i(x2,yj); glEnd(); glFlush(); } void Display() { glClearColor(0.5, 0.5, 0.5, 1.0); glColor3f(0.7, 0.4, 0.0); glClear(GL_COLOR

FreeType how to render special chars like ü ä ö?

余生长醉 提交于 2021-02-16 09:16:37
问题 I am stuck at rendering text with FreeType. Especially non-ascii chars give me a headache. After some trial and error I managed to render some text, but my umlauts do not show: std::string text = "Hauptmenü"; for(std::string::iterator it = text.begin(); it != text.end(); ++it) { std::cout << *it; FT_Face face = loadFace(faceName); FT_Set_Pixel_Sizes(face, 0, fontSize); if(FT_Load_Char(face, *it, FT_LOAD_DEFAULT)) { std::cout << "Could not load character '" << character << "'" << std::endl; }

Unable to import opengl.gl in python on macos

自作多情 提交于 2021-02-13 12:40:49
问题 I am using OpenGL to render a scene in python. My code works perfectly fine on windows but, for some reason, I'm having issues when importing opengl.gl on MacOS. The issue arises when calling from OpenGL.GL import ... in both python scripts and the python console. More specifically here is the exact call in my script: from OpenGL.GL import glGenBuffers, glBindBuffer, glBufferData, \ glGenVertexArrays, glBindVertexArray, glEnableVertexAttribArray, glVertexAttribPointer, \ glDrawArrays,

Unable to import opengl.gl in python on macos

耗尽温柔 提交于 2021-02-13 12:40:27
问题 I am using OpenGL to render a scene in python. My code works perfectly fine on windows but, for some reason, I'm having issues when importing opengl.gl on MacOS. The issue arises when calling from OpenGL.GL import ... in both python scripts and the python console. More specifically here is the exact call in my script: from OpenGL.GL import glGenBuffers, glBindBuffer, glBufferData, \ glGenVertexArrays, glBindVertexArray, glEnableVertexAttribArray, glVertexAttribPointer, \ glDrawArrays,

[3D图形学]视锥剔除入门(翻译)

允我心安 提交于 2021-02-12 22:32:25
原文: http://www.flipcode.com/archives/Frustum_Culling.shtml 时至今日,许多刚刚下海的3D引擎程序员仍不了解视锥剔除(Frustum Culling)的重要性和益处,这让我和我的小伙伴们感到很震♂惊.我在Flipcode的论坛中发现尽管网络上有海量的相关资料,仍有许多人提出对视锥剔除实现的问题.因此我决定撰写这篇文档,简单描绘出我现在所使用的四叉树剔除引擎(Quad-tree Culled Engine)的工作方式.诚然,市面上有许多种成熟且高效的视锥剔除算法,但我认为这个算法足以用来学习视锥剔除的理论基础.在正式开始前我还想说明一件事,以前我一直把Frustum(平截头体)打成Frustrum(截头锥),为此我没少被论坛上的人喷.在这里我承认Frustum是正确的拼写.对那些以前被我冒犯的人我表示抱歉...你们这群吹毛求疵的傻[哔-]... 大多数人已经知道什么是视锥剔除了(译者:如果你是手滑误点进来的...视锥剔除是一个图形渲染前的步骤,用于剔除掉不需要绘制的部分).视锥(准确说是平截头体Frustum)的形状酷似一个塔尖被削平了的金字塔,更准确地说,是一个四棱锥的顶点偏下位置被一个裁面(Clipping Plane,见图1)裁断.事实上,视锥本身就是由6个面所组成.这6个面被称为近裁面,远裁面,上裁面,下裁面,左裁面

3D图形学理论入门指南

*爱你&永不变心* 提交于 2021-02-12 08:26:40
转:http://gad.qq.com/article/detail/35096 介绍 当我还小的时候,我曾以为计算机图形学是最酷的玩意儿。但是随即我认识到,学习图形学——创建那些超级闪亮的计算机程序——比我想象的要难上许多。我四处出击,阅读OpenGL渲染管线详解之类的文章,浏览关于图形工作原理的博客、网站等,对照着教程学习,试图搞懂一切。结果呢,一无所获。当我按照NeHe的教程设置好一切,却因为错误的调用了某个glXXX()函数,导致各种错误。我不具备正确调试程序的基础理论知识,所以我放弃了——就像我那个年纪的少年在遇到挫折时通常会做的那样。 然而,在若干年之后,我有机会能够在大学里参加一些计算机图形学的课程。这次我终于知道它们是如何正确工作了。如果我早知道这些,我那时应该能获得更多成功。所以,为了帮助和我有类似困境的人们,我打算分享下我学到的东西。 图形学背后的理念 概览 先想想真实世界的样子。在3D真实世界里,光线从许多个不同的光源发出,在多个物体间跳转,然后一部分光子通过眼球刺激到你的视网膜。在真实的场景里,3D的世界投影到 2D 的表面。虽然你的大脑从环境中获取各种视觉元素然后组成一个立体的影像来反映整个3D空间,但这些都源于2D信息。当场景中的物体移动,或者你相对于你的场景发生移动,或光照改变时,视网膜上的2D图像也立刻发生改变。我们的视觉系统快速处理图像

Convert a kivy texture to opencv image

浪尽此生 提交于 2021-02-11 17:18:06
问题 I am trying to convert my kivy texture to an image format so that i can process it using opencv (cv2). I tried reading the texture using read() and using cv2.imread() but neither worked. I also looked into converting the ubyte texture into a string but got nowhere. kivy camera texture -> format that i can process using cv2 something like MyVariable = someid.texture #do something to format of MyVariable so that it is an 'image' Newvar = MyVariable.read() #cv2 processing... EDIT: Ok so i got

Convert a kivy texture to opencv image

不羁的心 提交于 2021-02-11 17:17:59
问题 I am trying to convert my kivy texture to an image format so that i can process it using opencv (cv2). I tried reading the texture using read() and using cv2.imread() but neither worked. I also looked into converting the ubyte texture into a string but got nowhere. kivy camera texture -> format that i can process using cv2 something like MyVariable = someid.texture #do something to format of MyVariable so that it is an 'image' Newvar = MyVariable.read() #cv2 processing... EDIT: Ok so i got

Convert a kivy texture to opencv image

心已入冬 提交于 2021-02-11 17:09:51
问题 I am trying to convert my kivy texture to an image format so that i can process it using opencv (cv2). I tried reading the texture using read() and using cv2.imread() but neither worked. I also looked into converting the ubyte texture into a string but got nowhere. kivy camera texture -> format that i can process using cv2 something like MyVariable = someid.texture #do something to format of MyVariable so that it is an 'image' Newvar = MyVariable.read() #cv2 processing... EDIT: Ok so i got