patchGNU Octave - Patches: patch #8943, object class "light" for...

 
 

patch #8943: object class "light" for lighting effects on patches and surfaces

Submitted by:  Markus Mützel <mmuetzel>
Submitted on:  Mon 14 Mar 2016 03:24:17 PM UTC  
 
Category:  Core : other Priority:  5 - Normal
Status:  Done Privacy:  Public
Assigned to:  None Open/Closed:  Closed

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Thu 04 Aug 2016 03:58:12 PM UTC, comment #37: 

I've tested, and the patch you posted fixes the FLTK plotting crash, thanks.

I also tried converting the "renderer" to a pointer and then calling "new" within the OpenGL_fltk constructor.  That did NOT work.  Not quite sure what the issue is other than OpenGL initialization for FLTK is tricky.

Dan Sebald <sebald>
Thu 04 Aug 2016 07:32:20 AM UTC, comment #36: 

Thank you, Dan, for pointing me to the issues you discovered in bug #48869. I am answering here to the issue there:

It is probably not necessary to call "get_maxlights" in the constructor of gl_render. If the current implementation causes problems, it should be possible to move "get_maxlights" to "draw_axes_children" (see attached changeset).
I am not seeing any segfaults on the systems where I ran my tests with this change or before. Can you please test whether this fixes the segfault for you?
I cannot comment on whether it would make (more) sense to move renderer() inside of the constructor for OpenGL_fltk. On the one hand, I am not familiar enough with the fltk code and, on the other hand, I cannot test whether this would fix the segfault.

Wrt your second question: num_lights counts all lights in the axes and within (nested) hggroups. The function from which your code snippet originates calls itself recursively for (nested) hggroups. "num_lights" is still initialized to 0 in draw_axes_children.

(file #38104)

Markus Mützel <mmuetzel>
Project Member
Tue 02 Aug 2016 09:49:40 PM UTC, comment #35: 

I think this may have introduced an FLTK bug by calling an OpenGL routine outside of an instantiated Fl_Gl_Window.  See here:

https://savannah.gnu.org/bugs/index.php?48669#comment10

I'm not sure how C++ orders initialization of something like

OpenGL_fltk (int xx, int yy, int ww, int hh, double num)
    : Fl_Gl_Window (xx, yy, ww, hh, 0), number (num), renderer (),
      in_zoom (false), zoom_box ()

but maybe if renderer() is moved inside of the constructor function it would work.

I have another unrelated question.  Initialization of num_lights was removed from before the loop, i.e.,:

-  // Start with the last element of the array of child objects to
-  // display them in the order they were added to the array.
-
-  num_lights = 0;

but it is still incremented somewhere within the loop.  How does one know that the member variable num_lights has been initialized?  Or is the idea simply to push num_lights as high as possible?

Dan Sebald <sebald>
Fri 29 Jul 2016 10:20:28 PM UTC, comment #34: 

This changeset looks good to me.  I edited the commit message and pushed it.

Closed as done.

Thanks!

John W. Eaton <jwe>
Project Administrator
Fri 29 Jul 2016 05:20:16 PM UTC, comment #33: 

The last changeset for this particular patch is file #38047. It contains all changes to lights since they were added to Octave. Please, ignore all other patches and references for the time being.

Philip started reviewing it but he didn't finish before his (well earned) holidays.

Markus Mützel <mmuetzel>
Project Member
Fri 29 Jul 2016 03:09:53 PM UTC, comment #32: 

I'm coming to this a little late, I guess.  There seem to be a lot of patches referenced in the comments below and I'm not sure of what should or should not be applied or in what order or whether things are fully ready to be applied to Octave.

Could someone summarize briefly?  I'd like to integrate the outstanding patches and I'm willing to review patches but I need a list of current patches that should be reviewed.

Thanks.

John W. Eaton <jwe>
Project Administrator
Sun 24 Jul 2016 09:31:23 PM UTC, comment #31: 

Markus,

(1) the patch you made from task #11311 applies fine but gave rise to compile errors in graphics.cc. After backing it out building Octave went w/o problems.

(2) "demo light" seems quit a bit aster now (on Linux, haven't yet tested on Windows).

I don't think I can spend much more time for Octave until mid-August. I wanted to review the code style etc of all patches (= the 5 mentioned in comment #28 + this one) but alas. If no one did by mid-August I can pick up again.

Philip Nienhuis <philipnienhuis>
Project Member
Sat 23 Jul 2016 04:06:50 PM UTC, comment #30: 

Could you please try the attached patch? It should apply on top of the others you have with a decently recent tip.

I cannot post on tasks (probably I lack the sufficient priviledges). I also had to do some decent merging to be able to apply the changeset from task #11311. It would probably be better if Pantxo rebased his patch because he knows probably better what he was doing when he wrote the patch in the first place. Anyway I will post the diff for that task that should apply on top of your patches here.

PS: Hint taken ;-)

(file #37999, file #38000)

Markus Mützel <mmuetzel>
Project Member
Sat 23 Jul 2016 12:48:52 PM UTC, comment #29: 

BTW if it is just a patch for light.m could you (also?) upload just a "diff -u" for that file, please?

Philip Nienhuis <philipnienhuis>
Project Member
Sat 23 Jul 2016 12:46:34 PM UTC, comment #28: 

Markus,
That latest patch, patch_8943_light_update1_v6.patch_G, fails to apply here.
I add light.m.rej here

FYI I've applied:

patch_8856_reducevolume_v2.patch_A
patch_8912_reducepatch_v3b.patch_B
patch_9014_camlight_v5.patch_C
patch_9013_material_v3.patch_D
patch_8872_isocaps_v3.patch_E
in that order, AFAIK according to your instructions.

(task_11311_add_constraints.patch_F  (not: patch_11311....) also doesn't apply)

(As you can see I start all patches/csets with the bug/patch/task number, otherwise it'ĺl become a big mess on my HDD and I cannot backtrack what patch belongs to which  bug/patch/task report.  Hint!)

(file #37996)

Philip Nienhuis <philipnienhuis>
Project Member
Thu 21 Jul 2016 08:29:56 PM UTC, comment #27: 

Markus,

The demo did work after all. I'll see if I can try this weekend, maybe earlier.

Philip Nienhuis <philipnienhuis>
Project Member
Thu 21 Jul 2016 01:25:55 PM UTC, comment #26: 

Philip, you are probably hitting bug #41277. I reduced the number of patches for the isosurfaces in some of the demos in the newest changeset here (file #37960).

That is only a change to "light.m" so you would not need to re-compile if you wanted to try whether that helps. The changes you would need to apply are in lines 250-286 in "light_update1_v6.patch". You might also try the new demos in lines 312-345 of the same file.

Markus Mützel <mmuetzel>
Project Member
Wed 20 Jul 2016 08:09:18 PM UTC, comment #25: 

Demos work fine in Windows. The last but one (a sphere) takes a while to also get its upper left drawn, but is otherwise OK.

Philip Nienhuis <philipnienhuis>
Project Member
Wed 20 Jul 2016 07:30:23 PM UTC, comment #24: 

I think I did include it, but now I am in Windows, just ready to install the new crossbuild that took a bit of fiddling to get built....
.... yep I did, I have the following included:

patch_8856_reducevolume_v2.patch_A
patch_8872_isocaps_v3.patch_E
patch_8912_reducepatch_v3b.patch_B
patch_8943_light_update1_v5.patch_G
patch_9013_material_v3.patch_D
patch_9014_camlight_v5.patch_C

I let you know asap, but it's already late now :-) Kids need to go to bed, cleaning up, etc etc. Tomorrow: my last work day before holiday (leave next Tue).

Philip Nienhuis <philipnienhuis>
Project Member
Wed 20 Jul 2016 06:12:11 PM UTC, comment #23: 

Philip, when you are going to make your next test build, could you please consider applying the latest patch from here, too, and run the demos for light?
The latest patch should apply cleanly on top of my other patches you were testing.

(file #37960)

Markus Mützel <mmuetzel>
Project Member
Sun 03 Jul 2016 08:45:21 PM UTC, comment #22: 

THis patch fixes additionally a bug when lighting edges of surfaces and adds demos for edge lighting to light.m.
It also removes the warning for "phong" in draw_surface.

(file #37694)

Markus Mützel <mmuetzel>
Project Member
Sat 02 Jul 2016 09:36:47 PM UTC, comment #21: 

With the latest patch the maximum number of lights is only checked once per Octave session instead of everytime when a OpenGL figure is touched.

It would be nice if the bug fixes and small new features included in this patch could make it into 4.2.0.

(file #37675)

Markus Mützel <mmuetzel>
Project Member
Wed 22 Jun 2016 07:03:38 PM UTC, comment #20: 

With the attached patch a warning is emitted when more lights are added than supported by the OpenGL implementation. I am unsure whether the warning id should be added to that warning.

The check for the actual number of lights (GL_MAX_LIGHTS is off for me in Ubuntu as well as Windows) was too late in the previous patch. So I moved it to the constructor of opengl_renderer. I hope this is OK.

I am getting the hang on calling "demo light 1" now as well intermittently. It seems to be reproducible when the demo is run immediately after starting Octave.
Interestingly, I can reproduce the hang with the following demo as well:

%!demo
%! clf;
%! h_axes2 = subplot(2, 2, 1);
%! % comment
%! % comment
%! % comment
%! % comment
%! % comment
%! % comment
%! % comment
%! % comment
%! % comment
%! % comment
%! h_axes2 = subplot(2, 2, 3);

It might be related to some interference between the pager and subplot.
I will run some more tests and file a bug about this if I cannot find an open one.

(file #37551)

Markus Mützel <mmuetzel>
Project Member
Tue 07 Jun 2016 04:05:53 PM UTC, comment #19: 

I was looking for a way to add limit checks for the properties that control lighting for patches and surfaces. I found  task #11311 where Pantxo already implemented just that. I cannot comment on that task. This is why I am writing here.
That patch does currently not apply on the default branch (haven't checked stable). But with some manual merging, it seems to do its job perfectly.

Does the patch from task #11311 (or a rebased version of it) still have a chance of being pushed?

Markus Mützel <mmuetzel>
Project Member
Fri 03 Jun 2016 06:31:05 PM UTC, comment #18: 

Yet another issue: At least for my system GL_MAX_LIGHTS is way too high (>3000). Yet, I start receiving GL errors when I add more than 8 lights.
I added a loop that tries how many lights can be disabled before GL-errors occur and stores that number in opengl_renderer::max_light.

(file #37381)

Markus Mützel <mmuetzel>
Project Member
Wed 01 Jun 2016 05:57:39 PM UTC, comment #17: 

This patch also includes support for local light sources. That was easier than expected as soon as I finally understood the OpenGL guides...

It also includes the prior patch from comment #16.

(file #37338)

Markus Mützel <mmuetzel>
Project Member
Tue 31 May 2016 04:38:36 PM UTC, comment #16: 

Attached a patch that also adds light objects within hggroups before drawing the other objects.

(file #37323)

Markus Mützel <mmuetzel>
Project Member
Tue 31 May 2016 03:59:39 PM UTC, comment #15: 

Posting here would be fine.

John W. Eaton <jwe>
Project Administrator
Tue 31 May 2016 03:57:20 PM UTC, comment #14: 

There is a bug in the current implementation of light: If the light is part of an hggroup that was added after the patch or surface object, light effects are not rendered for those objects.

I think I have an idea why this happens and how to fix it. Should I post a patch here or file a separate bug for this?

Markus Mützel <mmuetzel>
Project Member
Mon 30 May 2016 06:14:05 PM UTC, comment #13: 

I might take a shot at "camlight", that's the interface I miss most often.

Colin Macdonald <cbm>
Mon 30 May 2016 02:19:02 PM UTC, comment #12: 

Thank you, John, for pushing the changeset.
Now that light is present in Octave, I will try and submit patches for adding related functions such as lighting, material and camlight.

Colin, are you interested in adding some of these functions as well? I might give a start to "material" first...

Markus Mützel <mmuetzel>
Project Member
Mon 30 May 2016 01:53:11 PM UTC, comment #11: 

After running under gdb and finding where the demo hangs, it seems to be a problem with the pager, not with the graphics code.  Sorry for the trouble.

I've pushed the changeset now.

Thanks for your work on this!

John W. Eaton <jwe>
Project Administrator
Mon 30 May 2016 11:20:31 AM UTC, comment #10: 

Found another spot in gl-render.cc where the code differed slightly from other objects. However, that one should never be reached.
Other than that this patch is the same as light_v7.patch.

(file #37308)

Markus Mützel <mmuetzel>
Project Member
Mon 30 May 2016 08:59:56 AM UTC, comment #9: 

Thank you, John, for your feedback and improvements.

One thing that I found is that set_clipping is called before drawing the other graphics objects. I do not know what that is used for...

Can you please try whether the attached patch fixes the hang for the demo?

Sorry for the inconvenience.

(file #37307)

Markus Mützel <mmuetzel>
Project Member
Sun 29 May 2016 02:24:36 PM UTC, comment #8: 

I edited the commit message, added an entry for the NEWS file, fixed a typo in @qcode and made a few other style changes.  My updated version of the patch is attached.

I was ready to push the change but when I try "demo light" Octave stops responding after showing a figure window with an empty axes object.

I'm using

>> get (1, "__gl_version__")
ans = 3.0 Mesa 11.1.1
>> get (1, "__gl_vendor__")
ans = X.Org
>> get (1, "__gl_renderer__")
ans = Gallium 0.4 on AMD RS880 (DRM 2.43.0, LLVM 3.7.1)
>> get (1, "__gl_extensions__")
ans = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_NV_fog_distance GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_ATI_texture_mirror_once GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_shader_stencil_export GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_stencil_export GL_ARB_shader_texture_lod GL_ARB_texture_multisample GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_texture_barrier GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_base_instance GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_clear_buffer_object GL_ARB_explicit_uniform_location GL_ARB_invalidate_subdata GL_ARB_program_interface_query GL_ARB_stencil_texturing GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_vertex_attrib_binding GL_KHR_debug GL_AMD_pinned_memory GL_ARB_buffer_storage GL_ARB_multi_bind GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query GL_ARB_shader_texture_image_samples GL_ARB_texture_barrier GL_EXT_polygon_offset_clamp GL_KHR_context_flush_control

(file #37303)

John W. Eaton <jwe>
Project Administrator
Fri 27 May 2016 01:26:30 PM UTC, comment #7: 

Thank you for your feedback and interest.

The attached patch should fix the issue with the wrong newline characters in light.m and adds some documentation to the manual.

(file #37286)

Markus Mützel <mmuetzel>
Project Member
Wed 25 May 2016 05:48:11 PM UTC, comment #6: 

light_v4.patch compiles without error and "demo light" looks great to me.

Code looks reasonable enough to me, but I'm not expert.

I did notice "scripts/plot/draw/light.m" has dos newlines.  I'm not sure what Octave policy is, but other files in scripts/plot/draw have unix newlines:

isonormals.m:  ASCII text
isosurface.m:  ASCII text
light.m:       ASCII text, with CRLF line terminators
line.m:        ASCII text
loglogerr.m:   ASCII text
loglog.m:      ASCII text

Colin Macdonald <cbm>
Wed 25 May 2016 05:01:11 PM UTC, comment #5: 

I would also like to see this merged.  I'll try to take a look soon.

John W. Eaton <jwe>
Project Administrator
Wed 25 May 2016 09:09:35 AM UTC, comment #4: 

Thank you, Colin, for your interest in this patch and that you are willing to test it.

Attached, please find this patch rebased to the current tip of the mercurial default branch ( cset:45871845a93c ).

Please, let me know if you still have problems applying it.

I am looking to hear from your test results.

(file #37258)

Markus Mützel <mmuetzel>
Project Member
Wed 25 May 2016 07:43:09 AM UTC, comment #3: 

Thanks for this!  I'd very much like to see lighting (and camlight, etc) in Octave.  I'm willing to test the patch---not expert enough to do much more than that.

But is the patch against the mercurial (development) tip?  I get:

Hunk #5 succeeded at 10359 (offset 19 lines).
checking file libinterp/corefcn/graphics.in.h
Hunk #1 succeeded at 4815 (offset 4 lines).
Hunk #2 FAILED at 4904.
Hunk #3 FAILED at 5086.
2 out of 3 hunks FAILED

Colin Macdonald <cbm>
Wed 23 Mar 2016 03:43:44 PM UTC, comment #2: 

I updated the patch again to include:
- support of several lights
- respect the setting of "specularcolorreflectance"

Additionally, I changed the default value of "facelighting" for surface and patch from "none" to "flat" to match MATLAB and added a bunch of demos to lights.m primarily to easily check if something goes wrong.

In the meantime, I managed to set up a cross compile environment.
At least for me, lights also work with Windows. yeah

(file #36737)

Markus Mützel <mmuetzel>
Project Member
Fri 18 Mar 2016 03:09:55 PM UTC, comment #1: 

The updated patch adds support for the three setting of "BackFaceLighting" for "patch" and "surface" objects.
It also fixes the error when using "gnuplot".

The patch #8951 adds automatic calculation of "VertexNormals" for "patch" objects. The checks for has_normals in this patch should be removed when/if patch #8951 is accepted.

I would very much appreciate if someone could test this patch and run

demo light

Please, report any bugs you find. I would still appreciate any help, tips, info and opinions.

(file #36687)

Markus Mützel <mmuetzel>
Project Member
Mon 14 Mar 2016 03:24:17 PM UTC, original submission:  

Hi,

attached please find a first try of getting lighting effects to work on patches and surfaces.

"light.patch" includes the changes to Octave core functions. "light.m" is the actual function called from Octave to add a light source to the current axes.

As I am neither an expert in C++ nor OpenGL programming, I am happy that it seems to work quite well at least for me. I would appreciate any help, tips, info and opinions.

The current implementation suffers the following limitations:
- Only one light source is supported. I might work on this on a follow-up patch if I figure out a way to handle this.
- The "VertexNormals" of "patch" objects must be set manually. I think I know how to calculate the normals automatically but I am still working out how to patch the "patch" objects correctly.
- Only light sources at infinity are supported.
- The setting of "BackFaceLighting" of the "patch" and "surface" objects is ignored. I might work on implementing "backlit" later as it seems to be a side effect when calculating patch normals.
- It only works with "qt" and "fltk". When adding a "light" object with "gnuplot", it fails with the following error and nothing is drawn:

error: __gnuplot_draw_axes__: unknown object class, light
error: called from
    __gnuplot_draw_axes__ at line 1363 column 9
    __gnuplot_draw_figure__ at line 172 column 17
    __gnuplot_drawnow__ at line 86 column 5

I am leaving this to a gnuplot expert, since I do not know how to handle this correctly. Just inserting an empty case for "light" did produce a lot of different errors...

If this patch (or an improved one) was accepted, it would be quite easy to add other related functions as e.g. lighting, shading, camlight or material.

Markus Mützel <mmuetzel>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #37996:  light.m.rej added by philipnienhuis (2KiB - text/x-reject)
file #37960:  light_update1_v6.patch added by mmuetzel (11KiB - text/x-diff)
file #37694:  light_update1_v5.patch added by mmuetzel (9KiB - text/x-diff)
file #37675:  light_update1_v4.patch added by mmuetzel (6KiB - text/x-diff)
file #37551:  light_update1_v3.patch added by mmuetzel (5KiB - text/x-diff)
file #37381:  light_update1_v2.patch added by mmuetzel (5KiB - text/x-diff)
file #37338:  light_update1.patch added by mmuetzel (4KiB - text/x-diff)
file #37323:  light_hggroup.patch added by mmuetzel (2KiB - text/x-diff)
file #37308:  light_v8.patch added by mmuetzel (60KiB - text/x-diff)
file #37307:  light_v7.patch added by mmuetzel (60KiB - text/x-diff)
file #37303:  light_v6.patch added by jwe (62KiB - text/x-diff)
file #37286:  light_v5.patch added by mmuetzel (60KiB - text/x-diff)
file #37258:  light_v4.patch added by mmuetzel (49KiB - text/x-diff)
file #36737:  light_v3.patch added by mmuetzel (49KiB - application/octet-stream)
file #36687:  light_v2.patch added by mmuetzel (24KiB - application/octet-stream)
file #36632:  light.patch added by mmuetzel (8KiB - application/octet-stream)
file #36633:  light.m added by mmuetzel (5KiB - text/x-objcsrc)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by sebald (Posted a comment)
  • -email is unavailable- added by mmuetzel
  • -email is unavailable- added by mmuetzel
  • -email is unavailable- added by lachlan (Updated the item)
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by cbm (Posted a comment)
  • -email is unavailable- added by mmuetzel (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

     

     

    Follow 25 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-08-04 mmuetzel Attached File- => Added patch8943_max_lights.patch, #38104
    2016-07-29 jwe StatusIn Progress => Done
        Open/ClosedOpen => Closed
    2016-07-28 mmuetzel Attached File- => Added patch8943_light_update1_v7.patch, #38047
    2016-07-23 mmuetzel Attached File- => Added task_8943_light_update1_v7.patch, #37999
        Attached File- => Added task_11311_add_constraints.patch, #38000
        Carbon-Copy- => Added pantxo
    2016-07-23 philipnienhuis Attached File- => Added light.m.rej, #37996
    2016-07-20 mmuetzel Attached File- => Added light_update1_v6.patch, #37960
        Carbon-Copy- => Added philipnienhuis
    2016-07-07 lachlan CategoryNone => Core : other
        StatusNone => In Progress
    2016-07-03 mmuetzel Attached File- => Added light_update1_v5.patch, #37694
    2016-07-02 mmuetzel Attached File- => Added light_update1_v4.patch, #37675
    2016-06-22 mmuetzel Attached File- => Added light_update1_v3.patch, #37551
    2016-06-03 mmuetzel Attached File- => Added light_update1_v2.patch, #37381
    2016-06-01 mmuetzel Attached File- => Added light_update1.patch, #37338
    2016-05-31 mmuetzel Attached File- => Added light_hggroup.patch, #37323
    2016-05-30 mmuetzel Attached File- => Added light_v8.patch, #37308
    2016-05-30 mmuetzel Attached File- => Added light_v7.patch, #37307
    2016-05-29 jwe Attached File- => Added light_v6.patch, #37303
    2016-05-27 mmuetzel Attached File- => Added light_v5.patch, #37286
    2016-05-25 mmuetzel Attached File- => Added light_v4.patch, #37258
    2016-03-23 mmuetzel Attached File- => Added light_v3.patch, #36737
    2016-03-18 mmuetzel Attached File- => Added light_v2.patch, #36687

    Back to the top


    Powered by Savane 3.5