使用 C++、OpenGL 和 GLSL 理解 3D 地震数据可视化

IF 4.2 2区 地球科学 Q1 COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS
{"title":"使用 C++、OpenGL 和 GLSL 理解 3D 地震数据可视化","authors":"","doi":"10.1016/j.cageo.2024.105681","DOIUrl":null,"url":null,"abstract":"<div><p>Seismic data visualization in 3D space is a valuable interpretation tool. Several open-source visualization tools are available. However, little explanation is provided about the inner working of visualization process. The current work discusses a “hello world” equivalent source code for 3D seismic data visualization using Graphical Processing Units (GPUs) with OpenGL and the OpenGL Shading Language (GLSL) programming languages. Rendering is the core process generating 2D image that we see on the screen from the 3D data structures being visualized. Texture mapping-based rendering commonly applied to seismic data starts with creating an OpenGL object called texture. The texture is then mapped over a rectangular object to display a seismic line. The work presented here is performed using OpenGL, GLSL, C++ and Qt toolkit. Here Qt provides the application GUI framework, C++ is used for data I/O, filtering, and sorting, and OpenGL and GLSL are used for 3D rendering. This paper describes the data flow through the application, and two implementations of vertex and fragment GLSL shaders. Visualization is critical for seismic data processing and interpretation. The low-level details of the process presented here will hopefully help readers in obtaining better understanding of the visualization concept and inner working principle and facilitate further development.</p></div>","PeriodicalId":55221,"journal":{"name":"Computers & Geosciences","volume":null,"pages":null},"PeriodicalIF":4.2000,"publicationDate":"2024-07-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Understanding 3D seismic data visualization with C++, OpenGL and GLSL\",\"authors\":\"\",\"doi\":\"10.1016/j.cageo.2024.105681\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><p>Seismic data visualization in 3D space is a valuable interpretation tool. Several open-source visualization tools are available. However, little explanation is provided about the inner working of visualization process. The current work discusses a “hello world” equivalent source code for 3D seismic data visualization using Graphical Processing Units (GPUs) with OpenGL and the OpenGL Shading Language (GLSL) programming languages. Rendering is the core process generating 2D image that we see on the screen from the 3D data structures being visualized. Texture mapping-based rendering commonly applied to seismic data starts with creating an OpenGL object called texture. The texture is then mapped over a rectangular object to display a seismic line. The work presented here is performed using OpenGL, GLSL, C++ and Qt toolkit. Here Qt provides the application GUI framework, C++ is used for data I/O, filtering, and sorting, and OpenGL and GLSL are used for 3D rendering. This paper describes the data flow through the application, and two implementations of vertex and fragment GLSL shaders. Visualization is critical for seismic data processing and interpretation. The low-level details of the process presented here will hopefully help readers in obtaining better understanding of the visualization concept and inner working principle and facilitate further development.</p></div>\",\"PeriodicalId\":55221,\"journal\":{\"name\":\"Computers & Geosciences\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":4.2000,\"publicationDate\":\"2024-07-25\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Computers & Geosciences\",\"FirstCategoryId\":\"89\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S009830042400164X\",\"RegionNum\":2,\"RegionCategory\":\"地球科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computers & Geosciences","FirstCategoryId":"89","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S009830042400164X","RegionNum":2,"RegionCategory":"地球科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0

摘要

三维空间地震数据可视化是一种宝贵的解释工具。目前有几种开源的可视化工具。然而,关于可视化过程的内部工作原理却鲜有解释。当前工作讨论的是使用图形处理器(GPU)和 OpenGL 着色语言(GLSL)编程语言实现三维地震数据可视化的 "hello world "等效源代码。渲染是根据可视化三维数据结构生成我们在屏幕上看到的二维图像的核心过程。基于纹理映射的渲染通常应用于地震数据,首先创建一个名为纹理的 OpenGL 对象。然后将纹理映射到矩形对象上以显示地震测线。本文介绍的工作使用了 OpenGL、GLSL、C++ 和 Qt 工具包。其中 Qt 提供了应用程序图形用户界面框架,C++ 用于数据输入/输出、过滤和排序,OpenGL 和 GLSL 用于三维渲染。本文介绍了应用程序的数据流,以及顶点和片段 GLSL 着色器的两种实现方法。可视化对于地震数据处理和解释至关重要。本文介绍的低层次流程细节有望帮助读者更好地理解可视化概念和内部工作原理,并促进进一步开发。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Understanding 3D seismic data visualization with C++, OpenGL and GLSL

Seismic data visualization in 3D space is a valuable interpretation tool. Several open-source visualization tools are available. However, little explanation is provided about the inner working of visualization process. The current work discusses a “hello world” equivalent source code for 3D seismic data visualization using Graphical Processing Units (GPUs) with OpenGL and the OpenGL Shading Language (GLSL) programming languages. Rendering is the core process generating 2D image that we see on the screen from the 3D data structures being visualized. Texture mapping-based rendering commonly applied to seismic data starts with creating an OpenGL object called texture. The texture is then mapped over a rectangular object to display a seismic line. The work presented here is performed using OpenGL, GLSL, C++ and Qt toolkit. Here Qt provides the application GUI framework, C++ is used for data I/O, filtering, and sorting, and OpenGL and GLSL are used for 3D rendering. This paper describes the data flow through the application, and two implementations of vertex and fragment GLSL shaders. Visualization is critical for seismic data processing and interpretation. The low-level details of the process presented here will hopefully help readers in obtaining better understanding of the visualization concept and inner working principle and facilitate further development.

求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Computers & Geosciences
Computers & Geosciences 地学-地球科学综合
CiteScore
9.30
自引率
6.80%
发文量
164
审稿时长
3.4 months
期刊介绍: Computers & Geosciences publishes high impact, original research at the interface between Computer Sciences and Geosciences. Publications should apply modern computer science paradigms, whether computational or informatics-based, to address problems in the geosciences.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信