看opengl写代码(2) Hello,OpenGl

原创 2015年07月10日 01:08:22

下面 直接 上代码:

// helloOpenGL.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <gl/glut.h>
void init(){
	glClearColor(0,0,0,1);//设置清除颜色
	glColor3f(1.0,0,0);
	//这三个 不太明白
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}

void disPlay(void){
	glClear(GL_COLOR_BUFFER_BIT);//清除窗口
	//绘制多边形..(顶点位置非常重要)
	glBegin(GL_POLYGON);
	glVertex3f(0.25,0.25,0);
	glVertex3f(0.25,0.75,0);
	glVertex3f(0.75,0.25,0);
	glVertex3f(0.75,0.75,0);
	glEnd();
	//立马显示...
	glFlush();
}


int _tmain(int argc, _TCHAR* argv[])
{
	glutInit(&argc,(char **)argv);//init
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);//RGB颜色模式 和 单缓冲模式
	glutInitWindowSize(500,500);//设置窗口尺寸
	glutInitWindowPosition(0,0);//设置窗口位置
	glutCreateWindow("Hello OpenGl!");
	init();//不要 将  只需调用一次的 设置 放进 disPlay 函数
	glutDisplayFunc(disPlay);
	glutMainLoop();//主循环,负责 一直 调用 disPlay
	return 0;
}
并且 针对 不太了解的 opengl 函数 进行了 百度:

glMatrixMode函数:设置当前矩阵模式:
mode 指定哪一个矩阵堆栈是下一个矩阵操作的目标,可选值: GL_MODELVIEW、GL_PROJECTION、GL_TEXTURE.
GL_MODELVIEW,对模型视景矩阵堆栈应用随后的矩阵操作.
GL_PROJECTION,对投影矩阵应用随后的矩阵操作.
GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作.


glLoadIdentity该函数的功能是重置当前指定的矩阵为单位矩阵.

1).加载glLoadIdentity(),等于是将之前矩阵变换导致变化过的栈顶矩阵重新归位,置为单位矩阵!等于是之前的矩阵变换带来的影响到此为止了!
2).产生顶点的语句,比如glutWireBox、glutSolidSphere等等,它们最终要与栈顶矩阵计算算出最终的顶点位置。但它们本身不会影响栈顶矩阵的值!
3).任何一个模型、视图变换,如translate、scale、lookAt等,计算后都会影响当前栈顶矩阵的值!若每次变换完毕后不去归位(glLoadIdentity),则下一次的顶点变换是建立在上一轮(一系列)变换的基础之上的!
4).根据矩阵变换本质的理解,glLoadIdentity并不是简单的理解为将坐标归为世界坐标的原点。而是每次建立顶点的时候,都是以当前物体的中心作为世界的原点的(换句话说,也就是上一轮物体变换之后,原点的位置作为新的物体的中心)。之后再进行各种变换而形成物体的移动、缩放、旋转等效果。从本质上讲,glLoadIdentity并不会改变世界坐标的原点位置,而仅仅是让“栈顶矩阵归位”。但它导致了下一轮顶点变换时,感觉上是以新的物体中心为世界原点的效果!

glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0); 大致 知道 是 正交投影。。

http://anony3721.blog.163.com/blog/static/51197420113206471827/

OpenGL学习之路——OpenGL里面的Hello World

首先先来认识一下OpenGL实用工具k
  • u012269327
  • u012269327
  • 2014年09月22日 15:08
  • 1154

OpenGL学习(三)第一个三角形

前言学习opencv英文网址:https://learnopengl.com/#!Getting-started/Hello-Triangle中文翻译:https://learnopengl-cn.g...
  • zhouyelihua
  • zhouyelihua
  • 2017年07月02日 20:34
  • 286

openGL编程GLUT配置和“helloworld”

老版本: GLUT代表OpenGL应用工具包,英文全称为OpenGL Utility Toolkit,是一个和窗口系统无关的软件包,它由Mark Kilgard在SGI时写的。作为AUX库的功能更强...
  • xuguangsoft
  • xuguangsoft
  • 2012年09月11日 11:15
  • 7202

用OpenGl制作的跑酷游戏

一.上周完成任务: 1.复习操作系统,完成考试。 2.复习软件工程,完成考试。 3.完成OpenGL上机作业: 使用技术: 设置光照(lighting)            设置材质 纹理映射 cu...
  • whyymlm
  • whyymlm
  • 2016年12月30日 17:07
  • 147

HelloWorld opengl文字显示

转自网摘 源地址己找不到。没示例程序。 增加了两个文件,showline.c, showtext.c。分别为第二个和第三个示例程序的main函数相关部分。 在ctbuf.h和textarea.h最...
  • linuxheik
  • linuxheik
  • 2016年12月22日 15:47
  • 1151

OpenGL之纹理贴图(2):Texture Objects

在《OpenGL之纹理贴图(2):Basic》中我们了解了一些关于纹理贴图的基础知识。在随后的学习中,我又意识到这样的问题:如何在不同纹理之间自由的切换,即如何给不同的物体映射不同的纹理。在OpenG...
  • houdy
  • houdy
  • 2004年10月05日 14:49
  • 4469

使用OpenGL编写的贪吃蛇

用了大概半天的时间,用OpenGL编写了一个彩色贪吃蛇。和俄罗斯方块比较起来,因为这次使用了OpenGL,所以在画图上面花的时间很少。 用到的基础知识主要是双向链表。贪吃蛇是由一个一个方块所组成,每个...
  • copica
  • copica
  • 2013年12月23日 13:22
  • 2996

[OpenGL]贪吃蛇游戏源码

//Game.h#pragma once//游戏类#include "glfDC.h"#include "panel.h"#include "worm.h"class Game{ //游戏的基本元素p...
  • FeeLang
  • FeeLang
  • 2009年06月19日 23:41
  • 5006

用 opengl 写一个小游戏 (1)

用 opengl 写一个小游戏 (1)用 opengl 写一个小游戏 1 环境搭建 freetype soil glm 注意事项 基本组件 shader texture 资源加载 渲染器 主游戏类 游...
  • liqiangzju
  • liqiangzju
  • 2017年02月11日 13:35
  • 1203

Skia OpenGL Texture Helloworld

这年头神马都要炫,这不,我就开始研究Skia了。先上一个Skia画在opengl texture上面的圆角矩形。以下代码:#include #include #include #inclu...
  • manjian
  • manjian
  • 2011年04月30日 22:05
  • 2878
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:看opengl写代码(2) Hello,OpenGl
举报原因:
原因补充:

(最多只允许输入30个字)