zoukankan      html  css  js  c++  java
  • LearnOpenGL Note 1.基础

    本系列中使用 GLFW(GL Framework) 和 GLEW(包含大量函数指针)来完成 OpenGL 程序。

    一个顶点在呈现为像素之前经历的过程称为渲染管线,在此通常包含六个主要步骤:Vertex Shader, Shape Assembly, Geometry Shader, Rasterization, Fragment Shader, Tests and Blending。

    传输顶点数据的过程中,我们将数据传送到一个 VAO 上,建立关联的 VBO 和 EBO 并分别将顶点数据和索引数据传输到其上,并通过 VAP 的设置来标识如何解析这些顶点数据。

    通常我们需要自定义 Vertex Shader 和 Fragment Shader,我们将其分别写在两个文件中,并通过预先编写的 Shader 类加载、编译、链接、使用。着色器采用 GLSL 语言写成,其支持基本数据类型以及向量和矩阵,其灵活的语法可以对分量进行自由地组合。着色器有 in,out,uniform,其中 uniform 是可以在任意位置直接访问和修改的,通常用于主程序向 Shader 传递参数,例如在三维透视系统中我们可以将 MVP 矩阵传递给着色器,由着色器来完成矩乘运算。

    加载贴图的过程中,我们借助了 SOIL 库来完成图像的读取,然后设置一些属性并生成 Mipmap。

    GLM 库中包含了大量的 3D 相关的数学运算,我们可以用它来进行各种矩阵向量运算,以及根据参数生成 MVP 矩阵等。

    通常在渲染三维场景的过程中,可能会出现五种坐标系统:Local, World, View, Clip, Screen,其间的 4 个过渡矩阵分别是 Model, View, Projection, Viewport。摄像机的描述属于基础三维向量应用在此不做赘述。

  • 相关阅读:
    硬件加速器为人工智能应用服务
    js 获取指定字符串个数
    js 仿微信投诉—引入vue.js,拆分组件为单个js
    css 图片波浪效果
    svg path命令
    谷歌浏览器—打断点调试页面
    js 实现加载百分比效果
    js 实现纵向轮播
    css 图片高度自适应
    js 禁止/允许页面滚动
  • 原文地址:https://www.cnblogs.com/mollnn/p/14724292.html
Copyright © 2011-2022 走看看