OpenGL学习笔记
文章平均质量分 82
OpenGL学习笔记
天元浪子
齐国土著,太公之后。少小离家,独闯江湖,后归隐于CSDN部落格。素以编写python代码为业,偶尔游戏于各网络对局室,擅长送财送分,深为众棋友所喜闻乐见。
展开
-
WxGL应用实例:绘制带有塑料质感的分子模型
本文的重点是演示如何使用WxGL光照模式,以及如何通过设置漫反射系数、镜面反射系数、高光系数、透光系数等参数来模拟不同的材质。所谓的分子模型,只是笔者凭空想象出来的由圆球和圆管组成的类似积木的玩具,希望不会因此而造成误会。原创 2023-05-05 17:37:35 · 1965 阅读 · 1 评论 -
WxGL应用实例:绘制点云
如果数据中有颜色信息,或者用强度信息映射为颜色,则需要用户自行判别并在app.scatter方法中提供color(颜色)参数,或者data(数据)和cm(调色板)参数。还有另外一种更简单的方式,那就是直接使用app.pointcloud方法,只需要一个点云文件参数即可绘制出点云模型,该方法会自动识别文件是否包含颜色信息和激光强度信息。以下代码在IDLE中演示了read_pcfile函数的用法,其中用到的点云文件可从以下地址下载。数据解读出来之后,调用app.scatter方法即可绘制出点云模型。原创 2023-05-04 17:23:02 · 2503 阅读 · 0 评论 -
WxGL应用实例:绘制高精度的3D太阳系模型
远古时期的人类就对神秘幽邃的星空充满了好奇与敬畏。仰望星空,宇宙浩瀚。比宇宙更壮阔的,是人类对宇宙的不懈追问和沉淀在基因中的探索精神。本文尝试用WxGL来回答“日月安属、列星安陈”这个古老的问题。太阳系天体轨道数据来源于JPL(美国喷气实验室)星历表,天体自转周期和自转轴倾角来源于网路。原创 2023-04-21 17:37:24 · 4533 阅读 · 0 评论 -
十分钟玩转3D绘图:WxGL完全手册
WxGL是一个基于PyOpenGL的跨平台三维数据快速可视化工具包,提供类似Matplotlib风格的应用方式。WxGL也可以集成到wxPython或PyQt6中实现更多的功能和控制。WxGL提供了一套简洁易用、对用户友好的API,将OpenGL的复杂概念封装起来,使得用户可以更加专注于数据的处理,而无需在3D显示方面耗费精力。WxGL还提供了着色器语言接口,允许用户定制着色器,以应对特殊的应用需求。原创 2023-03-17 15:24:23 · 4597 阅读 · 8 评论 -
元宵节就要到了,花灯要不要来一盏?3D的那种
说起元宵节,各位有没有觉得这是咱们中国人最浪漫的节日呢?国人向来拘谨古板,一年到头都是小心谨慎地过日子,唯有元宵节这天可以纵情豪放一把。东风夜放花千树,宝马雕车香满路,火树银花霓虹闪烁,豪车遍地美女如云。细品,你甚至都能嗅到香奈儿的味道!月上柳梢头,人约黄昏后,这又是何等的浪漫!比起烛光晚宴、鲜花加持,这份浪漫更显纯真。晚至明清,民间元宵节的喜庆气氛,堪比西班牙的奔牛节、巴西的狂欢节、泰国的泼水节。原创 2023-02-04 22:31:22 · 3917 阅读 · 11 评论 -
从固定管线到可编程管线:十段代码入门OpenGL
至此,一个完整的视点系统就建立起来了。视点系统对应着一个矩阵,相机方位角、高度角以及距离的变化就是改变这个矩阵,这个矩阵叫做视点矩阵(View Matrix)。视点矩阵是玩转OpenGL必须要理解的三个矩阵之一,另外两个是投影矩阵(Projection Matrix)和模型矩阵(Model Matrix),三个矩阵合称MVP矩阵。喜欢篮球或足球的话,很容易记住这个组合——MVP,最有价值球员。原创 2022-12-03 19:27:40 · 4117 阅读 · 6 评论 -
中秋节的月亮怎么拍?不用手机和相机,程序员照样能拍出大片的感觉
说话间,一年一度的中秋节又来到了跟前儿。除了品尝月饼,中秋节最重要的活动大约就是赏月了。一轮高悬月,万念俱清新。古往今来,多少文人墨客借月抒发胸臆,留下了无数吟咏明月的诗词歌赋。现如今,写诗成了贾浅浅们的专享,普通人更喜欢在中秋月圆之夜拍月亮发微博或微信朋友圈与亲朋好友互祝平安。原创 2022-09-10 10:28:27 · 4209 阅读 · 3 评论 -
这才是程序员的元宵节打开方式:亲手做一盏花灯,轻松学三维绘图
又是一年元宵节,作为程序员的你,打算怎么过呢?如果昨天情人节的红包发得手软又心疼,不妨静下心来,了解一下三维数据可视化,顺便做一盏花灯送给女朋友,也许比红包更能讨她欢心呢。原创 2022-02-15 09:14:14 · 7715 阅读 · 15 评论 -
如何用OpenGL的点精灵(point sprite)绘制雪花?
看冬奥才知道,阿勒泰不但是中国的“雪都”,还是“人类滑雪起源地”。这个说法是否成立,姑且不论,阿勒泰的雪的确很漂亮。冬奥会有一个宣传片,就是借用一朵阿勒泰雪花的视角来讲述冬奥会的故事,既有历史的厚重,又有艺术的浪漫,极具视觉冲击感。那么问题来了:如何用OpenGL绘制雪花呢?通常,点精灵(point sprite)技术被用于描述大量粒子在屏幕上的运动,自然也可以用于绘制雪花。点精灵可以理解为贴了纹理图片的点——仅用一个vertex就可以把一个2D纹理图片绘制到屏幕的任何位置。在OpenGL中开启和使用原创 2022-02-05 12:48:42 · 10108 阅读 · 6 评论 -
用OpenGL导演一场烟花盛会,迎接即将到来的新年
忙碌了一年,今天终于放假了。原本打算好好休息一下,没成想只过了半天就觉得有点无聊。看家人和朋友们都在忙年,那我就用OpenGL导演一场烟花盛会,献给即将到来的新年吧。一说到OpenGL,很多人都会觉得复杂,其实不然。只要掌握了几个基本的概念,借助于工具软件,任何人都可以很轻松地上手。在制作烟花之前,我先介绍一下WxGL这个三维数据快速可视化工具。1. 安装WxGLWxGL是一个基于PyOpenGL的三维数据可视化库,以wx为显示后端,提供Matplotlib风格的交互式应用方式。WxGL也可以和wxP原创 2022-01-29 17:39:13 · 5760 阅读 · 1 评论 -
OpenGL着色器语言GLSL资料汇编
OpenGL的工作流程通常被描述为渲染管线(rendering pipeline),该管线上的每一个环节都依赖相应的着色器(shader)来处理数据。在OpenGL 3.0版本(包括该版本)之前,用户可以使用固定功能管线(fixed-function pilpline)以避免编写着色器程序,但是从3.1版本开始,OpenGL从核心模式中移除了固定功能管线,使用着色器成了用户唯一的选择。原创 2021-11-23 13:44:07 · 3113 阅读 · 3 评论 -
暑假来了,画一个日月地球的轨道模型给孩子们,秒懂四季更迭、日蚀月蚀
无言相守45亿年,太阳、地球和月球这三个好基友究竟是怎样的关系呢?从孩提时代我就一直在想,要是能有一个可以直观演示太阳、地球和月球运行轨迹的模型就好了。今天,我终于实现了小时候的梦想:用WxGL画出了太阳、地球和月球的动态轨道模型。配上简单的解说,小朋友也可以秒懂四季更迭、日蚀月蚀、黄赤交角。原创 2021-07-06 17:39:27 · 8306 阅读 · 26 评论 -
Just do it,一起来玩篮球吧
沉寂了近一年之后,三维可视化工具箱WxGL终于又有版本更新了:从0.6.4升级到0.7.0(现在安装的话也可能是0.7.2),并且承诺自0.7.0版本开始向后兼容。在正式发布docs之前,我设计了几个乒乓球和篮球的小例子,算是预热。请安装下载WxGL,抢先体验一下吧。原创 2021-07-02 16:34:56 · 1874 阅读 · 9 评论 -
写给 python 程序员的 OpenGL 教程
OpenGL 是 Open Graphics Library 的简写,意为“开放式图形库”,是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API)。OpenGL 不是一个独立的平台,因此,它需要借助于一种编程语言才能被使用。C / C++ / python / java 都可以很好支持 OpengGL,我当然习惯性选择 python 语言。如果读者是 python 程序员,并且了解 numpy,接下来的阅读应该不会有任何障碍;否则,我建议先花半小时学习一下 python 语言。原创 2019-10-31 14:42:29 · 73707 阅读 · 57 评论 -
wxPython + pyOpenGL,打造三维数据分析的利器
在三维显示领域,OpenGL 是神一样的存在,其地位就像编程语言里面的 C 一样。基于 OpenGL 衍生出来的分支、派系,林林总总,多如牛毛。Python 旗下,影响较大的三维库有 pyOpenGl / VTK / Mayavi / Vispy 等,它们各自拥有庞大的用户群体。VTK 在医学领域应用广泛,Vispy 在科研领域粉丝众多。VTK 和 Vispy 都是基于 OpenGL 的扩展,Mayavi 则是基于VTK 的,因此很多的医学影像应用都是采用 Python + VTK + ITK + Maya原创 2019-07-25 17:20:53 · 9441 阅读 · 26 评论