Clion配置Freeglut 【计算机图形学】(2025)

0.参考书

计算机图形图像技术 (第二版)中国矿业大学


1.理论知识

FreeGLUT是一个开源的软件库,它是OpenGL Utility Toolkit(GLUT)的一个免费替代品,软件配置内容和书本内容一致GLUT最初是由Mark Kilgard开发的,用于帮助OpenGL程序开发者创建和管理窗口、处理输入事件以及进行一些基本的2D绘图,而无需关注不同操作系统下的窗口系统细节。

FreeGLUT的主要特点包括:

  1. 跨平台性:FreeGLUT可以在多种操作系统上运行,包括Windows、Linux和Mac OS X。
  2. 功能兼容:它尽可能地保持了与原始GLUT库的兼容性,使得原来使用GLUT的程序可以较为容易地迁移到FreeGLUT。
  3. 扩展功能:除了GLUT提供的功能外,FreeGLUT还添加了一些新的功能,比如更丰富的字体支持和更多的菜单功能。
  4. 开源:作为一个开源项目,FreeGLUT允许用户自由使用、修改和分发。

FreeGLUT对于OpenGL初学者和专业人士都是一个很有用的工具,因为它简化了OpenGL程序开发中的许多繁琐任务,使得开发者可以专注于图形渲染的核心部分。它是学习OpenGL和开发OpenGL应用程序时常用的库之一。


2.开始实践

1.下载FreeGLUT库文件

FreeGLUT链接:Index of /files/software/development/GLUT (transmissionzero.co.uk)

 下载下面这个压缩包


2.Clion新建一个C++项目


2.解压freeglut压缩包

 把所有文件夹放入项目:

效果如下 :

  1. bin:这个里面放的是exe运行库.llb
  2. include:程序头文件.h
  3. lib:链接库.a

3.修改CMakeLists.txt(用来配置CMake程序环境的)

# 设置CMake的最低版本要求
cmake_minimum_required(VERSION 3.27)
# 设置项目的名称
project(Demo1)
# 设置C语言标准为C99
set(CMAKE_C_STANDARD 99)
# 指定头文件所在的目录
include_directories(include)
# 指定库文件所在的目录
link_directories(lib/x64)
# 设置编译输出的可执行文件目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
# 添加可执行文件,Demo1是由main.cpp编译而成的
add_executable(Demo1 main.cpp)
# 为Demo1链接所需的库文件libfreeglut.a opengl32.dll libglu32.a
target_link_libraries(Demo1 libfreeglut.a opengl32.dll libglu32.a)

修改成这样,然后点击上面这个同步按键

4.把bin的x64的 freeglut.dll 复制到cmake build debug的 bin里面

5.修改main.cpp

#include "include/GL/freeglut.h"

void init() {
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glMatrixMode(GL_PROJECTION); // 设置投影矩阵
    glLoadIdentity(); // 重置当前矩阵为单位矩阵
    gluPerspective(30.0, 1.0, 1.0, 100.0); // 设置透视投影,视场角=30度,宽高比=1,近=1,远=100
    glMatrixMode(GL_MODELVIEW); // 设置模型视图矩阵
}
void display() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清空颜色缓冲区和深度缓冲区
    glLoadIdentity(); // 重置当前矩阵为单位矩阵
    glTranslatef(0.0, 0.0, -6.5); // 远移6.5单位
    glRotatef(30.0, 1.0, 1.0, 0.0); // 绕(1, 1, 0)旋转30度
    glutWireCube(3.0); // 绘制线框立方体,半径为1.5
    glFlush(); // 刷新绘图
}
void reshape(int w, int h) {
    glViewport(0, 0, (GLsizei)w, (GLsizei)h); // 设置视口
    glMatrixMode(GL_PROJECTION); // 设置投影矩阵
    glLoadIdentity(); // 重置当前矩阵为单位矩阵
    if (w <= h) {
        glOrtho(-3.0, 3.0, -3.0 * (GLfloat)h / (GLfloat)w, 3.0 * (GLfloat)h / (GLfloat)w, -10.0, 10.0);
    }
    else {
        glOrtho(-3.0 * (GLfloat)w / (GLfloat)h, 3.0 * (GLfloat)w / (GLfloat)h, -3.0, 3.0, -10.0, 10.0);
    }
    glMatrixMode(GL_MODELVIEW); // 设置模型视图矩阵
}


int main(int argc, char **argv) {
    glutInit(&argc, argv); // 初始化GLUT库
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设置显示模式:单缓冲、RGB颜色模型
    glutInitWindowSize(800, 500); // 设置窗口大小
    glutCreateWindow("OpenGL 简单示例"); // 创建窗口并设置标题
    init(); // 调用初始化函数
    glutDisplayFunc(display); // 设置显示回调函数
    glutReshapeFunc(reshape); // 设置重绘回调函数
    glutMainLoop(); // 进入GLUT事件处理循环
    return 0;
}

6.点击运行

 


3.你完成了图形开发的基础工作 

点一个关注吧ξ( ✿>◡❛)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值