OpenGL 1.1和当前4.3之间的主要区别是什么?

 kkq--_771 发布于 2023-02-04 18:40

对于大学,我们通过JOGL/Java学习使用OpenGL 1.1的3D图形,它仍然是相当简单的东西:

标准绘制方法(GL_TRIANGLE_STRIP,GL_LINES)

使用立方贝塞尔曲线

绘制赛道/使用矢量

使对象(机器人)具有动画效果

使用2D纹理

在本课程结束后,我想继续3D图形编程,我还有一些尝试,似乎我只能通过构建自己的(简单)引擎来学习它,所以就这样吧.

我们在大学使用OpenGL 1.1,因为它仍然相当简单和基础,但我认为该行业已经是4.3版了?

有人可以说出主要的差异,可能是功能,但对编程方法更感兴趣吗?
我注意到OpenGL 1.1中很多东西都是在CPU端完成的,尽管它已经支持GPU了.
同样是创建漂亮游戏所需的着色器语言,或者为什么它们经常被使用,我发现它们(在我的空闲时间)异常难以理解.

1 个回答
  • 主要区别在于您可以访问图形管道的方式.

    意味着OpenGL 1.1到2.0的图形管道是完全固定的.您可以通过预定义的OpenGL函数影响GPU行为.(glBegin,glPushMatrix,glPopMatrix...)

    现代OpenGL使您能够对渲染过程的大多数阶段产生影响.

    可编程管道分为:

    顶点着色

    镶嵌

    几何着色

    片段着色

    当前的GPU提供可以使用OpenGL着色语言(GLSL)编程的驱动程序,以动态编程渲染过程的每个阶段.

    管道参考:

    固定功能:http://en.wikipedia.org/wiki/Fixed-function

    可编程(GLSL):http://www.opengl.org/documentation/glsl/


    更新,由于评论:

    由于您可以自定义渲染过程的每个阶段,因此您必须实现适当的着色器程序,以实现自己的照明,阴影甚至投影.这种接缝在开始时是不好的,但你有很多教程可以与它取得联系,而且你可以使用OpenGL的一些功能,因为它们是向后兼容的.例如,我仍然使用该gluPerspective函数来创建投影矩阵.

    看看这里:http://open.gl/introduction 这是一个非常复杂和易于理解的教程,可以与现代OpenGL取得联系.

    以下是API的一些链接,它们支持您
    编写现代OpenGL

    glm:http: //glm.g-truc.net/0.9.5/index.html glm为您提供所有必要的数学,并且在我看来与GLSL完全兼容glm是必须的

    glfw:http: //www.glfw.org/ glfw为您提供了创建和初始化图形上下文的功能.它是操作系统,屏幕和GPU的接口,您还可以将多线程应用于您的应用程序.

    SOIL:http://www.lonesock.net/soil.html SOIL是从文件加载纹理的一个很好的API

    2023-02-04 18:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有