3D with Ruby (Ogre ?)

Hello, I'm french, sorry for my mistakes.

I would like to do 3D with Ruby.

I tried Ogre.rb, but this project requires a lot of other gems to be
installed, and there are still some files missing. Can't I just download
a ready-to-use sample ?
It's a lot of work to install all these files and I'm not even sure it
will be working at last.

So, I'm looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:

···

--
Posted via http://www.ruby-forum.com/.

Ogre.rb is not at all ready for use right now, but other than my work there
I don't know of any workable Ruby wrapper to a 3D engine.

If you're looking to just work with 3D yourself, there's always straight
OpenGL, and a few Ruby wrappers around that library. When you say "do 3D
with Ruby", what kind of project are you looking to build?

Jason

···

On Tue, Jan 12, 2010 at 8:21 AM, Marc-antoine Kruzik <kadelfek@kadelfek.com>wrote:

Hello, I'm french, sorry for my mistakes.

I would like to do 3D with Ruby.

I tried Ogre.rb, but this project requires a lot of other gems to be
installed, and there are still some files missing. Can't I just download
a ready-to-use sample ?
It's a lot of work to install all these files and I'm not even sure it
will be working at last.

So, I'm looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:
--
Posted via http://www.ruby-forum.com/\.

Marc-antoine Kruzik wrote:

Hello, I'm french, sorry for my mistakes.

I would like to do 3D with Ruby.

I tried Ogre.rb, but this project requires a lot of other gems to be
installed, and there are still some files missing. Can't I just download
a ready-to-use sample ?
It's a lot of work to install all these files and I'm not even sure it
will be working at last.

So, I'm looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:

The GL gears example exists for ruby (gears.rb). I have a copy lying
around, and it still runs. You should be able to find it through Google.

Comments in source say:

# 2005-05-01 Ruby version by Arto Bendiken based on gears.c rev 1.8.
# 2005-01-09 Original C version (gears.c) by Brian Paul et al.
# http://cvs.freedesktop.org/mesa/Mesa/progs/demos/gears.c?rev=1.8

···

--
Posted via http://www.ruby-forum.com/\.

For those wanting to do 3D stuff with Ruby Processing, I also have a few screencasts up on YouTube, as well as some F/OSS code available on GitHub. 3D OSX Applications With Ruby-Processing Screencast – Preston Lee's Blog

Marc-antoine Kruzik wrote:

3D with Ruby (Ogre ?)
12-Jan-10

Hello, I am french, sorry for my mistakes.

I would like to do 3D with Ruby.

I tried Ogre.rb, but this project requires a lot of other gems to be
installed, and there are still some files missing. Can't I just download
a ready-to-use sample ?
it is a lot of work to install all these files and I am not even sure it
will be working at last.

So, I am looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:

···

--
Posted via http://www.ruby-forum.com/\.

Previous Posts In This Thread:

On Tuesday, January 12, 2010 8:21 AM Marc-antoine Kruzik wrote:

3D with Ruby (Ogre ?)
Hello, I am french, sorry for my mistakes.

I would like to do 3D with Ruby.

I tried Ogre.rb, but this project requires a lot of other gems to be
installed, and there are still some files missing. Can't I just download
a ready-to-use sample ?
it is a lot of work to install all these files and I am not even sure it
will be working at last.

So, I am looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:
--
Posted via http://www.ruby-forum.com/\.

On Tuesday, January 12, 2010 8:51 AM Jason Roelofs wrote:

[Note: parts of this message were removed to make it a legal post.]Ogre.
[Note: parts of this message were removed to make it a legal post.]

Ogre.rb is not at all ready for use right now, but other than my work there
I do not know of any workable Ruby wrapper to a 3D engine.

If you are looking to just work with 3D yourself, there is always straight
OpenGL, and a few Ruby wrappers around that library. When you say "do 3D
with Ruby", what kind of project are you looking to build?

Jason

On Tuesday, January 12, 2010 8:55 AM Brian Candler wrote:

Marc-antoine Kruzik wrote:The GL gears example exists for ruby (gears.rb).
Marc-antoine Kruzik wrote:

The GL gears example exists for ruby (gears.rb). I have a copy lying
around, and it still runs. You should be able to find it through Google.

Comments in source say:

--
Posted via http://www.ruby-forum.com/\.

On Tuesday, January 12, 2010 9:19 AM Marc-antoine Kruzik wrote:

Jason Roelofs wrote:Yes, I found so few informations about that...
Jason Roelofs wrote:

Yes, I found so few informations about that... I heard about Scattered
Ruby.
I know someone (Dem0nfire) who succeed to use Irrlicht with Ruby (and
RPG Maker) :

(click spoilers to see screenshots)

But it is still work in progress.

Create cubes with textures, some houses. I am a 2D games programmer, so
I would work a bit in 3D. I created a 3D graphical engine from a 2D
library. But using a real 3D library will be better.

I remember OpenGL is a bit strange to me, because of the vertex system.
But there are many tutorials and informations about OpenGL, so I think
it could be the better choice.

Thank you two for your advices.
--
Posted via http://www.ruby-forum.com/\.

On Tuesday, January 12, 2010 9:26 AM brabuh wrote:

I was just looking at this last week:GitHub - remogatto/ffi-opengl: A ruby-ffi binding to OpenGL libraries
I was just looking at this last week:

On Tuesday, January 12, 2010 10:02 AM Louis-Philippe wrote:

[Note: parts of this message were removed to make it a legal post.
[Note: parts of this message were removed to make it a legal post.]

ruby-processing, give you the 3D an OpenGL power Processing has:
http://wiki.github.com/jashkenas/ruby-processing

On Tuesday, January 12, 2010 11:32 AM Michael Brooks wrote:

Hello Marc-antoine and Brian:I used the the gears.
Hello Marc-antoine and Brian:

I used the the gears.rb as the basis for a OpenGL programmable shader (i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

Michael

On Wednesday, January 13, 2010 4:50 AM Marc-antoine Kruzik wrote:

Michael Brooks wrote:The shaders are nice. Is OpenGL able to use shaders ?
Michael Brooks wrote:

The shaders are nice. Is OpenGL able to use shaders ? Or you made it to
use shaders your own way ?

unknown wrote:

I have a bug. I installed required librairies, but there is still a
problem.
http://gemcutter.org/gems/ffi-opengl

Louis-Philippe wrote:

Ruby-processing seems to be very cool !
And powerfull.

I am looking at the "rp5 app" function to create windows executables (I am
working on windows).
The web version seems to be a good idea, but the programs weight at less
10 Mo.
And my firefox bugs when I try to load one.

I think I will use ruby-processing if I succeed to release windows
executables with it.
--
Posted via http://www.ruby-forum.com/\.

On Wednesday, January 13, 2010 7:09 AM Andrea Fazzi wrote:

Marc-antoine Kruzik wrote:What kind of bug?
Marc-antoine Kruzik wrote:

What kind of bug? Feel free to open an issue on github about it.
--
Posted via http://www.ruby-forum.com/\.

On Wednesday, January 13, 2010 10:19 AM Marc-antoine Kruzik wrote:

Andrea Fazzi wrote:I remember I have had this kind of problems, trying to use
Andrea Fazzi wrote:

I remember I have had this kind of problems, trying to use OpenGL.
Maybe I do not have the right version of one library, or I do not install
a SDK.

Here is my bug :

require "ffi-opengl"
FFI::NotFoundError: Function 'glClearIndex' not found in [[current
process]]
from
C:/Ruby/lib/ruby/gems/1.8/gems/ffi-0.5.4-x86-mswin32/lib/ffi/library.rb:77:in
`attach_function'
from
C:/Ruby/lib/ruby/gems/1.8/gems/ffi-opengl-0.2.1/lib/ffi-opengl/gl.rb:537
from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
from
C:/Ruby/lib/ruby/gems/1.8/gems/ffi-opengl-0.2.1/lib/ffi-opengl.rb:9

from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
`gem_original_require'
from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
`require'

My gem list :

*** LOCAL GEMS ***

archive-tar-minitar (0.5.2)
ffi (0.5.4)
ffi-opengl (0.2.1)
fxri (0.3.6)
fxruby (1.6.16)
hpricot (0.6.164)
log4r (1.0.5)
mkrf (0.2.3)
ogre.rb (0.3)
ogrerb_cg (1.5)
ogrerb_navi (1.4)
ogrerb_ogre (1.4.5)
ogrerb_ois (1.0)
pmsrb (0.2.0)
ptools (1.1.6)
rake (0.8.7, 0.8.1)
ruby-opengl (0.60.1, 0.60.0)
ruby-processing (1.0.8)
rubyzip (0.9.1)
test-unit (2.0.1)
win32-api (1.2.1, 1.2.0)
win32-clipboard (0.4.4)
win32-dir (0.3.2)
win32-eventlog (0.5.0)
win32-file (0.5.5)
win32-file-stat (1.3.1)
win32-process (0.5.9)
win32-sapi (0.1.4)
win32-sound (0.4.1)
windows-api (0.2.4)
windows-pr (0.9.3)
--
Posted via http://www.ruby-forum.com/\.

On Wednesday, January 13, 2010 10:45 AM Andrea Fazzi wrote:

Marc-antoine Kruzik wrote:Marc-antoine,if you are interested in using
Marc-antoine Kruzik wrote:

Marc-antoine,

if you are interested in using ffi-opengl, please redirect this bug
report in the proper place, the github issue tracker

In this way things do not get scattered throughout the net and we can
continue our discussion in the proper place :slight_smile:

Thank you,
Andrea
--
Posted via http://www.ruby-forum.com/\.

On Wednesday, January 13, 2010 2:41 PM Phillip Gawlowski wrote:

On 13.01.
On 13.01.2010 10:50, Marc-antoine Kruzik wrote:

OpenGL Shading Language <http://www.opengl.org/documentation/glsl/&gt; at
least allows you to use shaders. In which way, I do not know, however,
you would have to read teh doc yourself to find out. :wink:

--
Phillip Gawlowski

On Wednesday, January 13, 2010 2:50 PM Michael Brooks wrote:

Hello Marc-antoine:OpenGL has had shaders for quite a while:http://en.
Hello Marc-antoine:

OpenGL has had shaders for quite a while:

http://www.opengl.org/documentation/glsl/

All you need to do is write the shaders and load them into the GPU via
OpenGL's GLSL API.

OpenGL and Microsoft DirectX/3D have been leapfrogging each other for the
past 10 years and the shader capabilities of each are pretty comparable.
Because of OpenGLs extension mechanism OpenGL will sometimes get a feature
before DirectX/3D but unfortunately the acquiring the Pixel Format /
Rendering Context (roughly equivalent to the capability-bits in DirectX/3D)
in OpenGL has gotten really ugly because of that.

Michael

On Thursday, January 14, 2010 4:38 PM brabuh wrote:

e.be"To run GLSL you need the GL_ARB_shading_language_100 extension.
e.
be

"To run GLSL you need the GL_ARB_shading_language_100 extension."[1]

On my system:

$ glxinfo | fgrep shading
GL_ARB_shadow, GL_ARB_shader_objects, GL_ARB_shading_language_100,

[1] Khronos Forums - Khronos Standards community discussions
umber=3D253236

On Thursday, January 14, 2010 6:00 PM Michael Brooks wrote:

Hello Michal:s>upport OpenGL 2.0 or greater GLSL shaders.
Hello Michal:

upport OpenGL 2.0 or greater GLSL shaders.

I implemented the OpenGL 2.0 or greater version of the shader functions so
you will likely need to install OpenGL 2.0 or greater drivers for your video
card. It looks like you are running the software-only OpenGL drivers that
come with Linux.

In the initialize procedure I do the following check for the required OpenGL
functions:

if not (GL.respond_to?('CreateProgram') and
GL.respond_to?('CreateShader') and
GL.respond_to?('ShaderSource') and
GL.respond_to?('CompileShader') and
GL.respond_to?('AttachShader') and
GL.respond_to?('LinkProgram') and
GL.respond_to?('DeleteShader') and
GL.respond_to?('DeleteProgram'))
puts('Error - The program has terminated because the environment does
' +
'not support OpenGL 2.0 or greater GLSL shaders.')
exit
end

In theory, if your MESA / SGI driver supported shaders through ARB
extensions (like some earlier OpenGL's did) instead of as built in functions
(like OpenGL 2.0+ in the recent ATI, Nvidia and Intel drivers) then you
could modify this section and other sections of code to use the alternate
(i.e. older) function names. However, I do not believe your drivers support
shaders at all.

Michael

On Friday, January 15, 2010 1:40 AM Michal Suchanek wrote:

2010/1/15 Michael Brooks <michael.brooks@shaw.
2010/1/15 Michael Brooks <michael.brooks@shaw.ca>:
o
o
that

direct rendering: Yes

It is not software only but they do not seem to support OpenGL 2.

nGL
nment does '
shaders.')
ons

Yes, there are some ARB extensions listed.

The problem is that Intel does not do special driver for Linux, their
hardware is supposedly supported by X11/Mesa and the proprietary
drivers for ATI/nVidia cards simply do not work (tried with recent
cards about half an year ago).

Running a demo is as far as I got in using OpenGL so I guess I will
pass on this for now.

support

It supports fragment and vertex programs. I do not know it that is
sufficient but I think FireGL V3350 should support some shading.

Thanks

Michal

On Friday, January 15, 2010 1:59 AM Phillip Gawlowski wrote:

On 15.01.2010 07:40, Michal Suchanek wrote:http://www.intel.
On 15.01.2010 07:40, Michal Suchanek wrote:

http://www.intel.com/support/graphics/sb/cs-010512.htm

They were not particularly good until recently, but they are there.

The one thing that worked out of the box in my last Linux experiment
with Ubuntu was Compiz Fusion and WiFi. :wink:

--
Phillip Gawlowski

On Friday, January 15, 2010 4:48 AM Michal Suchanek wrote:

These *are* the X11/Mesa drivers and they *are* bad as in having fewfeatures,
These *are* the X11/Mesa drivers and they *are* bad as in having few
features, possibly in part because of limitations of the Intel
hardware.

The stability has also worsened recently. Too many chipset revisions
with different hardware issues I guess.

Thanks

Michal

On Friday, January 15, 2010 5:20 AM Michael Brooks wrote:

Hello Michal:Sorry to hear that. I do most of my work in Windows.
Hello Michal:

Sorry to hear that. I do most of my work in Windows. I just booted my
desktop into Mint Linux 7 which already had the Nvidia 3D drivers installed
then installed ruby 1.8.7, glut, ruby-opengl and ran the
gears_with_shaders.rb file just fine. I have had the best success with Nvidia
under Linux. Even the Geforce Go 6150 in my old HP tx1000 laptop supports
OpenGL 2.1 in Mint Linux 8. I have had some success with ATI in Linux but it
varies greatly for different models and from distro-to-distro. I'd heard
that the Intel x3100 IGP and later chipsets were supposed to support OpenGL
2.0+ but have not had direct experience with them.

Michael

On Friday, January 15, 2010 8:18 AM Michal Suchanek wrote:

2010/1/15 Michael Brooks <michael.brooks@shaw.
2010/1/15 Michael Brooks <michael.brooks@shaw.ca>:
ooted my
ed
h Nvidia
pports
but it

The nVIdia drivers may have better 3D support but no matter what I do
I cannot set up rotated display properly on them. The glue for binary
ATI drivers did not even compile for me.

The mesa library should support OpenGL 2.1 since version 7 but it
seems that support for different features in hardware accelerated
drivers varies per chipset due to hardware limitations or some
features may be simply not implemented for some hardware.

I would also think that higher level libraries like Ogre or
CrystalSpace would make a better job at isolating the developer from
these hardware and driver differences than raw OpenGL.

heard
GL

I do not have such system at hand either, only i945G/GM (something like
GMA900 or GMA950) here.

Thanks

Michal

On Friday, January 15, 2010 9:10 AM Marc-antoine Kruzik wrote:

I tested Ruby-processing and I saw good 3D samples made thanks toOpenGL.
I tested Ruby-processing and I saw good 3D samples made thanks to
OpenGL.

But I did'nt find people using it to do something.
I just found some samples using free-context, but it is not 3D.

Does someone use Ruby-Processing to made something greater than a 15
seconds technical demo ?
--
Posted via http://www.ruby-forum.com/\.

Submitted via EggHeadCafe - Software Developer Portal of Choice
AJAX Web Service Driven Customers Table With Customer Details
http://www.eggheadcafe.com/tutorials/aspnet/4c3d2726-d99e-4f83-9e49-0d4867b6271a/ajax-web-service-driven-customers-table-with-customer-details.aspx

Jason Roelofs wrote:

Ogre.rb is not at all ready for use right now, but other than my work
there
I don't know of any workable Ruby wrapper to a 3D engine.

Yes, I found so few informations about that... I heard about Scattered
Ruby.
I know someone (Dem0nfire) who succeed to use Irrlicht with Ruby (and
RPG Maker) :

(click spoilers to see screenshots)

But it's still work in progress.

If you're looking to just work with 3D yourself, there's always straight
OpenGL, and a few Ruby wrappers around that library. When you say "do 3D
with Ruby", what kind of project are you looking to build?

Create cubes with textures, some houses. I am a 2D games programmer, so
I would work a bit in 3D. I created a 3D graphical engine from a 2D
library. But using a real 3D library will be better.

I remember OpenGL is a bit strange to me, because of the vertex system.
But there are many tutorials and informations about OpenGL, so I think
it could be the better choice.

Thank you two for your advices.

···

--
Posted via http://www.ruby-forum.com/\.

I was just looking at this last week:

···

On Tue, Jan 12, 2010 at 8:55 AM, Brian Candler <b.candler@pobox.com> wrote:

Marc-antoine Kruzik wrote:

So, I'm looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:

The GL gears example exists for ruby (gears.rb). I have a copy lying
around, and it still runs. You should be able to find it through Google.

Hello Marc-antoine and Brian:

Marc-antoine Kruzik wrote:

Hello, I'm french, sorry for my mistakes.
So, I'm looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:

Brian Candler wrote:
The GL gears example exists for ruby (gears.rb). I have a copy lying
around, and it still runs. You should be able to find it through Google.

I used the the gears.rb as the basis for a OpenGL programmable shader (i.e. GLSL) version of the gears program. The intro to it and download can be found through here:

Michael

ruby-processing, give you the 3D an OpenGL power Processing has:
http://wiki.github.com/jashkenas/ruby-processing

···

2010/1/12 <brabuhr@gmail.com>

On Tue, Jan 12, 2010 at 8:55 AM, Brian Candler <b.candler@pobox.com> > wrote:
> Marc-antoine Kruzik wrote:
>> So, I'm looking for the easiest way to use a 3D library with Ruby.
>> Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
>> library will be ok. :slight_smile:
>
> The GL gears example exists for ruby (gears.rb). I have a copy lying
> around, and it still runs. You should be able to find it through Google.

I was just looking at this last week:

GitHub - remogatto/ffi-opengl: A ruby-ffi binding to OpenGL libraries

FWIW this does nt work for me on Linux.

$ ruby gears_using_shaders.rb
Error - The program has terminated because the environment does not
support OpenGL 2.0 or greater GLSL shaders.
$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
    GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
    GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RV515 7153) 20090101 TCL
OpenGL version string: 1.5 Mesa 7.6.1
OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
    GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_shadow,
    GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,
    GL_ARB_texture_compression, GL_ARB_texture_cube_map,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_MESAX_texture_float, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
    GL_ARB_vertex_array_bgra, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra,
    GL_EXT_blend_color, GL_EXT_blend_equation_separate,
    GL_EXT_blend_func_separate, GL_EXT_blend_logic_op, GL_EXT_blend_minmax,
    GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, GL_EXT_convolution,
    GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_fog_coord,
    GL_EXT_gpu_program_parameters, GL_EXT_histogram, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
    GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
    GL_EXT_secondary_color, GL_EXT_separate_specular_color,
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
    GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_vertex_array,
    GL_EXT_vertex_array_bgra, GL_APPLE_packed_pixels,
    GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3,
    GL_ATI_texture_mirror_once, GL_ATI_separate_stencil,
    GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
    GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_MESA_window_pos,
    GL_NV_blend_square, GL_NV_light_max_exponent, GL_NV_texture_rectangle,
    GL_NV_texgen_reflection, GL_NV_vertex_program, GL_OES_read_format,
    GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

   visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat

···

2010/1/12 Michael Brooks <michael.brooks@shaw.ca>:

Hello Marc-antoine and Brian:

Marc-antoine Kruzik wrote:

Hello, I'm french, sorry for my mistakes.
So, I'm looking for the easiest way to use a 3D library with Ruby.
Not especially Ogre.rb, because I just want to do 3D with Ruby. Any 3D
library will be ok. :slight_smile:

Brian Candler wrote:
The GL gears example exists for ruby (gears.rb). I have a copy lying
around, and it still runs. You should be able to find it through Google.

I used the the gears.rb as the basis for a OpenGL programmable shader (i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

OSDIR

----------------------------------------------------------------------
0x21 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x22 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x67 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x68 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x69 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x6a 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x6b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x5e 32 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 Ncon

Michael Brooks wrote:

I used the the gears.rb as the basis for a OpenGL programmable shader
(i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

OSDIR

The shaders are nice. Is OpenGL able to use shaders ? Or you made it to
use shaders your own way ?

unknown wrote:

I was just looking at this last week:

GitHub - remogatto/ffi-opengl: A ruby-ffi binding to OpenGL libraries

I have a bug. I installed required librairies, but there is still a
problem.
http://gemcutter.org/gems/ffi-opengl

Louis-Philippe wrote:

ruby-processing, give you the 3D an OpenGL power Processing has:
http://wiki.github.com/jashkenas/ruby-processing

Ruby-processing seems to be very cool !
And powerfull.

I'm looking at the "rp5 app" function to create windows executables (I'm
working on windows).
The web version seems to be a good idea, but the programs weight at less
10 Mo.
And my firefox bugs when I try to load one.

I think I will use ruby-processing if I succeed to release windows
executables with it.

···

--
Posted via http://www.ruby-forum.com/\.

I used the the gears.rb as the basis for a OpenGL programmable shader (i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

OSDIR

FWIW this does nt work for me on Linux.

$ ruby gears_using_shaders.rb
Error - The program has terminated because the environment does not
support OpenGL 2.0 or greater GLSL shaders.

"To run GLSL you need the GL_ARB_shading_language_100 extension."[1]

On my system:

$ glxinfo | fgrep shading
    GL_ARB_shadow, GL_ARB_shader_objects, GL_ARB_shading_language_100,

[1] Khronos Forums - Khronos Standards community discussions

Hello Michal:

I used the the gears.rb as the basis for a OpenGL programmable shader (i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

http://osdir.com/ml/ruby-talk/2009-03/msg00749.html

FWIW this does nt work for me on Linux.

$ ruby gears_using_shaders.rb
Error - The program has terminated because the environment does not
upport OpenGL 2.0 or greater GLSL shaders.
$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RV515 7153) 20090101 TCL
OpenGL version string: 1.5 Mesa 7.6.1

I implemented the OpenGL 2.0 or greater version of the shader functions so you'll likely need to install OpenGL 2.0 or greater drivers for your video card. It looks like you're running the software-only OpenGL drivers that come with Linux.

In the initialize procedure I do the following check for the required OpenGL functions:

    # Exit if the environment can't handle the OpenGL 2.0 style
    # GLSL shader api commands
    if not (GL.respond_to?('CreateProgram') and
            GL.respond_to?('CreateShader') and
            GL.respond_to?('ShaderSource') and
            GL.respond_to?('CompileShader') and
            GL.respond_to?('AttachShader') and
            GL.respond_to?('LinkProgram') and
            GL.respond_to?('DeleteShader') and
            GL.respond_to?('DeleteProgram'))
      puts('Error - The program has terminated because the environment does ' +
           'not support OpenGL 2.0 or greater GLSL shaders.')
      exit
    end

In theory, if your MESA / SGI driver supported shaders through ARB extensions (like some earlier OpenGL's did) instead of as built in functions (like OpenGL 2.0+ in the recent ATI, Nvidia and Intel drivers) then you could modify this section and other sections of code to use the alternate (i.e. older) function names. However, I don't believe your drivers support shaders at all.

Michael

···

"Michal Suchanek" <hramrach@centrum.cz> wrote:

Marc-antoine Kruzik wrote:

I have a bug. I installed required librairies, but there is still a
problem.
RubyGems.org | your community gem host

What kind of bug? Feel free to open an issue on github about it.

···

--
Posted via http://www.ruby-forum.com/\.

OpenGL Shading Language <http://www.opengl.org/documentation/glsl/&gt; at least allows you to use shaders. In which way, I don't know, however, you'd have to read teh doc yourself to find out. :wink:

···

On 13.01.2010 10:50, Marc-antoine Kruzik wrote:

Michael Brooks wrote:

I used the the gears.rb as the basis for a OpenGL programmable shader
(i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

OSDIR

The shaders are nice. Is OpenGL able to use shaders ? Or you made it to
use shaders your own way ?

--
Phillip Gawlowski

Hello Marc-antoine:

Michael Brooks wrote:

I used the the gears.rb as the basis for a OpenGL programmable shader
(i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

OSDIR

The shaders are nice. Is OpenGL able to use shaders ? Or you made it to
use shaders your own way ?

OpenGL has had shaders for quite a while:

http://www.opengl.org/documentation/glsl/

All you need to do is write the shaders and load them into the GPU via OpenGL's GLSL API.

OpenGL and Microsoft DirectX/3D have been leapfrogging each other for the past 10 years and the shader capabilities of each are pretty comparable. Because of OpenGLs extension mechanism OpenGL will sometimes get a feature before DirectX/3D but unfortunately the acquiring the Pixel Format / Rendering Context (roughly equivalent to the capability-bits in DirectX/3D) in OpenGL has gotten really ugly because of that.

Michael

Hello Michal:

I used the the gears.rb as the basis for a OpenGL programmable shader
(i.e.
GLSL) version of the gears program. The intro to it and download can be
found through here:

OSDIR

FWIW this does nt work for me on Linux.

$ ruby gears_using_shaders.rb
Error - The program has terminated because the environment does not

>upport OpenGL 2.0 or greater GLSL shaders.

$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RV515 7153) 20090101 TCL
OpenGL version string: 1.5 Mesa 7.6.1

I implemented the OpenGL 2.0 or greater version of the shader functions so
you'll likely need to install OpenGL 2.0 or greater drivers for your video
card. It looks like you're running the software-only OpenGL drivers that
come with Linux.

direct rendering: Yes

It isn't software only but they don't seem to support OpenGL 2.

In the initialize procedure I do the following check for the required OpenGL
functions:

# Exit if the environment can't handle the OpenGL 2.0 style
# GLSL shader api commands
if not (GL.respond_to?('CreateProgram') and
GL.respond_to?('CreateShader') and
GL.respond_to?('ShaderSource') and
GL.respond_to?('CompileShader') and
GL.respond_to?('AttachShader') and
GL.respond_to?('LinkProgram') and
GL.respond_to?('DeleteShader') and
GL.respond_to?('DeleteProgram'))
puts('Error - The program has terminated because the environment does '
+
'not support OpenGL 2.0 or greater GLSL shaders.')
exit
end

In theory, if your MESA / SGI driver supported shaders through ARB
extensions (like some earlier OpenGL's did) instead of as built in functions

Yes, there are some ARB extensions listed.

(like OpenGL 2.0+ in the recent ATI, Nvidia and Intel drivers) then you

The problem is that Intel does not do special driver for Linux, their
hardware is supposedly supported by X11/Mesa and the proprietary
drivers for ATI/nVidia cards simply don't work (tried with recent
cards about half an year ago).

could modify this section and other sections of code to use the alternate

Running a demo is as far as I got in using OpenGL so I guess I will
pass on this for now.

(i.e. older) function names. However, I don't believe your drivers support
shaders at all.

It supports fragment and vertex programs. I don't know it that's
sufficient but I think FireGL V3350 should support some shading.

Thanks

Michal

···

2010/1/15 Michael Brooks <michael.brooks@shaw.ca>:

"Michal Suchanek" <hramrach@centrum.cz> wrote:

Andrea Fazzi wrote:

Marc-antoine Kruzik wrote:

I have a bug. I installed required librairies, but there is still a
problem.
RubyGems.org | your community gem host

What kind of bug? Feel free to open an issue on github about it.

I remember I have had this kind of problems, trying to use OpenGL.
Maybe I don't have the right version of one library, or I don't install
a SDK.

Here's my bug :

require "ffi-opengl"
FFI::NotFoundError: Function 'glClearIndex' not found in [[current
process]]
        from
C:/Ruby/lib/ruby/gems/1.8/gems/ffi-0.5.4-x86-mswin32/lib/ffi/library.rb:77:in
`attach_function'
        from
C:/Ruby/lib/ruby/gems/1.8/gems/ffi-opengl-0.2.1/lib/ffi-opengl/gl.rb:537
        from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
        from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
        from
C:/Ruby/lib/ruby/gems/1.8/gems/ffi-opengl-0.2.1/lib/ffi-opengl.rb:9

        from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
`gem_original_require'
        from
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
`require'

My gem list :

*** LOCAL GEMS ***

archive-tar-minitar (0.5.2)
ffi (0.5.4)
ffi-opengl (0.2.1)
fxri (0.3.6)
fxruby (1.6.16)
hpricot (0.6.164)
log4r (1.0.5)
mkrf (0.2.3)
ogre.rb (0.3)
ogrerb_cg (1.5)
ogrerb_navi (1.4)
ogrerb_ogre (1.4.5)
ogrerb_ois (1.0)
pmsrb (0.2.0)
ptools (1.1.6)
rake (0.8.7, 0.8.1)
ruby-opengl (0.60.1, 0.60.0)
ruby-processing (1.0.8)
rubyzip (0.9.1)
test-unit (2.0.1)
win32-api (1.2.1, 1.2.0)
win32-clipboard (0.4.4)
win32-dir (0.3.2)
win32-eventlog (0.5.0)
win32-file (0.5.5)
win32-file-stat (1.3.1)
win32-process (0.5.9)
win32-sapi (0.1.4)
win32-sound (0.4.1)
windows-api (0.2.4)
windows-pr (0.9.3)

···

--
Posted via http://www.ruby-forum.com/\.

http://www.intel.com/support/graphics/sb/cs-010512.htm

They weren't particularly good until recently, but they are there.

The one thing that worked out of the box in my last Linux experiment with Ubuntu was Compiz Fusion and WiFi. :wink:

···

On 15.01.2010 07:40, Michal Suchanek wrote:

The problem is that Intel does not do special driver for Linux, their
hardware is supposedly supported by X11/Mesa and the proprietary
drivers for ATI/nVidia cards simply don't work (tried with recent
cards about half an year ago).

--
Phillip Gawlowski

Marc-antoine Kruzik wrote:

I remember I have had this kind of problems, trying to use OpenGL.
Maybe I don't have the right version of one library, or I don't install
a SDK.

Marc-antoine,

if you're interested in using ffi-opengl, please redirect this bug
report in the proper place, the github issue tracker

In this way things don't get scattered throughout the net and we can
continue our discussion in the proper place :slight_smile:

Thank you,
Andrea

···

--
Posted via http://www.ruby-forum.com/\.

These *are* the X11/Mesa drivers and they *are* bad as in having few
features, possibly in part because of limitations of the Intel
hardware.

The stability has also worsened recently. Too many chipset revisions
with different hardware issues I guess.

Thanks

Michal

···

2010/1/15 Phillip Gawlowski <pg@thimian.com>:

On 15.01.2010 07:40, Michal Suchanek wrote:

The problem is that Intel does not do special driver for Linux, their
hardware is supposedly supported by X11/Mesa and the proprietary
drivers for ATI/nVidia cards simply don't work (tried with recent
cards about half an year ago).

http://www.intel.com/support/graphics/sb/cs-010512.htm

They weren't particularly good until recently, but they are there.