本次通过绘制一个三角形来学习相关的知识。
#include<windows.h>
#include<gl/gl.h>
#include<gl/glut.h>
#include<gl/glu.h>
#include<stdio.h>
//窗口的大小
GLsizei windowWidth;
GLsizei windowHeight;
//旋转角度参数
static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;
//确定多边形的绕法的方向
BOOL bwinding = TRUE;
//初始化窗口
void SetupRC(void)
{
//设置窗口背景西颜色为黑色
glClearColor(0.0f,0.0f,0.0f,1.0f);
}
void ChangeSize(int w,int h)
{
if (h == 0)
h = 1;
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
{
windowWidth = 250.0f;
windowHeight = 250.0f*h / w;
}
else
{
windowWidth = 250.0f*h / w;
windowHeight = 250.0f;
}
glOrtho(0.0f, windowWidth, 0.0f, windowHeight, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void RenderScene(void)
{
//用当前背景颜色填充窗口
glClear(GL_COLOR_BUFFER_BIT);
//旋转图形
//glPushMatrix — push and pop the current matrix stack
//将当前矩阵保存入堆栈顶(保存当前矩阵)。
//我们可以形象地认为glPushMatrix()就是“记住自己在哪”,
//glPopMatrix()就是“返回自己原来所在地”。
glPushMatrix();
//围绕x轴坐标旋转
glRotatef(xRot,1.0f,0.0f,0.0f);
//围绕y轴坐标旋转
glRotatef(yRot,0.0f,1.0f,0.0f);
//设置点的大小以及线宽
glPointSize(5);
glLineWidth(5);
//设置多边形绕法的方向是顺时针还

本文介绍了OpenGL中如何绘制三角形,包括GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN三种模式,讨论了多边形的绕法、明暗处理,以及设置明暗处理模式的函数glShadeModel。此外,还提到了多边形的模式如GL_FILL、GL_LINE和GL_POINT,并强调了在构建复杂表面时多边形必须遵循的规则:平面性和不相交性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



