ZCMUCZX的博客

学习的脚步

OpenGL-运动模式效果

关于运动模糊效果的制作 运动模糊效果其实是一种特效,它有助于显示出一个场景当中哪些对象是运动的,以及它们运动的有多快,在电影中和现实生活中都有这样的例子,当一个物体以一个相对于单帧快门速度来说的高速经过照相机的时候,这一帧和相邻帧的图片上就会沿着运动的方向出现一片模糊的痕迹,就比如说在高速...

2018-05-05 16:11:49

阅读数 282

评论数 0

OpenGL-缓冲区对象

关于缓冲区对象 其实关于缓冲区对象的这个概念其实很广,比如说有帧缓冲区、有顶点缓冲区、像素缓冲区、纹理缓冲区等等。缓冲区对象是保存在GPU内存中的,我们能够去高效的访问它,在OpenGL有缓冲区对象之前,应用程序只有有限的选择可以在GPU当中去存储数据,以及在GPU中更新数据常常是需要去重...

2018-04-23 14:38:23

阅读数 219

评论数 0

OpenGL-纹理数组

关于纹理数组 我们可以通过不同的纹理单元去一次性的去访问几个纹理,也就是说着色器可以一次性访问多个纹理对象,实际上还有中方法也能达到这种效果,就是使用纹理数组,也就是说我们可以将几个2D图像都去加载到一个单独的纹理对象中,其实Mip贴图中每个Mip层次都是一个不同的图像以及立方体贴图中立方...

2018-04-22 08:31:11

阅读数 621

评论数 1

OpenGL 点精灵效果

点精灵效果简介 点精灵其实是OpenGL 1.5及之后的版本所支持的一个特性,通过点精灵这个特性,我们可以通过绘制1个3D点,去将一个2D纹理图像显示在屏幕的任意位置。所以我们可以用点去表示屏幕上移动的大量的粒子,来产生一些视觉效果。把这些点表示为重叠2D图像是可以做成动画细丝的效果的。其实Op...

2018-04-20 07:51:58

阅读数 465

评论数 0

OpenGL中的Use of undeclared identifier 'gl_PointCoord'

关于这个问题,其实解决方法很简单,我们只需要在着色器程序中加入一行代码就可以解决 #version 120 原因是这样子的因为gl_PointCoord是在着色器版本为1.2的版本的时候引入的,具体原因可以参考这个讨论 下面是我们原本的程序,执行的时候会报Use of undecla...

2018-04-16 12:24:18

阅读数 274

评论数 1

OpenGL多重纹理

一、简单介绍在先前的时候,我一直都是只给要渲染的几何体中将一个单独的纹理加载到一个纹理对象上面,然后我们要使用纹理的时候就会去绑定它到选定的纹理对象上面。传递给片元着色器的uniform sampler2D texture设置为0,这里传0是因为我们默认使用的就是第一个纹理单元也就是默认激活的纹理...

2018-04-10 12:48:26

阅读数 180

评论数 0

卡通着色效果

一、简单介绍虽然自己学的都比较浅,但是还是想通过文字来记录下。首先先介绍下卡通着色的效果,为什么要进行卡通着色,卡通着色的目的就是为了让被着色物体显得过渡的不要那么的好,明暗交界线很明显。卡通着色也叫做非真实渲染技术,利用卡通着色加上描黑边的效果就可以很好的做出一个动画的任务了,就比如说下面的一个...

2018-03-27 12:54:30

阅读数 412

评论数 0

通过Phong着色照亮纹理的单元的注意点

一、简单介绍我们在着色器中使用光照来进行对物体颜色值的影响可以是逐个顶点进行的,当然也可以是逐个像素进行的,这样的操作基本都是直接将物体的基本的颜色值和光线的颜色和强度进行相乘,然后得到最终的颜色。这里就像简单的介绍下,如果我们物体有纹理了,怎么办?难道还是直接将纹理颜色和光线的颜色和强度直接相乘...

2018-03-26 19:32:40

阅读数 58

评论数 0

冯氏光照模型--镜面光的计算

一、简单介绍冯氏光照模型是由三部分组成,一个是环境光,一个是漫射光,还有一个就是镜面光。冯氏光照模型的提出主要就是为了去做出光照效果来影响物体的表面的颜色的。冯氏模型阐述了镜面光的计算依赖于观察者的观察方向和反射光向量之间的夹角,所以下面就会去去简单的介绍下镜面光的概念。高强度的镜面光趋向于它所照...

2018-03-25 01:35:16

阅读数 529

评论数 1

Lambert光照模型和Gouraud着色以及Phong着色的区别

一、Lambert模型这里简单的介绍下Lambertian漫反射模型其实就是假设反射光均匀分布在所有方向,反射光照的强度与表面法线和光源方向夹角的余弦值成正比。也就是可以理解成受光面所受的光照都是均匀的,不会因为表面粗糙而有所影响。不能反映粗糙度带来的变化。也就是说无论我们从哪个方向进行观察,物体...

2018-03-24 20:02:27

阅读数 711

评论数 0

OpenGL中法线坐标的转换

一、简单介绍我们都知道如果我们要将一个物体从本地坐标系变到视觉坐标系的话都是要通过模型视图矩阵来进行变化的,我们的光照效果是在视觉坐标系中进行实现的,因为观察者的位置其实是决定了光照的效果的,在我们开启光照功能的时候,法线是决定了顶点或者是面上所接受到光照的多少的,就比如说我们要确定一个指定顶点上...

2018-03-23 20:49:12

阅读数 248

评论数 0

利用OpenGL ES在ios上绘制图像

一、简单介绍最近也开始学了自定义着色器程序,来进行图形的渲染,现在就对最基本的用绘制纹理的方式来在设备上显示图片,本篇文章主要都是自己的理解,如有错误尽请指出。废话不多说,先去介绍一下CAEAGLLayer这个类,其实CAEAGLLayer是一个实现了EAGLDrawable协议的层,允许它作为O...

2018-03-14 00:09:26

阅读数 1560

评论数 0

OpenGL纹理和顶点对应,纹理没有在前面导致的结果

最近在研究纹理的时候又发现一个问题,就是设置了纹理坐标和顶点对应的时候,发现了有一块地方莫名的被拉伸了,出现了如下图的情况,其中黑线是我为了方便观察画的原本以为是顶点指定顺序出了问题,因为天花板上的纹理是好的,而地板在第一个三角形绘制的时候上面的纹理边缘被拉伸了。然后又把图形指定的和天花板顺序一样...

2018-03-01 16:00:17

阅读数 138

评论数 0

OpenGL--纹理放大、缩小、环绕模式

讲道理,这个自己研究了一阵子,现在做一个总结。这里所使用的过滤都是线性过滤,以及我们这里给s轴和t轴设置的都是一样的环绕模式也就是我们在下面设置的什么就是什么,这里的wrapMode指的就是下面设置的那些模式 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE...

2018-02-28 19:10:53

阅读数 1489

评论数 0

OpenGL-设置纹理和顶点数据对应出现的问题

今天偶然在贴纹理的时候,发现如果我们使用的GLBatch类的来设置纹理数据和顶点数据出现的问题,这里主要是记录下 pyramidBatch.Vertex3f(-1.0f, -1.0f, -1.0f); pyramidBatch.Normal3f(0.0f, -1.0f, 0.0f)...

2018-02-26 16:32:35

阅读数 130

评论数 0

GLTools-GLFrame概念

学习OpenGL也有一些日子的,最近终于有点弄明白角色帧的含义了,这里在此简单记录下,有说的不对的可以留言。其实角色帧也叫做观察者,通常移动的物体称为角色,只有角色才会有自己的变化,所以其实GLFrame是拿来做变化用的。可以用来产生模型视图矩阵。来产生位置的移动。GetCameraMatrix是...

2018-02-13 22:28:43

阅读数 578

评论数 0

OpenGL-背面剔除深度测试

一、进行创建用一个最简单的案例来说明下这两个技术吧。首先,我们可以使用GLTools里面的gltMakeTorus函数来为我们去创建一个类似于甜甜圈的模型。二、解释说明当我们不旋转的时候创建的模型是这样的三、旋转之后我们发现,为什么一旋转就会出现黑边?那是因为一些远端三角形绘制在了近端三角形上,为...

2018-02-09 16:20:48

阅读数 390

评论数 5

OpenGL-没有设置glClear的坏处

就好比如果我们如果去绘制一个圆形,这里没有设置glClear #include "GLTools.h" #include void draw() { //1、清屏颜色 glClearColor(0.0f, 1.0f, 0.0f, 1.0f); /...

2018-02-03 16:25:11

阅读数 516

评论数 0

Mac下的OpenGL环境配置

基于Xcode9.2的环境搭建 准备资源:1、GLTools工具函数库2、libGLTools.a前两个可以去GitHub上去下载然后按步骤操作 https://github.com/HazimGazov/GLTools 注意如果电脑上没有安装过CMake的,需要安装下,因为上面就需要用到CMak...

2018-02-03 09:58:39

阅读数 260

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭