
OpenGL
文章平均质量分 79
听风轻咛
这个作者很懒,什么都没留下…
展开
-
OpenGL日常-着色器
文章目录写在前面着色器程序示例顶点着色器片元着色器由属性展开去in/outlayout (location=0)attributevaringuniform向量写在后面大家好,欢迎来到听风的OpenGL日常。写在前面本文代码本篇我们通过OpenGL的数据流动来理解着色器,通过数据流会很清楚的看到OpenGL着色器的工作原理。所以今天要说的内容全部跟GLSL语言有关,当然这样的一篇不可能全部讲完(可能连皮毛都没有),理解着色器是如何传数据的才是我们的重点。话不多说,一图以蔽之。如图中,上部CPU原创 2020-08-09 09:49:27 · 420 阅读 · 0 评论 -
OpenGL日常-纹理帧图(下)
文章目录写在前面纹理绘制OpenGLES加载纹理纹理数据准备敲黑板画重点啦!!!绘图并渲染大家好,欢迎来到听风的OpenGL日常。写在前面本文主要代码:https://github.com/usiege/OpenGL_LIB/tree/master/OpenGL/OpenGLES-06-FrameBuffer纹理绘制接上篇,在前面着色器程序链接成功后添加纹理坐标并绘制;添加纹理坐标://前3个是顶点坐标,后2个是纹理坐标GLfloat attrArr[] ={ 0.5f, -0.5原创 2020-08-05 19:57:01 · 253 阅读 · 0 评论 -
OpenGL日常-纹理帧图(上)
文章目录写在前面快速添加到View添加OpenGLES上下文进入GL渲染部分(本文主要部分)两个缓冲区清空缓冲区设置RenderBuffer设置FrameBuffer设置着色器程序绘制渲染背景链接并检查着色器程序见下篇大家好,欢迎来到听风的OpenGL日常。写在前面本文主要代码上篇主要讲OpenGLES FrameBuffer的使用;理解本篇主要理解下面这幅图,所以文中会再出现一次:快速添加到View我们要自己渲染页面,建一个单视图的App,接下来创建一个TFGLView:UIView,令该V原创 2020-08-05 19:56:08 · 629 阅读 · 0 评论 -
OpenGL日常-三角形(下)——VBO/VAO/EBO
文章目录写在前面本文重点glBegin/glEndDLVAVBOVAOEBO总结大家好,欢迎来到听风的OpenGL日常。写在前面本文代码上回说到,预期的三角形并没有,并没有,并没有渲染出来,今天我们来补充下,看看问题出在哪里。本文重点我们先来搞清楚VAO,VBO缓存到底做的是什么工作?首先是VBO(vertex buffer object),为什么我们要用VBO?不使用VBO时,我们每次绘制(glDrawArrays)图形时都是从本地内存处获取顶点数据然后传输给OpenGL来绘制,这样就会原创 2020-08-05 19:54:07 · 621 阅读 · 0 评论 -
OpenGL日常-三角形(上)——图形渲染管线
文章目录写在前面画三角形这张图讲了什么从顶点数据开始说起记录位置顶点着色器gl_Position片段着色器着色器程序如何解析顶点数据可以画三角形了大家好,欢迎来到听风的OpenGL日常。写在前面本文代码本节我们的理解核心:VBO,Vertex Buffer Object 顶点缓冲对象VAO,Vertex Array Object 顶点数组对象EBO,Element Buffer Ojbect 索引缓冲对象理解了这三个概念,就理解了什么叫做图形渲染管线(Graphics Pipeline)。原创 2020-08-05 19:53:26 · 319 阅读 · 0 评论 -
OpenGL日常-GLAD
文章目录写在之前添加`glad`库构建我们的窗口glfw初始化创建窗口对象窗口变化回调GLAD pointerRender loop渲染一下大家好,欢迎来到听风的OpenGL日常。本文代码写在之前GLEW(OpenGL Extension Wrangler Library);在编写OpenGL代码时,如果希望静态链接 必须包含该预处理宏#define GLEW_STATIC而如果用GCC编译glew和glfw动态库,则可以用命令行:-lGLEW -lgfw3 -lGL -lX11 -lpth原创 2020-08-05 19:51:54 · 804 阅读 · 0 评论 -
OpenGL日常-GLFW
大家好,欢迎来到听风的OpenGL日常。本文代码写在之前之前因为使用红宝书调用了gl3w库,今天我们仅使用glew和glfw配置一个纯opengl的开发环境。有想使用gl3w的请参看这篇 glfw/glew/gl3w与Mac的纠葛其实就是省去了添加gl3w的部分,测试代码不使用gl3w;glfw/glew首先通过homebrew安装这两个工具,brew install glewbrew install glfw安装完成后,库文件会在你的Mac系统目录下,/usr/local/Cellar原创 2020-08-05 19:50:56 · 310 阅读 · 0 评论 -
glfw/glew/gl3w与Mac的纠葛
文章目录gl3wglfw/glew工程中头文件与库查找配置配置测试gl3w$ python gl3w_gen.py<urlopen error [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)>openssl versionpython -c "import ssl; print(ssl.OPENSSL_VERSION)"得出openssl与python的版本不匹配,Mac上原创 2020-07-13 01:41:28 · 585 阅读 · 0 评论 -
OpenGL::纹理的初步应用
说到纹理,通俗的讲就是我们不用再自己去画图啦,用一些装有信息格式的文件去实现画图,这将为我们带来一个更加清新的展示效果。在纹理中涉及到许多概念也是需要我们去理解的,理解的部分我无法为你们完成,概念的部分我尽量写出自己的理解。希望可以帮到看本博客的同学。本文例子查看地址,本例中展示了读取tag文件并加载纹理生成图像,mac用户可以把例子下下来看看效果。纹理坐标自描述典型情况下,纹理坐标是作为0.0到1原创 2016-08-04 16:42:33 · 1190 阅读 · 0 评论 -
OpenGLES:: 关于GLKit的推断
本篇是对OpenGLES_Ch2_1中的缓存管理代码的简单重用和重构,用以加深对GLKView的理解。苹果的GLKit框架封装了gl的具体实现,以便使用gl的用户减少编写gl的代码量以及避免不必要的错误。本文介绍两个封装类,AGLKContext和AGLKVertexAttribArrayBuffer,前者是内建的EAGLContext的简单子类,后者封装了使用OpenGLES2.0顶点属性数组缓存原创 2016-05-09 23:20:54 · 1112 阅读 · 0 评论 -
OpenGLES:: GLKView是如何工作的
本篇通过一个AGLKView的示例来深入了解一下上篇中GLKView的工作原理,目的是为了消除GLKView、Core Animation、OpenGLES间交互的神秘感; 本例位于,建议将例子下下来,边看本文解析,边自己实现该例子;+ (Class)layerClass{ return [CAEAGLLayer class];}每个UIView都有一个相关联的Core Animatio原创 2016-05-07 01:04:33 · 5881 阅读 · 0 评论 -
OpenGLES::体验OpenGL ES的乐趣
先介绍几个概念: 渲染:用3D数据生成一个2D图像的过程就叫做渲染; 像素:计算机显示矩形的颜色点叫做像素; 缓存:是指图形处理器能够控制和管理的连续RAM(原来就是内存); 帧缓存:内存中接收2D结果数据的缓冲区; 上下文:是用于配置OpenGL ES的特定的软件平台的数据结构信息;开始我们的OGE之旅:首先是添加两个框架,一个是用于调用OpenGL原创 2016-04-29 22:58:11 · 2625 阅读 · 0 评论 -
OpenGL::由实例讲解概念
本篇讲一下关于OpenGL图形管线的一些基础知识,刚开始的内容会比较枯燥,后面会用几个例子讲解几种渲染方法,下载git上的例子可以在xcode上看到几种渲染的效果。可展示的效果有,正面和背面剔除、深度测试、多边形偏移、裁剪、混合、多重采样。git地址:点击这里(这里做一下说明,在研究例子的过程中,请无视掉GLTools库,该库是原书作者对gl的一次封装,内部实现接下来会逐层展开,我们现在只讨论与gl原创 2016-07-10 22:22:36 · 2405 阅读 · 0 评论 -
OpenGL::让我们画几条线
看了OpenGLES已经有一段时间了,大致对这个3D库有了一些了解,之后就开始对这套API进行一下深入的研究学习。 学习主要是通过《计算机图形学》一书开展的,网上有什么红宝书蓝皮书什么的回头再看吧,学习要专注,你懂得。首先要先了解一下GL和GLUT的概念,自己详细Google下,总之你得先了解你所要用的库以及库的功能,在这里简单提一下,GL是3D库的主要API框架,而GLUT则是一些工具,我们在x原创 2016-06-27 16:16:59 · 4274 阅读 · 0 评论