【OpenGL学习】前置知识

一、OpenGL

  • OpenGL通常被认为是一个图形API,包含了一系列可以操作图形、图像的函数。但其实是一个标准

二、核心模式与立即渲染模式

  • 早期的OpenGL使用立即渲染模式(固定渲染管线),这个模式下绘制图形很方便。立即渲染模式确实容易使用和理解,但是效率太低。
  • 当使用OpenGL的核心模式时,OpenGL迫使我们使用现代的函数。现代函数的优势是更高的灵活性和效率,然而也更难于学习。立即渲染模式从OpenGL实际运作中抽象掉了很多细节,因此它在易于学习的同时,也很难让人去把握OpenGL具体是如何运作的。

三、扩展

  • OpenGL的一大特性就是对扩展(Extension)的支持,如果一个程序在支持这个扩展的显卡上运行,开发者可以使用这个扩展提供的一些更先进更有效的图形功能。使用这些新的渲染特性了,只需要简单地检查一下显卡是否支持此扩展。

    使用拓展的代码样子和下面差不多:

    if(GL_ARB_extension_name)
    {
        // 使用硬件支持的全新的现代特性
    }
    else
    {
        // 不支持此扩展: 用旧的方式去做
    }
    

四、状态机

  • OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。

    OpenGL的状态通常被称为OpenGL上下文(Context)。

    我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。

  • 状态设置函数(State-changing Function)将会改变上下文。

  • 状态使用函数(State-using Function)会根据当前OpenGL的状态执行一些操作。

五、对象

  • 在OpenGL中一个对象是指一些选项的集合,它代表OpenGL状态的一个子集。

    当我们使用一个对象时,通常看起来像如下一样(把OpenGL上下文看作一个大的结构体):

    // OpenGL的状态
    struct OpenGL_Context {
        ...
        object* object_Window_Target;
        ...     
    };
    

原文链接: https://www.cnblogs.com/FascalXX/p/13157566.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    【OpenGL学习】前置知识

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/356732

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午11:22
下一篇 2023年3月2日 上午11:22

相关推荐