皮皮网

【如何利用别人源码】【android源码交易】【dnf宠物源码】opengl源码工具

来源:蚂蚁集市系统源码 时间:2024-12-24 10:41:41

1.CMake搭建OpenGL开发环境
2.科学可视化软件介绍 – OpenSceneGraph
3.opengl-01:源码编译
4.C语言如何用OpenGL
5.OpenCL安装过程记录

opengl源码工具

CMake搭建OpenGL开发环境

       要为Ubuntu .系统搭建OpenGL开发环境,源码首先确保安装必要的工具依赖。通过`apt-get`安装`libglfw3-dev`,源码这将为GLFW库提供基础支持。工具针对X或Wayland系统,源码记得安装相应的工具如何利用别人源码图形库。接下来,源码从GitHub克隆GLFW的工具源码,以便进行本地构建:

       ```bash

       git clone /glfw/glfw.git

       ```

       使用CMake构建GLFW,源码配置CMakeLists.txt文件,工具将GLFW的源码源代码目录指定为构建目标:

       ```cmake

       cmake -S path/to/glfw -B build

       cmake --build build

       ```

       安装GLAD库时,访问官网下载包含头文件的工具include文件夹,将其移动到`/usr/local/include`,源码并将`glad.c`文件放置在你的工具项目目录中。在CMakeLists.txt中添加GLAD的源码链接,以确保其在编译时可用:

       ```cmake

       find_package(GLFW REQUIRED)

       find_package(GLAD REQUIRED)

       include_directories(${ GLAD_INCLUDE_DIRS})

       add_executable(main main.cpp)

       target_link_libraries(main glfw glad)

       ```

       在`main.cpp`中,编写核心代码来初始化窗口、加载GLAD函数指针、创建和编译shader程序、设置顶点数组对象(VAO)和缓冲区(VBO),android源码交易并进行基本的OpenGL渲染:

       ```cpp

       // GLFW初始化

       if (!glfwInit()) {

       std::cerr << "Failed to initialize GLFW" << std::endl;

       return -1;

       }

       // GLAD加载

       if (!gladLoadGLLoader(glfwGetProcAddress)) {

       std::cerr << "Failed to initialize GLAD" << std::endl;

       glfwTerminate();

       return -1;

       }

       // 创建顶点着色器和顶点数组对象

       std::vector vertices = { ...};

       unsigned int VBO, VAO;

       glGenVertexArrays(1, &VAO);

       glGenBuffers(1, &VBO);

       glBindVertexArray(VAO);

       // 着色器程序和顶点数据

       std::string vertexShaderSource = /*...*/;

       std::string fragmentShaderSource = /*...*/;

       // (编译、链接、设置顶点数据)

       // 渲染循环

       while (!glfwWindowShouldClose(window)) {

       // 清空颜色缓冲,绘制三角形,交换双缓冲

       // 处理用户输入和窗口回调

       }

       // 释放资源

       glfwTerminate();

       ```

       在这个过程中,我们引入了glm库,用于进行三维数学计算,如旋转度。在CMakeLists.txt中添加对glm的依赖和链接:

       ```cmake

       find_package(glm REQUIRED)

       target_link_libraries(main ${ GLM_INCLUDE_DIRS})

       ```

       通过这些步骤,你将在Ubuntu .上成功搭建一个基于GLFW和GLAD的OpenGL开发环境,实现窗口创建、基本渲染功能以及使用glm库进行数学运算。

科学可视化软件介绍 – OpenSceneGraph

       OpenSceneGraph(OSG)是一款开源高性能三维图形开发工具包,适用于可视模拟、游戏、虚拟现实、科学可视化和建模等领域。它以标准C++和OpenGL编写,支持多种操作系统,dnf宠物源码包括Windows、OSX、GNU/Linux、IRIX、Solaris、HP Ux、AIX和FreeBSD。OSG由Don Burns在年开始开发,Robert Osfield和他于年开始合作。在年发布了稳定的1.0版,并在年推出了2.0版。最新版本为年2月发布的3.6.5版。项目自年起进入维护阶段,主要开发工作转移到了后续项目VulkanSceneGraph。OSG的官方网站为openscenegraph.github.io,源代码在github上。

       OSG作为可靠的场景图形渲染技术,广泛应用于可视模拟、太空、qt svg 源码科学、油气、游戏和虚拟现实行业。以下是OSG提供的可视化案例:

       使用OSG进行科学可视化的软件包括:VisIt、Inviwo、Voreen、MegaMol、Paraview、ROOT、Mayavi、PyQtGraph、vedo、Glumpy、SCIRun、Vispy、K3D-jupyter、VTK、yt、Veusz、网页源码替换PyVista、TTK、Ipyvolume、Polyscope、GLVis、3D Slicer、libigl、桌面版3D文件查看器F3D、数据可视化工具包morphologica、人类神经生理学数据可视化MNE、Glue、GR framework、Visualization Library、Visvis、MeteoInfo、VisTrails、Blue Brain BioExplorer、DataLab、GeoJS、CIGVis、VIVID3D、PlotlyJS.jl、PyMOL等。

       OSG的使用和案例展示了其在科学可视化领域的强大功能和广泛适用性,是开发人员和研究者在三维图形开发和科学可视化方面的重要工具。

opengl-:源码编译

       1 源码编译 + cmake + vscode

       系统环境:ubuntu ..6

       编译环境: g++9.4 cmake3..3

       编译工具:vscode

       1.1 glfw源码编译

        Release 3.3. · glfw/glfw 下载 glfw-3.3..zip

       安装依赖

       解压源码文件

       cmake配置

       编译工程 edgelee / vscode-opengl-tutorial -1-glfw

       1.2 glad源码编译

        glad.dav1d.de/ 选择配置内容(如图)

       生成源文件 glad.zip

       解压zip

       cmake配置

       一级CmakeList

       二级CmakeList

       编译工程 edgelee / vscode-opengl-tutorial -2-glad

       1.3 imgui源码编译(依赖系统OpenGL)

       imgui源码下载

       github.com/ocornut/imgu...

       ubuntu安装opengl

       解压zip

       cmake配置

       一级CmakeList

       二级CmakeList

       根据makefile内容配置CmakeList(imgui-1..4/examples/example_glfw_opengl3/Makefile)

       编译输出 edgelee / vscode-opengl-tutorial -3-imgui-(system-gl)

       1.4 imgui源码编译(不依赖系统OpenGL)

       imgui源码下载:同1.3

       ubuntu安装opengl:不需要(即使安装,不使用)

       解压zip:同1.3

       cmake配置

       一级CmakeList:同1.3

       二级CmakeList:去掉OpenGL依赖

       编译错误

       根据错误提示,修正

       imgui-1..4/backends/imgui_impl_glfw.cpp文件的添加

       编译结果 edgelee / vscode-opengl-tutorial -3-imgui-(no-system-gl)

       2 实例2.1 旋转三角形 glfw +glad

       源码文件:glfw-3.3./examples/simple.c(不采用glfw自带glad,修改到自编译glad)

       一级CmakeList

       二级CmakeList

       生成效果 edgelee / vscode-opengl-tutorial -sample-glfw-glad

       2.2 gui界面 glfw +imgui

       源码文件:imgui-1..4/examples/example_glfw_opengl3/main.cpp

       一级CmakeList

       二级CmakeList

       生成效果 edgelee / vscode-opengl-tutorial -sample-glfw-imgui

       2.3 gui界面 glfw +glda +imgui(建议方式)

       注:建议采用此方式,openGL api 统一使用 gdal api

       源码文件:imgui-1..4/examples/example_glfw_opengl3/main.cpp(修改到 gdal api)

       一级CmakeList

       二级CmakeList

       生成效果 edgelee / vscode-opengl-tutorial -sample-glfw-glad-imgui

C语言如何用OpenGL

       OpenGL就是基于C语言的,只需要下载OpenGL的SDK库安装即可,在编写源码时:

       1、添加头文件glut.h。

       注意glut.h文件中已经包含gl.h,glu.h在实际编译中可以只加入头文件glut.h,很多相关的例子都是这样的,但是在mingwstudio上编译发现,在glut.h前还是需要加入glu.h, gl.h.如:

       #include <gl/gl.h>

       #include <gl/glu.h>

       #include <gl/glut.h>

       2、在工程中添加OpenGL的库,有关命令行加入,glu opengl glut库就可以编译了。

OpenCL安装过程记录

       大创项目接近尾声,决定尝试学习和使用OpenCL进行开发。在搜索安装教程时,发现大多数资料针对的是CUDA Toolkit或直接提供文件复制方式,针对Linux系统的Khronos SDK教程则主要面向Windows用户。考虑到自己对编程基础的熟练程度,决定亲自完成安装过程并记录下来,以供后来者参考。

       安装环境为Ubuntu . LTS(基于Linux 5.),使用GCC版本.3.0、CMake版本3..1。

       首先,从Khronos官方获取OpenCL SDK源代码。理论上,可以使用Git进行克隆,但实际情况中遇到了GitHub网络不稳定的问题。建议在稳定网络环境下使用Git或通过第三方下载工具辅助下载源代码。同时,注意SDK将某些必需文件设置为子项目(如OpenCL-SDK/external/OpenCL-Headers),需要进入子项目手动下载。

       在终端中切换到下载目录,并执行CMake。配置过程会自动检测并提示缺失的依赖项,尝试自动安装。在安装过程中,遇到了OpenGL、doxygen、X_X_LIB等依赖需要手动通过apt安装。

       解决完依赖项后,理论上可进行编译。在终端中运行CMake并指定安装目录。编译完成后,OpenCL库被安装到电脑中。

       接下来,配置可执行文件的依赖。在/etc/ld.so.conf.d目录下创建一个opencl.conf文件,写入安装目录下的动态库路径,如在/opt/OpenCL下,则动态库路径应为/opt/OpenCL/lib。使用Vim编辑器打开并保存文件。执行ldconfig命令以应用配置。

       解决编译器问题。可以简单地将/opt/OpenCL/lib和/usr/include中的内容复制到相应目录,以避免手动指定链接库。更复杂的方法是修改gcc的specs文件,使编译器不再需要-lOpenCL选项。不过,这种方法较为繁琐,本文不作深入讨论。

       通过符号链接解决编译器依赖问题。运行ln命令创建链接,使得编译器可以访问/usr/lib/CL/...,实际内容仍存储在/opt/OpenCL中。在编译时仍然需要添加-lOpenCL选项。

       至此,OpenCL的安装配置已完成。尝试编写一段测试代码以验证环境是否正常工作。测试代码输出CL_DEVICE_EXTENSIONS中的内容,以了解设备的扩展支持情况,例如是否支持双精度浮点数(cl_khr_fp)。

       总结代码示例及其编译选项,确保测试代码能够正确执行,验证OpenCL环境配置是否正确。至此,通过详细的步骤记录,为希望学习和使用OpenCL的开发者提供了清晰的安装和配置指南。