美文网首页IOS视觉
01-OpenGL常⻅的专业名词

01-OpenGL常⻅的专业名词

作者: 食堂厨子高大彪 | 来源:发表于2020-07-02 12:52 被阅读0次

    [TOC]

    0. 图形API简介

    1. OpenGL (Open Graphics Library)是⼀个跨编程语⾔、跨平台的编程图形程序接⼝.
    2. OpenGL ES (OpenGL for Embedded Systems)是 OpenGL 的⼦集,针对⼿机、PDA和游戏主机等嵌⼊式设备⽽设计,去除了许多不必要和性能较低的API接⼝。
    3. DirectX 是属于Windows上⼀个多媒体处理框架.并不⽀持Windows以外的平台.
    4. Metal : Apple推出的,该技术能够为 3D 图像提⾼ 10 倍的渲染性能.

    1. 上下⽂ ( context )

    在应⽤程序调⽤任何OpenGL的指令之前,需要安排⾸先创建⼀个OpenGL的上下⽂。这个上下⽂是⼀个⾮常庞⼤的状态机,保存了OpenGL中的各种状态,这也是OpenGL指令执⾏的基础。
    我理解大概相当于ps的工具面板,能存储文字的颜色状态等


    image.png

    2. 渲染

    将图形/图像数据转换成2D空间图像操作叫做渲染(Rendering).

    3. 顶点数组( VertexArray ) 和 顶点缓冲区( VertexBuffer )

    画矩形时,需要确定六个顶点的位置,这些顶点就是顶点数据。
    在OpenGL ES中,有3种类型的图元:点、线、三⻆形。
    顶点储存在哪里呢?顶点数据->内存中,这种叫顶点数组.
    ⽽性能更⾼的做法是,提前分配⼀块显存,顶点数据-> GPU 显存,这种叫顶点缓冲区.

    4. 位图

    假设120 * 120像素的一张图片,这张图占14400个像素,一般RGB是0-255是256种颜色,就是2的八次方种也叫8位深,一个字节占八位,所以RGBA是4个字节
    120 * 120 = 14400 -> RGBA -> 14400 * 4 = 位图

    5.管线,固定管线,可编程管线

    管线像流⽔线,像汽车流水线.
    固定管线: 对应⾮常多模具 (固定着⾊器) ->结果生产出哈弗,wey等
    可编程管线: ⾃定义编程模具(GLSL语法来驱使GPU)->结果生产出某大佬专用的哈弗.

    6. 着⾊器

    函数/⽅法(代码段) -> CPU来使⽤; shader(代码段)->GPU

    1. 固定着⾊器(存储着⾊器)
      苹果提供API(代码段)->调⽤(参数) OpenGL 来提供 ;
    2. ⾃定义着⾊器: 进⾏⾃定义(⾃⼰基于GLSL语法来进⾏编写代码段)

    7. GLSL

    OpenGL着⾊语⾔(OpenGL Shading Language),是在图形卡的GPU上执⾏的。代替了固定的渲染管
    线的⼀部分,使渲染管线中不同层次具有可编程性。⽐如:视图转换、投影转换等。GLSL(GL Shading Language)的着⾊器代码分成2个部分:Vertex Shader(顶点着⾊器)和Fragment(⽚元着⾊器)

    1. 顶点着⾊器: ⽤来处理顶点相关代码 1.确定位置 2.缩放/平移/旋转位置换算 3.⼿机端显示3D ⼿机屏 幕实际2D, 3D图形数据->2D(投影换算) ->OpenGL ES
    2. ⽚元着⾊器: ⽚元(像素点)着⾊器. 处理⼀个⼀个像素点; 120 * 120 像素点. 14400次 GPU 并⾏运 算;

    8. 图元和光栅化

    过程:顶点—> 图元 —> 片元—> 像素


    image.png

    放大,看到一格一格的,就是光栅化


    image.png

    9. 纹理

    可以理解为图片,一般为tga格式

    10. 混合(Blending)

    两张有透明度的图片,有重叠在一起的时候,颜色混合计算.

    11.变换矩阵(Transformation) ,投影矩阵Projection

    • 变换矩阵. 例如图形想发⽣平移,缩放,旋转变换.就需要使⽤变换矩阵.
    • 投影矩阵Projection ⽤于将3D坐标转换为⼆维屏幕坐标,实际线条也将在⼆维坐标下进⾏绘制

    相关文章

      网友评论

        本文标题:01-OpenGL常⻅的专业名词

        本文链接:https://www.haomeiwen.com/subject/jadlqktx.html