opengl基础笔记1

1、opengl运行模式及opengl规范
运行模式:核心模式与立即渲染模式(弃用)
由于OpenGL的大多数实现都是由显卡厂商编写的,当产生一个bug时通常可以通过升级显卡驱动来解决。这些驱动会包括你的显卡能支持的最新版本的OpenGL,这也是为什么总是建议你偶尔更新一下显卡驱动。
2.开发库以及查看opengl版本
开发库: GLUT,SDL,SFML和 GLFW
查看显卡支持opengl版本: glxinfo(linux)和  OpenGL Extension Viewer(windows)  http://download.cnet.com/OpenGL-Extensions-Viewer/3000-18487_4-34442.html
3、设置视窗大小以及清空颜色
glViewport(0, 0, 800, 600);
在我们开始渲染之前还有一件重要的事情要做,我们必须告诉OpenGL渲染窗口的尺寸大小,即视口(Viewport),这样OpenGL才知道怎样根据窗口大小显示数据和坐标。我们可以通过调用glViewport 函数来设置窗口的 维度 (Dimension)。 OpenGL幕后使用glViewport中定义的位置和宽高进行2D坐标的转换,将OpenGL中的位置坐标转换为你的屏幕坐标。例如,OpenGL中的坐标(-0.5, 0.5)有可能(最终)被映射为屏幕中的坐标(200,450)。注意,处理过的OpenGL坐标范围只为-1到1,因此我们事实上将(-1到1)范围内的坐标映射到(0, 800)和(0, 600)。
glClearColor(0.2f, 0.3f, 0.3f, 1.0f); 
glClear(GL_COLOR_BUFFER_BIT);
注意:除了glClear 之外,我们还调用了glClearColor 来设置清空屏幕所用的颜色。当调用glClear 函数,清除颜色缓冲之后,整个颜色缓冲都会被填充为glClearColor 里所设置的颜色。在这里,我们将屏幕设置为了类似黑板的深蓝绿色。 你应该能够回忆起来我们在  OpenGL  这节教程的内容,glClearColor 函数是一个 状态设置 函数,而glClear 函数则是一个 状态使用 的函数,它使用了当前的状态来获取应该清除为的颜色。
4、opengl渲染管线以及可控制的着色器
opengl渲染管线:  顶点着色器 -> 图元装配 -> 几何着色器 -> 测试与混合处理 -> 片段着色器 -> 光栅化处理
顶点着色器(Vertex Shader):它把一个单独的顶点作为输入。顶点着色器主要的目的是把3D坐标转为另一种3D坐标(后面会解释),同时顶点着色器允许我们对顶点属性进行一些基本处理。
几何着色器(Geometry Shader): 把图元形式的一系列顶点的集合作为输入,它可以通过产生新顶点构造出新的(或是其它的)图元来生成其他形状。
片段着色器(Fragment Shader): 在片段着色器运行之前会执行裁切,裁切会丢弃超出你的视图以外的所有像素,用来提升执行效率。主要目的是计算一个像素的最终颜色,这也是所有OpenGL高级效果产生的地方。 通常,片段着色器包含3D场景的数据(比如光照、阴影、光的颜色等等),这些数据可以被用来计算最终像素的颜色。
注意:OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据。在现代OpenGL中,我们 必须定义至少一个顶点着色器和一个片段着色器(因为GPU中没有默认的顶点/片段着色器)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157549.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开放式耳机百元机哪个好、平价又好用的开放式耳机

开放式耳机最近一两年越来越受欢迎,市场上不同形态的非入耳式耳机都有,从骨传导,夹耳式到气传导等等都有。开放式耳机的好处有很多,非入耳式,不伤耳朵,佩戴更舒适更安全。今天就来和大家聊聊开放式耳机百元…

智能井盖传感器推荐,万宾科技助力城市信息化建设

随着科技产品更新换代进程加快,人工智能在人们日常生活之中逐渐普及开来,深入人们生活的方方面面,影响城市基础设施建设工程。例如在大街小巷之中的井盖作为城市基础建设的一个重要部分,一旦出现松动倾斜或凸起等异常问题&#xf…

chap认证带客户端IP分配案例

PPP协议两边的网段可以不在同一个网段,因为数据链路帧用0xff表示帧,不用arp,所以可以不同网段。 R1: aaa local-user test password cipher admin local-user test service-type ppp interface Serial4/0/0 link-protocol ppp pp…

厦门万宾科技智能井盖监测仪器的作用如何?

越来越多的人们希望改善生活,走出农村走出大山,前往城市之中居住。由此城市的人口和车辆在不断增加,与之而来的是城市的交通压力越来越大,时常会出现道路安全隐患,这给城市未来发展和智慧城市建设都带来一定的难题&…

基于人工势场法的航线规划

GitHub - zzuwz/Artificial-Potential-Field: 2D平面下的人工势场法 GitHub - mellody11/Artificial-Potential-Field: 机器人导航--人工势场法及其改进 matlab2020a可以运行

视频编码转换技巧:视频批量转码H264转H265,高效且顺畅

随着数字媒体的广泛应用,视频编码转换已成为一种普遍的需求。不同的视频格式和编码标准使得在不同设备上播放视频成为可能,同时也带来了兼容性和传输效率的问题。本文讲解引用云炫AI智剪使视频编码转换技巧,即批量将H264编码转换为H265编码&a…

php使用lunar实现农历、阳历、节日等功能

lunar是一个支持阳历、阴历、佛历和道历的日历工具库,它开源免费,有多种开发语言的版本,不依赖第三方,支持阳历、阴历、佛历、道历、儒略日的相互转换,还支持星座、干支、生肖等。仅供参考,切勿迷信。 官…

ER图设计神器,帮你省时省力,高效完成工作!

ER图(Entity-Relationship Diagram)工具用于设计数据库模型,通常用于表示数据实体、关系和属性之间的关系。以下是10个好用的ER图工具。 一、Lucidchart Lucidchart 是一款基于云的协作式图表设计工具,它允许用户创建、编辑和共享…

linux 安装 elasticsearch 全教程

一、去 elasticsearch官网找到Linux版本的下载链接 地址https://www.elastic.co/cn/downloads/elasticsearch 二、在linux 中用wget下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-linux-x86_64.tar.gz三、下载成功后解压文件 tar -x…

QT5.15.2 for Android 真机调试

一、准备就绪 1、一台安卓手机 1)手机需要进入开发者选项 2)准备一根USB线,需要用usb线连接电脑 2、QT5需要 Android搭建好环境(教程可以访问我另一篇文章) 二、调试 1、用usb线连接好电脑并进入开发者选项&…

我的ChatGPT的几个使用场景

示例一,工作辅助、写函数代码: 这里展示了一个完整的代码,修正,然后最终输出的过程。GPT具备足够丰富的相关的小型代码生成能力,语法能力也足够好。这类应用场景,在我的GPT使用中,能占到65%以上…

Scala中类的继承、抽象类和特质

1. 类的继承 1.1 Scala中的继承结构 Scala 中继承关系如下图: Any 是整个继承关系的根节点; AnyRef 包含 Scala Classes 和 Java Classes,等价于 Java 中的 java.lang.Object; AnyVal 是所有值类型的一个标记; Nul…