`
kiol
  • 浏览: 43767 次
  • 来自: ...
社区版块
存档分类
最新评论

使用ruby学习opengl

阅读更多
最近工作需要要学习opengl,无奈对C/C++不是特别熟,而现在的opengl的权威著作都是c/c++写的,而且每次都要编译运行,对于学习新东西的效率并不高。
然后就想看看自己最喜欢的ruby下面有什么可用资源,结果找到了ruby-opengl.
ruby-opengl是一个opengl,glu,glut的ruby绑定,它有非常灵活的语法,有三种书写方式,如下
第一种
ruby 代码
  1. require 'opengl'  
  2. ...  
  3. Gl.glFooBar( Gl::GL_FOO_BAR )  
  4. Glu.gluFooBar( Glu::GLU_FOO_BAR )  
  5. Glut.glutFooBar( Glut::GLUT_FOO_BAR )  
第二种
ruby 代码
  1. require 'opengl'  
  2. ...  
  3. GL.FooBar( GL::FOO_BAR )  
  4. GLU.FooBar( GLU::FOO_BAR )  
  5. GLUT.FooBar( GLUT::FOO_BAR )  
我最喜欢的是第三种
ruby 代码
  1. require 'opengl'  
  2. include Gl,Glu,Glut  
  3. ...  
  4. glFooBar( GL_FOO_BAR )  
  5. gluFooBar( GLU_FOO_BAR )  
  6. glutFooBar( GLUT_FOO_BAR )  
发现了吗?第三种的语法跟C/C++是完全相同的,这样opengl的书中的例子几乎可以直接拿来用了。

现在可以享受动态语言的opengl了,你甚至可以在程序运行中动态改变Display函数来改变结果。
我的初步想法是Display时,执行另一个脚本文件,然后我就直接在这个文件里面写代码就可以动态修改了。
过几天有时间了,作一下,贴出来大家讨论一下:)
分享到:
评论

相关推荐

    无涯教程(LearnFk)-Ruby教程完整离线版.pdf

    同时,Ruby的GUI工具支持(如Tcl/Tk、GTK和OpenGL)也使得创建图形界面的程序变得简单。另外,Ruby的“Here Document”特性是构建多行字符串的一种独特方式,它允许在代码中直接嵌入字符串,这对于格式化输出和配置...

    cuda和opengl的互操作demo

    OpenGL使用顶点数组、纹理、着色器等来描述和操作图形。其中,顶点着色器和片段着色器是关键部分,它们可以在GPU上运行,允许自定义像素和几何处理。 在CUDA和OpenGL的互操作中,通常使用`...

    w3school ruby教程 飞龙整理 20141001

    Ruby的内置函数丰富,使得开发者可以直接在脚本中使用,无需额外的库或模块。 对于新手而言,学习Ruby相对容易,因为它的语法简洁,且与C++和Perl等语言有相似之处,这使得新开发者能够快速上手。此外,Ruby的可...

    ruby-libs-2.0.0.648-35.el7_6.i686.rpm

    Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。 Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。 Ruby 可用于开发的 Internet 和 Intranet ...

    ruby 和 gosu 的 图像处理工具_c语言_代码_下载

    在C语言领域,虽然与Ruby和Gosu的组合不直接相关,但C语言是许多底层图形库的基础,如OpenGL、SDL等。这些库被广泛用于开发高性能的游戏和图形应用,而Ruby的Gosu库可能就是建立在这样的底层技术之上。理解C语言的...

    crystal-cube:Crystal + OpenGL中使用GLFW进行窗口旋转的彩色立方体

    而Crystal是一种现代、静态类型的系统编程语言,它的设计目标是结合Rust的安全性、Go的简洁性和Ruby的表达能力。在本项目"crystal-cube"中,我们将探讨如何在Crystal编程语言环境下,结合OpenGL和GLFW库来创建一个可...

    aventura-do-saber:一个用 Ruby 制作的教育游戏,基于 MiniGL 库

    "aventura-do-saber"项目就是这样一个例子,它是一个使用Ruby语言开发的教育游戏,旨在通过游戏化的体验提升学习效果。该项目基于MiniGL库,这是一款轻量级的图形库,为开发者提供了创建2D和3D图形的能力,特别适合...

    crystal-raw-gl:与OpenGL和GLU的晶体绑定

    OpenGL是计算机图形学中广泛使用的应用编程接口(API),它允许程序员创建复杂的3D图形和交互式视觉效果。...对于初学者,建议先学习基本的图形编程概念,然后再尝试使用"crystal-raw-gl"来实现自己的项目。

    计算机英文专用术语

    PHP的语法灵活,易于学习,且执行效率高,能够直接嵌入到HTML中,广泛应用于网站编程。 4. **OpenGL**:OpenGL是一种高级图形编程接口,支持跨平台和多编程语言,用于创建高质量的2D和3D图形,广泛应用于游戏、CAD...

    nodesnim:基于OpenGL和SDL2的Nim GUI2D框架

    这个框架是用Nim语言编写的,Nim是一种现代、静态类型、系统级编程语言,旨在提供C++和Rust等语言的性能,同时保持Python和Ruby等动态语言的易读性和简洁性。 **Nim语言介绍** Nim拥有丰富的语法特性,如类型推断、...

    ios_ffmpeg解码视频

    最后,`FFmpegtest`可能是一个示例项目,包含了一些基本的代码示例,你可以通过阅读和学习这些代码来更好地理解FFmpeg在iOS上的视频解码和转换过程。在实践中,结合文档和源码,不断调试和优化,你将能够熟练地在iOS...

    SDL电子资料电子书

    最重要的是,它提供了一个2D图形帧缓冲接口,以及为OpenGL和其他操作系统提供统一接口以支持3D图形处理。 - **应用领域**:SDL最初设计用于电脑游戏开发,但其应用范围已扩展至多媒体播放器、教育软件等多个领域。 -...

    腾讯Android自动化测试实战电子书

    例如,使用Tracer for OpenGL ES分析GPU渲染性能,使用systrace进行系统调用跟踪,或者借助Firebase Test Lab进行云端大规模的设备兼容性测试。 最后,对于测试报告的生成和分析,例如TestNG可以生成详细的测试报告...

    棱镜:用水晶编写的3D游戏引擎

    OpenGL水晶可能是对OpenGL的一个包装库,它为Crystal提供了更友好的接口,简化了在Crystal中使用OpenGL的过程。 游戏引擎还需要处理物理模拟、碰撞检测、音频处理、输入管理等多个方面。虽然“棱镜”引擎的具体实现...

    lirith:用Crystal编写的图形引擎

    3. **语法简洁**:Crystal的语法类似Ruby,易于阅读和编写,减少了学习曲线。 4. **编译速度**:Crystal是编译型语言,编译后的程序执行速度快。 5. **内存管理**:自动垃圾回收机制使得内存管理更加简单。 **...

    ClanRuby-开源

    1. **简单的 API**:ClanRuby 将 ClanLib 的 C++ 接口转换为 Ruby 风格的代码,使得 Ruby 开发者可以以更自然的方式使用 ClanLib。 2. **动态语言优势**:利用 Ruby 的动态特性,如元编程,可以快速实验和迭代,降低...

    Android_近百个项目的源代码

    7. **AndroidShapes**:一个游戏或图形库项目,展示了复杂的图形绘制和动画效果,可能使用了OpenGL ES、Canvas API或自定义View等技术。 8. **AndroidJSONRPC**:专注于JSON-RPC协议的实现,涉及到网络通信、序列化...

    网游开发基础代码我的收藏

    4. **图形图像处理**:游戏的画面质量直接影响用户体验,因此,开发者需要了解OpenGL、DirectX等图形库,学习3D建模、纹理映射、光照效果等,实现逼真的游戏场景。 5. **游戏引擎**:使用Unity3D、Unreal Engine等...

    Calvary Game Development Kit-开源

    开发者可以解压此文件,通过阅读源代码、编译项目或运行示例来了解和学习CalvaryGDK的工作原理和使用方法。 使用CalvaryGDK,开发者可以期待以下关键功能: 1. **3D图形渲染**:支持现代图形API,如OpenGL或Vulkan...

Global site tag (gtag.js) - Google Analytics