OpenGL
文章平均质量分 89
张明奇-琦玉
乐观,自信,阳光,相信明天会更好
展开
-
OpenGL 之 FBO--视频美颜的基础
前言在OpenGL中,有一个非常重要的知识点就是 FBO(Frame Buffer Object)。它为做视频美颜提供了技术手段。在网上可以找到很多介绍 FBO 的文章,但很少有将 FBO、Texture及Render Buffer 之间关系讲清楚的。本篇文章在介绍 FBO 的同时,清楚的描述了三者之间的关系。希望本文对大家有所帮助。FBOOpenGL 默认把 framebuf...原创 2020-03-06 00:04:41 · 995 阅读 · 0 评论 -
OpenGL 4.0的Tessellation Shader(细分曲面着色器)
细分曲面着色器(Tessellation Shader)处于顶点着色器阶段的下一个阶段,我们可以看以下链接的OpenGL渲染流水线的图:https://www.opengl.org/wiki/Rendering_Pipeline_Overview(可能需要翻墙)。它是由ATI在2001年率先设计出来的。细分曲面着色器直到这个阶段,对于操作几何图元而言,只有顶点着色器对我们可用。尽管...转载 2020-02-28 12:46:08 · 447 阅读 · 0 评论 -
OpenGL——纹理贴图
1. 创建纹理图像 OpenGL要求纹理的高度和宽度都必须是2的n次方大小,只有满足这个条件,这个纹理图片才是有效的。 一旦获取了像素值,我们就可以将这些数据传给OpenGL,让OpenGL生成一个纹理贴图: glGenTextures(1,@Texture); glBindTexture(GL_TEXTURE_2D,Texture); glTexIm转载 2016-08-28 20:22:05 · 5796 阅读 · 0 评论 -
OpenGL超级宝典笔记——纹理映射
纹理环境OpenGL是如何把纹理元素的颜色和几何图元的颜色结合起来的?是通过纹理环境的模式来控制。设置纹理环境模式的函数如下:void glTexEnvi(GLenum target, GLenum pname, GLint param);void glTexEnvf(GLenum target, GLenum pname, GLfloat param);void glTexEnv转载 2016-11-30 11:18:19 · 2506 阅读 · 0 评论 -
OpenGL学习脚印:背面剔除(Face Culling)
写在前面在绘制封闭类型的几何对象时,开启背面剔除功能能够提高渲染性能。本节简要介绍下背面剔除,示例程序可以在我的github下载。什么是背面剔除当我们观察场景中对象时,一般只能以一定角度来观察,那么对象的某些面我们是看不到的,例如你观察一个立方体,最多只能同时看到3个面,有时只能看到1个面,而我们绘制时如果不采取剔除背面的措施,则要绘制6个面,其中包括一些,我们根本看不到的面。对于立方体...转载 2019-03-16 15:05:18 · 485 阅读 · 0 评论 -
矩阵-DirectX与OpenGL的不同
矩阵是三维图形学中不可或缺的部分,几乎所有和变换相关的操作都涉及矩阵,世界变换,视图变换,投影变换,视口变换无一不需要矩阵,但是当今的两大主流图形库DirectX和OpenGL对矩阵操作却有着细微的差别,大多数的图形学书籍都以OpenGL为基础进行阐述,游戏编程类的书籍则更多使用DirectX,这就难免产生混淆,今天这篇主要讲讲两者在操作矩阵的时候有何不同。矩阵在三维图形学中,一般使用四维...原创 2019-04-26 07:43:27 · 277 阅读 · 0 评论 -
OpenGl的glMatrixMode()函数理解
glMatrixMode()函数的参数,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有3种模式: GL_PROJECTION 投影, GL_MODELVIEW 模型视图, GL_TEXTURE 纹理.如果参数是GL_PROJECTION,这个是投影的意思,就是要对投...原创 2019-06-11 14:56:40 · 882 阅读 · 0 评论 -
如何快速成长为图形学工程师
目前 IT 市场出现了各路诸侯争霸局面,从大的方向说分为三类:PC 端、移动端、VR/AR,从细分领域来说有 MMO 端游、单机端游、MMO 移动手游、单机手游、VR/AR、PC 端页游、移动端页游等等。随着硬件的提升,玩家对产品的品质要求越来越高,想提升品质就需要 GPU 渲染,换句话说就是离不开图形学渲染,涉及到的图形渲染库有 DX、OpenGL、OpenGLES、WebGL。当然实现...转载 2019-09-24 07:09:01 · 563 阅读 · 0 评论 -
opengl颜色混合
混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。要使用OpenG原创 2016-07-22 15:53:41 · 1313 阅读 · 0 评论 -
openGL中的抗锯齿实现
图形绘制到屏幕时,光栅化图像通过离散的像素点来表示,因此所绘制的图元(比如直线)会产生锯齿,这种锯齿也称作走样。消除锯齿的技术称为反走样,也叫做抗锯齿,通过这种处理可在一定程度上消除锯齿的影响,增强显示效果。在OpenGL中,可通过函数glHint()来对图像质量和绘制速度之间的权衡作一些控制,其函数形式为: void glHint(GLenum target,GLenum原创 2016-06-28 09:39:04 · 3679 阅读 · 0 评论 -
关于Opengl各种矩阵变换(MVPW)的自我理解
关于Opengl各种矩阵变换的理解OpenGL的矩阵变换一直比较迷糊,貌似懂了又貌似不懂,今天貌似懂了过几天又貌似忘记怎么回事了,还是没有理解透彻,因此痛下决心,一定要把这个事情弄懂。经过几天的反复思考查看资料,我自己理解的结果就是:mv用来调整相机位置组成一个新坐标系,p用来在这个坐标系里面切出一块来变成-1,1之间的立方体显示,w用来把这个-1,1的立方体转到指定的视口上。如果这个不够转载 2015-01-06 12:27:02 · 5149 阅读 · 0 评论 -
基于FBX SDK的FBX模型解析与加载 -(二)
5. 加载材质 Material是一个模型渲染时必不可少的部分,当然,这些信息也被存到了FBX之中(甚至各种贴图等也可以直接内嵌到FBX内部),就需要从FBX中加载这些信息以完成带有材质的渲染。材质的加载可以与Mesh的加载相结合来完成,但更好的方法是独立进行,这样各模块间的关系更清晰,但这就需要一个额外的操作,那就是关联Mesh与Material。FBX中的材质对象包含了丰富的信息,比如转载 2015-06-30 10:46:20 · 1515 阅读 · 0 评论 -
基于FBX SDK的FBX模型解析与加载 -(一)
1. 简介 FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式(最早不是由Autodesk开发,但后来被其收购),目前被 众多的标准建模软件所支持,在游戏开发领域也常用来作为各种建模工具的标准导出格式。Autodesk提供了基于C++(还有Python)的SDK来实现对FBX格式的各种读写、修改以及转换等操作,之所以如此是因为FBX的格式不是公开的,这也是FBX的诟病之一。与转载 2015-06-30 10:44:51 · 3095 阅读 · 0 评论 -
计算机图形学基础知识
点乘计算角度、弧度。差乘计算位置。原创 2015-08-04 11:40:58 · 3512 阅读 · 0 评论 -
OpenGL笔记之矩阵变换(Matrix Transformation)
本文是学习OpenGL过程中的一篇笔记。在学习过程中,主要参照了大名鼎鼎的《OpenGL Programming Guide》(中文名《OpenGL编程指南》,有些人还称之为OpenGL红宝书)《OpenGL SuperBible》(中文名《OpenGL超级宝典》,有些人还称之为OpenGL蓝宝书)另外还有《3D Computer Graphics: A转载 2015-08-04 15:00:22 · 1235 阅读 · 0 评论 -
OpenGL - Lighting
1 简单光照 OpenGL简单光照光源分为: 辐射光(Emitted Light)是最简单的一种光,它直接从物体发出并且不受任何光源影响。环境光(Ambient Light)是由光源发出经环境多次散射而无法确定其方向的光,即似乎来自所有方向。漫射光(Diffuse Light)来自一个方向,它垂直于物体时比倾斜时更明亮。镜面光(Specular Light)来自特定方向原创 2015-08-31 16:46:44 · 1435 阅读 · 0 评论 -
OpenGL 矩阵变换(讲的太好了~!)
Overview几何数据——顶点位置,和标准向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点操作(Vertex Operation)和基本组合操作改变这些数据。Object Coordinates对象的本地坐标系——任何变换之前的最初位置.为了变换(transformation)这些对象,可以调用glRo转载 2015-08-04 15:05:19 · 941 阅读 · 1 评论 -
OpenGL学习总结
一.OpenGL是做什么的一种图形硬件的接口。而不是像C和C++一样的编程语言,更像是一个运行库,提供一些预先封装的函数。二.OpenGL的主要功能是什么建模,变换,颜色模式设置,光照和材质设置,纹理映射,位图显示和图像。三.OpenGL的体系结构是什么最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,第五层为应用软件。四.原创 2015-11-24 11:38:40 · 1110 阅读 · 0 评论 -
OpenGL常识汇总
主题:这里将收集一些OpenGL中的常识。在日常生活中,我们积累生活常识越多,我们的生活就会越方便。同样的道理,如果我们积累的OpenGL常识越多,我们的开发过程就会越轻松。当列举这些常识的时候,我会尽量找到充分的,权威的资料去证明常识的正确性。通常情况下,我会摘抄经典书籍中的原话作为证据。闲话少数,现在就开始吧。1.坐标系在计算机图形学中有关于坐标系的内容。常见的三维坐标系有两种:左转载 2015-01-06 16:02:04 · 1088 阅读 · 0 评论