首页 > 其他分享 >【无标题】计算机图形学OpenGL基础

【无标题】计算机图形学OpenGL基础

时间:2024-03-20 18:31:20浏览次数:29  
标签:窗口 OpenGL 0.0 GLUT 图形学 无标题 命令 缓冲区

一、OpenGL的主要功能

  • 模型绘制
  • 模型观察
  • 颜色模式
  • 光照应用
  • 图像效果增强
  • 位图和图像处理
  • 纹理映射
  • 实时动画
  • 交互技术
    二、 OpenGL的绘制流程----------工作方式**
    一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最后一层为应用软件
    在这里插入图片描述

三、OpenGL的绘制流程-------------流水线
注意:OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。
在这里插入图片描述
四、OpenGL的基本语法---------------相关库

  • OpenGL核心库:gl

  • OpenGL使用数据库:glu

  • OpenGL编程辅助库:aux

  • OpenGL实用程序工具包:(OpenGL utility toolkit ,GLUT):glut

  • Windows专用库:wgl
    五、OpenGL的基本语法-------------------命名规则
    OpenGL函数都遵循一个命名约定,即采用一下格式
    <库前缀><根命令><可选的参数个数><可选的参数类型>
    例如:glColor3f(…)
    六、OpenGL的基本语法--------------数据类型

    在这里插入图片描述
    七、OpenGL程序实例-------新建项目

#define GLUT_DISABLE_ATEXIT_HACK
#include <windows.h>
#include <gl/glut.h>
void showtime(){
	//设置窗口背景颜色
	glClearColor(0.0f,0.0f,1.0f,1.0f);
	//设置投影参数(2)
	glMatrixMode(GL_PROJECTION);
	gluOrtho2D(0.0,200.0,0.0,150.0);
	
}
void showtime2(){
	//刷新窗口缓冲区
	glClear(GL_COLOR_BUFFER_BIT);
	
	//绘制矩形
	glRectf(50.0f,100.0f,150.0f,50.0f); 
	
	//清空OpenGL命令缓冲区
	 glFlush();
}
int main(int argc,char *argv[]){
	//初始化窗口
	glutInit(&argc,argv) ;
	//设定窗口显示模式
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	//设置窗口尺寸
	glutInitWindowSize(400,300);
	//设置窗口位置
	glutInitWindowPosition(100,120); 
	//创建窗口
	glutCreateWindow("项目一") ;
	//设置当前窗口的显示回调函数 
	glutDisplayFunc(&showtime2);
	//完成窗口初始化(调用初始化函数
	showtime();
	//启动主GULT事件处理循环
	glutMainLoop(); 
	 
	return 0; 
}


标签:窗口,OpenGL,0.0,GLUT,图形学,无标题,命令,缓冲区
From: https://blog.csdn.net/m0_74344180/article/details/136883938

相关文章

  • opengl日记10-opengl使用多个纹理示例
    文章目录环境代码CMakeLists.txt文件内容不变。fragmentShaderSource.fsvertexShaderSource.vsmain.cpp总结环境系统:ubuntu20.04opengl版本:4.6glfw版本:3.3glad版本:4.6cmake版本:3.16.3gcc版本:10.3.0在<opengl学习日记9-opengl使用纹理示例>的基础上,拓展使用多个纹......
  • OpenGL万字超详解笔记(适合新手小白)
    OpenGL万字超详解笔记(适合新手小白)参考资料20分钟让你了解OpenGL——OpenGL全流程详细解读【OpenGL】基本API的详解及参考OpenGL初学者入门——学习指南【共9篇文章】LearnOpenlcnOpenGL状态机深度测试(DepthTest)概念[OpenGL]VBO,VAO和EBO详解基本概念OpenGL是什......
  • 闫令琪计算机图形学入门---Lecture 02 笔记
    本节课主要讲了计算机图形学中要用到的线性代数知识,包括向量的点乘、叉乘以及矩阵的乘法,属于很基础的一节课。点乘点乘的性质如下:点乘满足交换律、结合律、分配律用途:1、点乘可以用于将一个向量投影到另一个向量上      2、点乘可以计算两个向量之间的角度,比......
  • 图形学的资源库
    0.宏观叶劲峰大佬的图形学综述https://github.com/miloyip/game-programmer1.数学GLM数学库的一个简短的教程http://www.c-jump.com/bcc/common/Talk3/Math/GLM/GLM.html2.渲染songho提供了许多图形学图元建模方法与代码,还有一些OpenGL教程。https://www.songho......
  • 【CG】图形学相关
    BRDF光照模型链接https://zhuanlan.zhihu.com/p/490024846经典光照模型经典光照模型Lambert漫反射模型Phong模型Blinn-Phone模型数据光照模型基于物理的光照模型前置知识次表面散射菲涅尔反射微平面理论基于物理的光照模型Cook-Torrance光照模型WardBRDF光......
  • 【OpenGL原理】顶点着色器、片元着色器、几何着色器
    一、说明        我们除了对GLSL语言本身的理解,对真正的宏观管线认知是越早越好的事情。理解着色器的能力,以及使用局限性能够迫使我们修正设计思路。也许我们胸中有无限多的想象,一旦面对着色器的无能为力,精妙想向也就灰飞叶湮灭。有时需要引进其它的环节,但又不能确定......
  • Qt opengl和qlabel的update同时更新,内存泄漏问题
    工作要做一个类似播放器的软件,但是需要自己解码,然后可能多张图像合成再显示,所以不能直接用QT播放视频的模块,就用了QOpenGLWidget来渲染。后面发现内存一直在涨,一直以为是自己的原因,因为解码分配的内存挺多的,折腾了快一个月了,后面发现是update频繁更新导致;如下代码,XVideoWidget继......
  • 【无标题】
    方法就是把函数放在对象里面,对象只有两个东西:属性和方法<script>varkuangshen={//对象name:'qingjiang',birth:2000,age:function(){//方法varnow=newDate.getFullYear();returnnow-this.birth;}}//属性kaungshe......
  • 【无标题】
    @[toc]开始学习java一、实战概述在Java编程之旅中,首先通过安装并配置JDK作为能量源泉,搭建起与操作系统对话的魔法桥梁。接着,开发者运用文本编辑器或IDE创建并编译执行第一个简单的“HelloJavaWorld~”程序,成功开启了通向Java世界的大门。随后引入强大的集成开发环境......
  • WHU计算机图形学-Asg2
    配置GLUT环境参照:https://zhuanlan.zhihu.com/p/575651057壹调试项目unmAngelprogCh02simple-main+display直接运行有报错freeglutERROR:Function<glutCreateWindow>calledwithoutfirstcalling'glutInit'.在程序头调用glutInitglutInit(&argc,argv);对于......