Sober's Notes


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

OpenGL(二)-基本图元绘制

发表于 2019-02-20 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 1.6k

OpenGL与着色器

在OpenGL 3.0之前,OpenGL包含一个固定功能的管线,它可以在不使用着色器的情况下处理几何与像素数据。从3.1版本开始,固定管线从核心模式去掉。因此现在需要使用着色器来完成工作.
我们会使用GLSL,(OpenGL Shading Language,它是在OpenGL 2.0版本发布的)。 语法与“C、C++”类似。

阅读全文 »

OpenGL(三)-深度测试

发表于 2019-02-20 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 394

什么叫深度?

所谓深度,就是在坐标系中,像素Z坐标距离观察者的距离.
观察者可以在任何位置.
OpenGL会有专门一块缓存区来存放Z值, 即深度缓冲区.

深度缓冲区作用?

一般情况下,我们绘制图形时,后面绘制的会覆盖前面的图形.这样就会产生一个性能问题:就是遮盖部分,先绘制的会被覆盖,那么这块区域就是无意义的绘制.
深度测试就是用来解决这个问题的.
它是如何处理的呢?有了深度缓冲区之后,绘制的时候会检查Z值,靠近观察者的不覆盖, 远离观察者的被覆盖,而不是靠绘制顺序来决定.

阅读全文 »

OpenGL(四)-两种方式实现抗锯齿效果

发表于 2019-02-20 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 200

方式一 : 利用混合(GLBlend)实现抗锯齿

阅读全文 »

OpenGL(五)-矩阵变换

发表于 2019-02-20 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 1k

关键函数讲解

平移

1
2
3
4
5
6
7
8
9
10
11
12
//创建单元矩阵 
M3DMatrix44f m3;
m3dLoadIdentity44(m3);

/*
m3dTranslationMatrix44(M3DMatrix44f m, float x, float y, float z)
参数1:结果矩阵,平移之后的结果矩阵
参数2:沿着X轴移动多少,正数\负数
参数3:沿着Y轴移动多少,正数\负数
参数4:沿着Z轴移动多少,正数\负数
*/
m3dTranslationMatrix44(m3, 0.0f, 10.0f, 0.0f);
阅读全文 »

OpenGL(六)-坐标系统

发表于 2019-02-20 | 更新于: 2019-02-25 | 分类于 学习笔记 | 阅读次数:
字数统计: 1.1k

在OpenGL 中有5种坐标系。
1.局部坐标系(物体空间)
2.世界空间
3.观察空间(视觉空间)
4.裁剪空间
5.屏幕空间

下图是一个顶点最终转化到片段之前需要经历的所有不同的状态变化:
坐标转化.png

  • 局部空间:
    指的是物体所在的坐标空间,即是建立一个建模软件创建一个模型立方体。创建的立方体的原点可能是[0,0,0]。但它在你的程序里可能处于不同的位置。所以你的模型文件的顶点都以[0,0,0]这个为初始位置。但是他们最终显示在世界坐标系的那个位置不由局部坐标系决定。
    你的模型文件所有的顶点都处于局部空间中。
    比如我创建一个立体箱子,它的范围和原点都是针对局部坐标的。
    阅读全文 »

OpenGL(七)-纹理(上)

发表于 2019-02-20 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 1.7k

设定金字塔坐标

金字塔.png
注意纹理坐标的设置方式:

1
2
3
4
5
6
7
//设置顶点对应的纹理坐标
// s , t 相当于 x , y
// MultiTexCoord2f(GLuint texture, GLclampf s, GLclampf t);
//参数1:纹理的层次
//参数2:s坐标
//参数3:t坐标
pyramidBatch.MultiTexCoord2f(0, 0.0f, 0.0f);

阅读全文 »

OpenGL(七)-纹理(下)

发表于 2019-02-20 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 1.2k

绘制一个隧道

阅读全文 »

Git基本操作

发表于 2019-02-21 | 更新于: 2019-02-21 | 分类于 学习笔记 | | 阅读次数:
字数统计: 510

(一) 从远程仓库克隆(拉取)项目到本地

$ git clone [remote_url]

成功执行后, 本地就已经有配置好git的远程项目了(项目路径默认为终端当前所在路径, 可以通过pwd查看当前路径, 并通过cd调整你想让项目存放的路径)

阅读全文 »
12
Sober

Sober

GET SOBER. STAY SOBER.

18 日志
2 分类
7 标签
GitHub E-Mail 微博 简书
Links
  • MacTalk
© 2019 Sober
本站访客数:
博客全站共28.5k字