c++ opengl 三维图形中显示文字_使用SharpGL三维建模技术生成3D井眼轨迹图

0e64fb9f1390bcccb4c8faea1b910907.png

一、前言

最近需要在项目的软件中增加一个功能,根据连续测斜数据展示三维的井眼轨迹图,由于购买的厂商的图件效果不理想,所以研究自己写代码实现类似的功能。

井眼轨迹的计算内容繁杂涉及了大量的钻井工程专业专业知识。由于笔者是信息技术专业出身,所以只能依照自己的行业经验研究井眼轨迹的三维技术实现。其中涉及到钻井工程细节部分可能不准确或错误,本文内容仅供技术实现方面参考。

支持3D绘图方面的技术框架很多,本文介绍使用SharpGL这个开源项目来实现三维井眼轨迹图。

一、开源SharpGL项目介绍

SharpGL 可以让你在 Windows Forms 或者 WPF 应用中轻松的使用 OpenGL 开发图形应用。从核心内容来说,SharpGL是一个OpenGL API的封装。一般来说,OpenGL API可以直接用于C/C++应用的开发,但是使用起来比较复杂, SharpGL直接提供了OpenGL全部的功能和扩展。SharpGL将所有的函数和一组丰富的对象,以及高级功能的对象集合放到一个包装器中,你可以使用SharpGL执行opengl绘图。不过SharpGL也包括一些不属于OpenGL的内容,针对WinForms和WPF的用户控件用户控件提供了OpenGL渲染界面和用于处理类似于shader和纹理等复杂问题能力。甚至提供了一个高级类SceneGraph可以更好的使用面向对象的思想创建各类场景。

SharpGL背后的原理是OpenGL in .NET, SharpGL并不是一个需要重新学习的新框架,它只不过是封装的OpenGL。

为什么不直接使用OpenGL,而是使用SharpGL呢?

首先是我喜欢做.Net开发,可以使用托管代码轻松调用C API,Dlllmport可以方便的调用这些API。但是必须要为所有的函数创建签名。如果发生错误,整个错误将是非常庞大的,并且很难分析错误。

另外一个使用SharpGL的原因是SharpGL可以作为标准平台调用来调用多数OpenGL函数,而不用创建外部方法的签名。OpenGL扩展函数在运行时被夹在-这就没有一个固定的进入点进入DLL,这样就增加了工作量。

在OpenGL中获得一个RD是比较困难的,底层的Win32代码有大量的函数获得像素格式,这些工作是大量重复和痛苦的,好在这一切SharpGL帮我做了。

最后一个选择使用SharpGL的原因是,在OpenGL中大量的很痛苦的重复的工作如加载信息等,但是这些工作在.NET中是非常容易处理的。

OpenGL内容很多,而且非常成熟,相应的SharpGL内容也很多, 我不会在本文中写出太多细节,我们只是用了其中很简单(小)的一部分内容,在写代码过程中发现网上SharpGL的中文资料很有限。谷歌的原因英文资料找起来也很费劲,SharpGL缺少一个官方技术社区,值得一说的是官方提供了比较详细的示例代码,说实话其中很多代码都是参考官方示例写的。

SharpGL中的主要对象介绍:

SharpGL - 包含主OpenGL对象- 这个对象包装所有的OpenGL函数,枚举和扩展。

SharpGL.SceneGraph 包含OpenGL对象和场景元素光。材质。纹理。NURBs。着色器和其他对象的所有包装。

SharpGL.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值