松垮垮 松垮垮
首页
  • GPU并行编程
  • 图形学
  • 归并算法
  • 计算机视觉
  • css
  • html
  • JavaScript
  • vue
  • 压缩命令
  • cmdline
  • Docker
  • ftrace跟踪技术
  • gcov代码覆盖率测试
  • GDB
  • git
  • kgdb
  • linux操作
  • markdown
  • systemtap
  • valgrind
  • 设计模式
  • 分布式
  • 操作系统
  • 数据库
  • 服务器
  • 网络
  • C++
  • c语言
  • go
  • JSON
  • Makefile
  • matlab
  • OpenGL
  • python
  • shell
  • 正则表达式
  • 汇编
  • GPU并行编程
  • mysql
  • nginx
  • redis
  • 网络
  • 计算机视觉
  • 进程管理
  • linux调试
  • 【Python】:re.error bad escape i at position 4
  • 搭建ai知识助手
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

松垮垮

c++后端开发工程师
首页
  • GPU并行编程
  • 图形学
  • 归并算法
  • 计算机视觉
  • css
  • html
  • JavaScript
  • vue
  • 压缩命令
  • cmdline
  • Docker
  • ftrace跟踪技术
  • gcov代码覆盖率测试
  • GDB
  • git
  • kgdb
  • linux操作
  • markdown
  • systemtap
  • valgrind
  • 设计模式
  • 分布式
  • 操作系统
  • 数据库
  • 服务器
  • 网络
  • C++
  • c语言
  • go
  • JSON
  • Makefile
  • matlab
  • OpenGL
  • python
  • shell
  • 正则表达式
  • 汇编
  • GPU并行编程
  • mysql
  • nginx
  • redis
  • 网络
  • 计算机视觉
  • 进程管理
  • linux调试
  • 【Python】:re.error bad escape i at position 4
  • 搭建ai知识助手
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • GPU并行编程

  • 图形学

    • OpenGL
    • 光栅化(设备变换中)
    • 光照模型
    • 光线跟踪
    • 剪裁
    • 参数曲面
    • 变换
    • 多边形
    • 实时绘制加速技术
    • 明暗处理模型
    • 曲面消隐
    • 概论
    • 渲染通道、三维变换
    • 物体的CSG树表示
    • 物体表示
    • 管道
    • 纹理
    • 自然景物表示方法(中最具挑战性的问题之一)
    • 裁剪
    • 辐射度
    • 阴影
    • 隐式曲面
    • 颜色模型
  • 图形学(细分曲面)Subdivision
  • 归并算法
  • 计算机视觉

  • cs
  • 图形学
songkuakua
2025-02-15

OpenGL

# OpenGL

Owner: -QVQ-

例子:简单图形绘制

void CALLBACK display(void)
  {
	 glClear(GL_COLOR_BUFFER_BIT);
	//将颜色缓存清为glClearColor命令所设置的颜色,即背景色
	 glColor4f(1.0,1.0,1.0,1.0); //选颜色(R,G,B)
	 glPointSize(6.0); //设置点的大小

	 glBegin(GL_POINTS); //在屏幕上绘制三个点
	   glVertex3f(0.1,0.2,0.0);
	   glVertex3f(0.2,0.7,0.0);
	   glVertex3f(0.5,0.8,0.0);
	 glEnd();

	 glBegin(GL_LINES);  //在屏幕上绘制一条线段
	   glVertex2f(0.0,0.4);
	   glVertex2f(-0.3,0.8);
	 glEnd();

	 glBegin(GL_POLYGON); //在屏幕上绘制一个四边形
	   glVertex2f(-0.6,0.0);
	   glVertex2f(-0.4,0.0);   
	   glVertex2f(-0.4,0.3);                         
	   glVertex2f(-0.6,0.4);
	 glEnd();

	 glColor3f(1.0,0.0,0.0);   //设置当前颜色为红色
	 glColor3f(0.0,0.0,1.0);   //设置当前颜色为蓝色
	 glRectf(0.5,0.5,0.7,0.7);  //绘制一个矩形

	 glColor3f(0.0,1.0,0.0);   //设置当前颜色为绿色
	 glRectf(0.8,0.8,0.9,0.9);  //绘制一个矩形
	 glRectf(0.2,0.2,0.4,0.4);  //绘制一个矩形 
 
	 glFlush();  //强制绘图,不驻留缓存
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

Untitled

例子:简单光线场景的设置 Untitled

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>

void myinit(void);
void CALLBACK myReshape(int w, int h);
void CALLBACK display(void);

void myinit(void)  //初始化
{
	glClearColor(0.0,0.0,0.0,0.0);  //将窗口清为黑色
	//定义所需参数
   Glfloat mat_specular[]={1.0, 1.0, 1.0, 1.0};
   Glfloat mat_shininess={50.0};
   Glfloat light_position[] = {1.0, 1.0,1.0,0.0};//无穷远光源
	//创建光源
  glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);//指定材料反射
  glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);//指定材料的反射指数
  glLightfv(GL_LIGHT0,GL_POSITION,light_position);//生成光模型给GL_LIGHT0
	//启用光源
  glEnable(GL_LIGHTING);//启用光照
  glEnable(GL_LIGHT0);//加入这个光模型GL_LIGHT0
  glDepthFunc(GL_LESS);//设置深度
  glEnable(GL_DEPTH_TEST);//启用深度
}

void CALLBACK display(void)
{
	glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
	//将颜色缓存清为glClearColor命令所设置的颜色,即背景色
	glColor4f(0.2,0.8,1.0,1.0); //选颜色(R,G,B)
	auxSolidSphere(1.0);  
	glFlush();  //强制绘图,不驻留缓存
}

void CALLBACK myReshape (int w, int h) //定义视口变换和投影变换
{
	glViewport(0,0,w,h);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	if(w<=h)
	glOrtho(-1.5, 1.5, -1.5*(GLfoalt)h/(GLfloat)w, 1.5*(GLfoalt)h/(GLfloat)w,-10.0,10.0);
	else
	glOrtho(-1.5*(GLfoalt)h/(GLfloat)w, 1.5*(GLfoalt)h/(GLfloat)w, -1.5, 1.5,-10.0,10.0);
	glMatrixMode(GL_MODELVIEW);
	glIdentity();
}
/* Mainp Loop
  * Open window with initial window size, title bar,
  * RGBA display mode, and handle input events.
 */
void main(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA|AUX_DEPTH);
auxInitPosition(0,0,500,500); 
auxInitWindow(“Lighting”); 
myinit();
auxReshapeFunc(myReshape);
auxMainLoop(display);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
上次更新: 2025/02/21, 14:57:10
性能
光栅化(设备变换中)

← 性能 光栅化(设备变换中)→

最近更新
01
搭建ai知识助手
02-23
02
边缘检测
02-15
03
css
02-15
更多文章>
Theme by Vdoing | Copyright © 2025-2025 松垮垮 | MIT License | 蜀ICP备2025120453号 | 川公网安备51011202000997号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 纯净模式