opengl

embed window(glfwCreateWindow) as child to C++ MFC parent form

六眼飞鱼酱① 提交于 2021-01-24 12:24:37
问题 Please refer this link Embedding a GLFW window inside windows forms How can the same achieved by using VC++ to embed glfw window to Parent form? 回答1: Try this: Call glfwWindowHint() to set GLFW_DECORATED and GLFW_VISIBLE to false . Call glfwCreateWindow() . Call glfwGetWin32Window() to get the native handle of the OpenGL window. Call SetParent() to set your form as the new parent of the OpenGL window. Call GetWindowLong() / SetWindowLong() to remove the WS_POPUP and add the WS_CHILDWINDOW

Unity Shader 屏幕后效果——Bloom外发光

て烟熏妆下的殇ゞ 提交于 2021-01-24 00:15:05
Bloom的原理很简单,主要是提取渲染图像中的亮部区域,并对亮部区域进行模糊处理,再与原始图像混合而成。 一般对亮部进行模糊处理的部分采用高斯模糊,关于高斯模糊,详见之前的另一篇博客: https://www.cnblogs.com/koshio0219/p/11152534.html 计算方法: 总共需要用到4个Pass,它们的顺序如下: Pass 1:得到纹理的亮度值(灰度值),由此计算出亮部区域,传递给一个临时的新纹理,这里叫_Bloom Pass 2,3:单独对_Bloom进行高斯模糊(纵横),_Bloom纹理更新 Pass 4:混合原始纹理和_Bloom纹理,得到最终效果 为了得到更为细致的Bloom效果,建议将游戏的颜色空间由默认的伽马空间转为线性空间,必要时还可开启HDR 控制脚本: 1 using UnityEngine; 2 3 public class BloomCtrl : ScreenEffectBase 4 { 5 private const string _LuminanceThreshold = " _LuminanceThreshold " ; 6 private const string _BlurSize = " _BlurSize " ; 7 private const string _Bloom = " _Bloom " ; 8 9

How to install GLUT on a 64 bit windows 7 for MS VS2010? [closed]

拜拜、爱过 提交于 2021-01-20 14:29:52
问题 It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 8 years ago . Can someone help me with a step by step tutorial on how to install GLUT on a Windows 7 64 bit system for MS VS2010? 回答1: Your GLUT download will come with .h files, .lib files, and .dll files. Place the .h files

glGenVertexArrays Mac OSX PyOpenGL

拥有回忆 提交于 2021-01-20 10:10:09
问题 I'm trying to run glGenVertexArrays on PyOpenGL on my Mac (10.11.5). It is not finding it. The problem seems to be the version of OpenGL supported by my Mac (?). I've tried to research the issue but it seems that the documentation is written for either history nerds or trivia buffs, of which I am neither. When I try to do this: print("OpenGL: " + str(glGetString(GL_VERSION))) print('glGenVertexArrays Available %s' % bool(glGenVertexArrays)) vao = glGenVertexArrays(1) I get this: OpenGL: 2.1

glGenVertexArrays Mac OSX PyOpenGL

青春壹個敷衍的年華 提交于 2021-01-20 10:01:39
问题 I'm trying to run glGenVertexArrays on PyOpenGL on my Mac (10.11.5). It is not finding it. The problem seems to be the version of OpenGL supported by my Mac (?). I've tried to research the issue but it seems that the documentation is written for either history nerds or trivia buffs, of which I am neither. When I try to do this: print("OpenGL: " + str(glGetString(GL_VERSION))) print('glGenVertexArrays Available %s' % bool(glGenVertexArrays)) vao = glGenVertexArrays(1) I get this: OpenGL: 2.1

基于QT的OpenGL教程学习11 -模板测试

不想你离开。 提交于 2021-01-20 02:15:39
教程 这次我们在上次深度测试的基础上继续添加代码; 对应知识点,教程讲的很详细了,下面我在代码里面再注释下: 这次需要额外添加一个cubeframe类,用来渲染箱子的边框;其主要内容和cube一致,但是它并不需要纹理,这只是一个纯色的物体; 下面我们着重说下渲染部分的代码: void MyGLWidget::initializeGL() { // 为当前环境初始化OpenGL函数 initializeOpenGLFunctions(); Cube* cub=new Cube(width(),height()); cubevec.append(cub); cub->ShapeCamera=m_camera; cub->SetTranslateVec(QVector3D(-1.0f, 0.0f, -1.0f)); CubeFrame* frame1=new CubeFrame(width(),height()); framevec.append(frame1); frame1->ShapeCamera=m_camera; frame1->SetTranslateVec(QVector3D(-1.0f, 0.0f, -1.0f)); frame1->SetScale(1.1f); Cube* cub2=new Cube(width(),height()); cubevec.append

FFmpeg + OpenGLES 实现视频解码播放和视频滤镜

心不动则不痛 提交于 2021-01-14 02:46:19
该原创文章首发于微信公众号:字节流动 FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 前面 Android FFmpeg 开发系列文章中,我们已经利用 FFmpeg 的解码功能和 ANativeWindow 的渲染功能,实现了的视频的解码播放。但是,当你想为播放器做一些视频滤镜时,如加水印、旋转缩放等效果,使用 OpenGL ES 实现起来就极为方便。 OpenGLES 渲染解码帧 经过上面几节的介绍,我们对音视频的解码过程已经比较熟悉了。本文要用 OpenGL 实现视频的渲染,这里再回顾下视频的解码流程: 从流程图中可以看出,解码一帧图像后,首先将对图像进行格式转换,转换成 RGBA 格式,使用 OpenGL 或 ANativeWindow 可以直接进行渲染。 当然,使用 OpenGL 进行渲染时,为了提升性能,可以将格式转换放到 GPU 上来做(即 shader 实现 YUV 到 RGB 的转换),也可以使用 OES 纹理直接接收 YUV 图像数据,这里就不进行展开讲了。

PyOpenGL how do I import an obj file?

北城以北 提交于 2021-01-13 09:59:33
问题 import pygame import OpenGL from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * import pywavefront scene = pywavefront.Wavefront('Handgun_obj.obj') vertices =( (1,-1,-1), (1,1,-1), (-1,1,-1), (-1,-1,-1), (1,-1,1), (1,1,1), (-1,-1,1), (-1,1,1), ) edges = ( (0,1), (0,3), (0,4), (2,1), (2,3), (2,7), (6,3), (6,4), (6,7), (5,1), (5,4), (5,7) ) colors = ( (1,0,0), (0,1,0), (0,0,1), (0,1,0), (1,1,1), (0,1,1), (1,0,0), (0,1,0), (0,0,1), (1,0,0), (1,1,1), (0,1,1), ) surfaces =

PyOpenGL how do I import an obj file?

☆樱花仙子☆ 提交于 2021-01-13 09:58:30
问题 import pygame import OpenGL from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * import pywavefront scene = pywavefront.Wavefront('Handgun_obj.obj') vertices =( (1,-1,-1), (1,1,-1), (-1,1,-1), (-1,-1,-1), (1,-1,1), (1,1,1), (-1,-1,1), (-1,1,1), ) edges = ( (0,1), (0,3), (0,4), (2,1), (2,3), (2,7), (6,3), (6,4), (6,7), (5,1), (5,4), (5,7) ) colors = ( (1,0,0), (0,1,0), (0,0,1), (0,1,0), (1,1,1), (0,1,1), (1,0,0), (0,1,0), (0,0,1), (1,0,0), (1,1,1), (0,1,1), ) surfaces =

ShareREC for iOS录屏原理解析

南楼画角 提交于 2021-01-13 03:52:13
文 / 游族网络Mob云平台iOS开发专家 李永超 众所周知,由于iOS系统的封闭性,也出于保护用户隐私的角度,苹果并没有公开的API供开发者调用,来录制屏幕内容。导致许多游戏或者应用没有办法直接通过调用系统API的方式提供录制功能,用户也无法将自己一些玩游戏的过程录制下来分享到其他玩家。基于此,ShareREC应运而生。下面我们从说一下ShareREC的录屏的实现原理。 由于苹果UI是基于不同的引擎渲染,所以目前针对不同的引擎,主要是采用以下几种不同的方式实现: 原生UI。 主要是指UIKit框架下面的UI,即苹果原生UI。其实现方式主要是通过获取当前显示的layer,然后通过Core Graphics将这个layer绘制成UIImage,然后将UIImage拼接成视频。这种做法有个问题,就是每一帧都需要使用Core Graphics来重绘,会造成CPU占用率暴涨,效率非常低。 OpenGL 。 由于 Unity 3D 或 Cocos2d两种引擎,在iOS设备上都是采用OpenGL ES这个底层库实现渲染,所以后面会将两者放在OpenGL中一起讨论。 Metal。 Metal是苹果推出的专门针对iPhone和iPad中GPU编程高度优化的框架。目前Unity 5已经支持64位iOS Metal技术,导出Xcode项目时,可以进行选择