OpenGL入门

前言:

在学习Android时,曾经尝试过全景显示。当然,灵感的来源是在大一暑假留校学习时,看到老师们开发的Vsur Map中的全景显示效果很炫酷,于是问了下老师,说是用OpenGL写的。自此,OpenGL进入了视野。

正文:

本文不介绍开发技巧,讨论的是如何学习入门,包括Android、C#、C++。
对于库函数的学习,开发文档往往是最好的。不过,没找到,哈哈(可以找到的)。

1. Android

这是第一次接触OpenGL,认识到OpenGL是只能画三角形,其余图形都是在三角形基础上绘制而成。那么,在csdn和简书上找到了学习教程,画了三角形和矩形,还是不敢尝试全景显示的。毕竟没有系统的学习。正好和队友做比赛,俩人一合计,就复现了个全景显示的DEMO。
由于之前学习时的参考文章未作记录,又去百度了下教程,好家伙,又有好玩的项目可以学习了。

基础资料
  1. 安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world
  2. 安卓 OpenGL ES 2.0 完全入门(二):矩形、图片、读取显存等
  3. android 使用opengl es2.0浏览全景图片
    全景显示效果
    全景在虚拟现实中应用很广,实现时利用的是平面坐标和球面坐标的转换,就像世界地图和地球仪的关系,在大地测量学中有更深入的地图投影知识讲解。
    球面分割效果
项目
  1. 看了下这个项目,可以在入门时使用,探索下基本原理,链接如下:
    Android三种姿势带你玩转360度全景图功能
    Android三种姿势带你玩转360度全景图功能 — github地址

    三种实现方式为:
    1. OpenGL ES 
    2. GoogleCardboard(Google VR)上面的一个集成模块
    3. Three.js(利用前端姿势)WebView混合开发
    

    2 . 那么接下来的这个项目,可以在具体项目中应用,项目介绍及源码地址如下:
    360°全景图是一个值得把玩的应用
    360°全景图是一个值得把玩的应用 — github地址
    效果图

总结

本来还想自己总结推荐下呢,结果上网一搜,比我写的好多了。我写的话,在Android中会写上OpenGL ES 2.0和Google VR这两种方式实现,而且,效果也没这么好。
在总结这一块的时候,我又去上网找了下开源项目和实现,感觉又有了收获,哈哈。
而且呀,在这篇文章里VR安卓开发学习笔记(一),发现了手机拍摄全景照片的方式,就是 安卓应用《Cardboard相机》:教你拍出高大上的VR照片,不过,访问google play是需要爬梯子的。
全景图获取方式

2. C#

在做完Android实现后,尝试在PC端实现,进行些其他功能的尝试,无奈C#中关于OpenGL的教程不好找,找到些国外的文章看。OpenGL在C#中被整合到OpenTK,直接调用即可。

资料
  1. 一个国外的教程,很详细 —OpenGL From Zero To Hero
  2. OpenTK Introduction
  3. OpenTK源码
总结

在学习C#中的简单应用时,发现,还是C++的资料多,前辈的经验是,先在C++下利用丰富的资源学会OpenGL的基础知识,然后,再在C#或是其他语言平台上开发,会触类旁通。毕竟OpenGL是一个实现标准。

3. C++

原来感觉最不友好的C++,在现在来看,又是那么的可爱,终于,还是成长了。

资料
  1. Learn OpenGL(英语原版)
  2. LearnOpenGL CN(中文版)
  3. VS2013+GLFW+GLEW 配置OpenGL开发环境
总结

在C++中的资料还是很多的,尤其是原理的详细解析,很利于理解。而且,在C++中,很多库都是需要自己编译的,这在之前是没有进行过的,感觉学到了好多东西,虽然只是用CMake编译下。

总结

综上所述,完成了OpenGL的入门,一套流程下来是很有收获的,但是,对于个人来说,总感觉是一个不完整的学习,还有很多东西需要去完善,亟待解决的就是—做出点东西,学以致用,在实践中进一步完善知识体系。
结合自身能想到的是,看了王植老师的论文— 基于RANSAC模型的机载LiDAR数据中建筑轮廓提取算法,里面用到了OpenGL来完成机载LiDAR点云数据的三维可视化,当然,主要还是用算法来实现数据的处理;还有就是进行游戏开发和虚拟现实技术的实现,在16年的VR元年之后,大家开始对vr技术进行探索,google的Google VR 以及 esri开始在runtime 100.2中加入了VR来实现三维显示。可见,三维是一个趋势,二维到三维的跨越会是一个潮流。

三维可视化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值