项目简介
这是一个基于OpenGL的月球渲染系统,借助OpenGL的着色器、纹理和帧缓冲等技术,实现月球模型的渲染。系统包含OpenGL上下文与窗口创建、用户事件处理、简单球面生成、着色器实现、变换以及真实感渲染等模块,可完成从光源视角渲染深度图和从相机视角渲染月球表面的功能。
项目的主要特性和功能
- 初始化功能:完成GLFW库的初始化,加载颜色贴图和位移贴图,创建帧缓冲对象,实例化Shader对象。
- 主循环功能:处理键盘输入,动态更新相机位置和光源位置,渲染深度图和月球表面。
- 真实感渲染:运用颜色纹理贴图、位移贴图、阴影和光照计算等,让月球渲染更加逼真。
- 用户交互:可接收用户键盘事件,实现与用户的实时交互,当窗口大小变化时同步调整视口参数。
安装使用步骤
假设你已经下载了本项目的源码文件,按照以下步骤进行操作:
1. 配置开发环境
- 安装Visual Studio Code代码编辑器和MinGW - w64编译器。
- 下载GLFW库:到GLFW官网下载Windows预编译二进制包,将lib - mingw - w64文件夹和include文件夹分别解压到项目目录下的lib文件夹和include文件夹中。
- 配置GLAD:到GLAD的配置网站上配置Loader,选择C/C++,gl版本选Version 3.3、Core,勾上debug和loader选项,点击Generate按钮,下载生成的glad.zip,将src文件夹和include文件夹分别解压到项目目录下的src文件夹和include文件夹中。
2. 配置VS Code参数
- 在VS Code中依次选择Terminal->Configure Default Build Task...,在弹出的下拉列表中选择MinGW - w64的g++.exe,VS Code将生成task.json文件,参考以下结构配置编译选项:
json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "C:\\Program Files\\mingw - w64\\x86_64 - 8.1.0 - posix - seh - rt_v6 - rev0\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics - color = always",
"-g",
"${workspaceFolder}\\src\\gl.c",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I",
"${workspaceFolder}\\include",
"-L",
"${workspaceFolder}\\lib\\**",
"-l",
"glfw3",
"-l",
"gdi32",
"-l",
"user32",
"-l",
"kernel32"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译器: \"C:\\Program Files\\mingw - w64\\x86_64 - 8.1.0 - posix - seh - rt_v6 - rev0\\mingw64\\bin\\g++.exe\""
}
]
}
- 使用快捷键Ctrl + Shift + P调出Command Palette菜单,搜索并点击C/C++: Edit Configurations (UI),生成c_cpp_properties.json文件,参考以下结构配置代码编辑器的C/C++扩展选项:
json
{
"configurations": [
{
"name": "GCC",
"includePath": [
"${default}",
"${workspaceFolder}/**"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "C:/Program Files/mingw - w64/x86_64 - 8.1.0 - posix - seh - rt_v6 - rev0/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows - gcc - x64"
}
],
"version": 4
}
3. 数据准备:将月球的颜色纹理贴图和位移贴图下载后放入项目的Moon\img目录中,并在main.cpp中修改贴图文件的路径和文件名参数:
```c++
// 颜色贴图文件的位置
define COLOR_TEXTURE_IMAGE_FILE_LOCATION "./img/lroc_color_poles_2k.png"
// 位移贴图文件的位置
define DISPLACEMENT_TEXTURE_IMAGE_FILE_LOCATION "./img/ldem_3_8bit.jpg"
对于`tiff`格式的贴图,可使用`Python`的`PIL`库进行转换:python
from PIL import Image
x = Image.open("lroc_color_poles_2k.tif")
x.save("lroc_color_poles_2k.png")
x.close()
``
4. **运行程序**:在VS Code中运行main.cpp`文件,程序将开始运行并渲染月球模型。
使用前需要正确配置和安装所有依赖库,并确保所有文件路径和参数设置正确。代码中的注释和参考文献部分提供了更多关于代码实现和使用的详细信息。本项目代码是基本的OpenGL程序框架,你可以在此基础上进行扩展和优化。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】