Using multiple models in a scene

classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

ted_gress
Then what is wrong with this code?

                       
                                int counter = 0;
                                for (int i=0;i<bufferCount;i++)
                                {
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                gl.glBindBuffer(gl.GL_ELEMENT_ARRAY_BUFFER, vboNames[counter]);
                                 
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        //gl.glDrawElements(gl.GL_TRIANGLES, 6 * 6, gl.GL_UNSIGNED_BYTE, cubeIndices[i]);
                                        gl.glDrawElements(gl.GL_TRIANGLES, 6*6, GL.GL_UNSIGNED_INT, cubeIndices[i]); // note: the total number of indices
                                }
                                time += 0.01f;
                        }

WIth the exception:

Cube.run()
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/C:/Users/ted_g/Documents/jogamp/gluegen-rt.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Entering initialization
GL Profile: GLProfile[GL4bc/GL4bc.hw]
GL:jogamp.opengl.gl4.GL4bcImpl@77030d93
GL_VERSION=4.5.0 - Build 23.20.16.4973
GL_EXTENSIONS:
  GL_3DFX_texture_compression_FXT1 GL_AMD_depth_clamp_separate GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_robustness_isolation GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_separate_stencil GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_polygon_offset_clamp GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_framebuffer_fetch GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_s3tc GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_IBM_texture_mirrored_repeat GL_INTEL_conservative_rasterization GL_INTEL_fragment_shader_ordering GL_INTEL_framebuffer_CMAA GL_INTEL_map_texture GL_INTEL_multi_rate_fragment_shader GL_INTEL_performance_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_debug GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_ldr GL_NV_blend_square GL_NV_conditional_render GL_NV_primitive_restart GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_swap_control
GLF:jogamp.opengl.gl4.GL4bcImpl@77030d93
java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught GLException: element vertex_buffer_object must be unbound to call this method on thread main-Display-.windows_nil-1-EDT-1
        at jogamp.newt.DefaultEDTUtil.invokeImpl(DefaultEDTUtil.java:252)
        at jogamp.newt.DefaultEDTUtil.invoke(DefaultEDTUtil.java:165)
        at jogamp.newt.DisplayImpl.runOnEDTIfAvail(DisplayImpl.java:442)
        at jogamp.newt.WindowImpl.runOnEDTIfAvail(WindowImpl.java:2782)
        at jogamp.newt.WindowImpl.setVisible(WindowImpl.java:1330)
        at jogamp.newt.WindowImpl.setVisible(WindowImpl.java:1335)
        at com.jogamp.newt.opengl.GLWindow.setVisible(GLWindow.java:578)
        at RenderEngine.Renderer.run(Renderer.java:550)
        at RenderEngine.Renderer.main(Renderer.java:592)
Caused by: com.jogamp.opengl.GLException: Caught GLException: element vertex_buffer_object must be unbound to call this method on thread main-Display-.windows_nil-1-EDT-1
        at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
        at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
        at jogamp.opengl.GLAutoDrawableBase.defaultWindowResizedOp(GLAutoDrawableBase.java:260)
        at com.jogamp.newt.opengl.GLWindow.access$200(GLWindow.java:119)
        at com.jogamp.newt.opengl.GLWindow$2.windowResized(GLWindow.java:141)
        at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:4383)
        at jogamp.newt.WindowImpl.sendWindowEvent(WindowImpl.java:4317)
        at jogamp.newt.WindowImpl.setVisibleActionImpl(WindowImpl.java:1306)
        at jogamp.newt.WindowImpl$VisibleAction.run(WindowImpl.java:1318)
        at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:145)
        at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:375)
Caused by: com.jogamp.opengl.GLException: element vertex_buffer_object must be unbound to call this method
        at jogamp.opengl.gl4.GL4bcImpl.checkBufferObject(GL4bcImpl.java:40629)
        at jogamp.opengl.gl4.GL4bcImpl.checkElementVBOUnbound(GL4bcImpl.java:40664)
        at jogamp.opengl.gl4.GL4bcImpl.glDrawElements(GL4bcImpl.java:6552)
        at RenderEngine.Renderer.display(Renderer.java:479)
        at RenderEngine.Renderer.display(Renderer.java:438)
        at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
        at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
        at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
        ... 11 more
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

ted_gress
In reply to this post by gouessej
So, I'm getting this exception:

Cube.run()
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/C:/Users/ted_g/Documents/jogamp/gluegen-rt.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Entering initialization
GL Profile: GLProfile[GL4bc/GL4bc.hw]
GL:jogamp.opengl.gl4.GL4bcImpl@77030d93
GL_VERSION=4.5.0 - Build 23.20.16.4973
GL_EXTENSIONS:
  GL_3DFX_texture_compression_FXT1 GL_AMD_depth_clamp_separate GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_robustness_isolation GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_separate_stencil GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_polygon_offset_clamp GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_framebuffer_fetch GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_s3tc GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_IBM_texture_mirrored_repeat GL_INTEL_conservative_rasterization GL_INTEL_fragment_shader_ordering GL_INTEL_framebuffer_CMAA GL_INTEL_map_texture GL_INTEL_multi_rate_fragment_shader GL_INTEL_performance_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_debug GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_ldr GL_NV_blend_square GL_NV_conditional_render GL_NV_primitive_restart GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_swap_control
GLF:jogamp.opengl.gl4.GL4bcImpl@77030d93
java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught GLException: element vertex_buffer_object must be unbound to call this method on thread main-Display-.windows_nil-1-EDT-1
        at jogamp.newt.DefaultEDTUtil.invokeImpl(DefaultEDTUtil.java:252)
        at jogamp.newt.DefaultEDTUtil.invoke(DefaultEDTUtil.java:165)
        at jogamp.newt.DisplayImpl.runOnEDTIfAvail(DisplayImpl.java:442)
        at jogamp.newt.WindowImpl.runOnEDTIfAvail(WindowImpl.java:2782)
        at jogamp.newt.WindowImpl.setVisible(WindowImpl.java:1330)
        at jogamp.newt.WindowImpl.setVisible(WindowImpl.java:1335)
        at com.jogamp.newt.opengl.GLWindow.setVisible(GLWindow.java:578)
        at RenderEngine.Renderer.run(Renderer.java:550)
        at RenderEngine.Renderer.main(Renderer.java:592)
Caused by: com.jogamp.opengl.GLException: Caught GLException: element vertex_buffer_object must be unbound to call this method on thread main-Display-.windows_nil-1-EDT-1
        at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
        at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
        at jogamp.opengl.GLAutoDrawableBase.defaultWindowResizedOp(GLAutoDrawableBase.java:260)
        at com.jogamp.newt.opengl.GLWindow.access$200(GLWindow.java:119)
        at com.jogamp.newt.opengl.GLWindow$2.windowResized(GLWindow.java:141)
        at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:4383)
        at jogamp.newt.WindowImpl.sendWindowEvent(WindowImpl.java:4317)
        at jogamp.newt.WindowImpl.setVisibleActionImpl(WindowImpl.java:1306)
        at jogamp.newt.WindowImpl$VisibleAction.run(WindowImpl.java:1318)
        at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:145)
        at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:375)
Caused by: com.jogamp.opengl.GLException: element vertex_buffer_object must be unbound to call this method
        at jogamp.opengl.gl4.GL4bcImpl.checkBufferObject(GL4bcImpl.java:40629)
        at jogamp.opengl.gl4.GL4bcImpl.checkElementVBOUnbound(GL4bcImpl.java:40664)
        at jogamp.opengl.gl4.GL4bcImpl.glDrawElements(GL4bcImpl.java:6552)
        at RenderEngine.Renderer.display(Renderer.java:479)
        at RenderEngine.Renderer.display(Renderer.java:438)
        at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
        at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
        at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
        ... 11 more

So what is wrong with this code?

                       
                                int counter = 0;
                                for (int i=0;i<bufferCount;i++)
                                {
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                gl.glBindBuffer(gl.GL_ELEMENT_ARRAY_BUFFER, vboNames[counter]);
                                 
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        //gl.glDrawElements(gl.GL_TRIANGLES, 6 * 6, gl.GL_UNSIGNED_BYTE, cubeIndices[i]);
                                        gl.glDrawElements(gl.GL_TRIANGLES, 6*6, GL.GL_UNSIGNED_INT, cubeIndices[i]); // note: the total number of indices
                                }
                                time += 0.01f;
                        }


and


                   public void buffers()
                   {
                           int vbonums = 0;
                           
                           for (int i=0;i<bufferCount;i++)
                           {
                                   
                                   
                                   gl.glEnableClientState(gl.GL_VERTEX_ARRAY);

                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeVertices[i].limit() * Buffers.SIZEOF_SHORT, cubeVertices[i], GL.GL_STATIC_DRAW);

                                   gl.glVertexPointer(3, gl.GL_SHORT, 0, 0);

                                   vbonums++;
                                   
                                 


                                   gl.glEnableClientState(gl.GL_NORMAL_ARRAY);

                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);
                                   
                                   
                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeNormals[i].limit() * Buffers.SIZEOF_BYTE, cubeNormals[i], GL.GL_STATIC_DRAW);

                                   gl.glNormalPointer(gl.GL_BYTE, 0, 0);

                                   vbonums++;
                                   // cubeIndices[bufferCount] =cubeObject2.cubeIndices;
                                   
                                   
                                   gl.glEnableClientState(gl.GL_ELEMENT_ARRAY_BUFFER);   // enable vertex indices

                                   
                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeIndices[i].limit() * Buffers.SIZEOF_BYTE, cubeIndices[i], GL.GL_STATIC_DRAW);

                                   
                                  // gl.glIndexPointer(gl.GL_BYTE, 0, 0);

                                   

                               gl.glBindBuffer(gl.GL_ELEMENT_ARRAY_BUFFER, vboNames[vbonums]);

                                   
                                   vbonums++;
                                   


                                   gl.glEnableClientState(gl.GL_COLOR_ARRAY);

                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeColors[i].limit() * Buffers.SIZEOF_FLOAT, cubeColors[i], GL.GL_STATIC_DRAW);

                                   gl.glColorPointer(4, gl.GL_FLOAT, 0, 0);

                                   vbonums++;

                                   if (cubeTexCoords != null) {

                                           gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY);

                                           gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                           gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeTexCoords[i].limit() * Buffers.SIZEOF_SHORT, cubeTexCoords[i], GL.GL_STATIC_DRAW);

                                           gl.glTexCoordPointer(2, gl.GL_SHORT, 0, 0);

                                           /* issues an GL_INVALID_ENUM

                               gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_MODE, gl.GL_INCR);

                           } */
                                           vbonums++;

                                   } else {

                                           gl.glDisableClientState(gl.GL_TEXTURE_COORD_ARRAY);

                                   }

                                   gl.glBindBuffer(GL. GL_ELEMENT_ARRAY_BUFFER, 0);



                                   gl.glHint(gl.GL_PERSPECTIVE_CORRECTION_HINT, gl.GL_FASTEST);



                                   gl.glMatrixMode(gl.GL_PROJECTION);

                                   gl.glLoadIdentity();



                                   if(!innerCube) {

                                           glu.gluPerspective(90.0f, aspect, 1.0f, 100.0f);

                                   } else {

                                           gl.glOrthof(-20.0f, 20.0f, -20.0f, 20.0f, 1.0f, 40.0f);

                                   }

                                   // weird effect ..: gl.glCullFace(gl.GL_FRONT);
                           }
                   }


                     
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

ted_gress
*Bump*
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

gouessej
Administrator
You should look at gmseed's example again, the last parameter passed to glDrawElements is 0 in his source code but not in yours.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

ted_gress
In reply to this post by gouessej
Ok. So I changed it to zero like in gmeed's example and I"m getting a blue screen. I'm also getting in red in the console:

EXCEPTIONS:

Cube.run()
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/C:/Users/ted_g/Documents/jogamp/gluegen-rt.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Entering initialization
GL Profile: GLProfile[GL4bc/GL4bc.hw]
GL:jogamp.opengl.gl4.GL4bcImpl@3c9baa1a
GL_VERSION=4.5.0 - Build 23.20.16.4973
GL_EXTENSIONS:
  GL_3DFX_texture_compression_FXT1 GL_AMD_depth_clamp_separate GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_robustness_isolation GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_separate_stencil GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_polygon_offset_clamp GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_framebuffer_fetch GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_s3tc GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_IBM_texture_mirrored_repeat GL_INTEL_conservative_rasterization GL_INTEL_fragment_shader_ordering GL_INTEL_framebuffer_CMAA GL_INTEL_map_texture GL_INTEL_multi_rate_fragment_shader GL_INTEL_performance_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_debug GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_ldr GL_NV_blend_square GL_NV_conditional_render GL_NV_primitive_restart GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_swap_control
GLF:jogamp.opengl.gl4.GL4bcImpl@3c9baa1a
Cube shut down cleanly.


So my display code is the following:

DISPLAY CODE


public void display(GLAutoDrawable drawable, boolean clear) {

                                //GL2ES1//
                                gl = drawable.getGL().getGL2ES1();

                                if (clear) {

                                        gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT);

                                }

                                gl.glMatrixMode(gl.GL_MODELVIEW);

                                gl.glLoadIdentity();

                                gl.glTranslatef(0.f, 0.f, -30.f);

                                gl.glRotatef((float) (time * 29.77f), 1.0f, 2.0f, 0.0f);

                                gl.glRotatef((float) (time * 22.311f), -0.1f, 0.0f, -5.0f);

                               
                                int counter = 0;
                                for (int i=0;i<bufferCount;i++)
                                {
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                gl.glBindBuffer(gl.GL_ELEMENT_ARRAY_BUFFER, vboNames[counter]);
                                 
                                        gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vboNames[counter]);
                                        counter++;
                                        //gl.glDrawElements(gl.GL_TRIANGLES, 6 * 6, gl.GL_UNSIGNED_BYTE, cubeIndices[i]);
                                        //gmeed: glv.glDrawElements(GL2.GL_TRIANGLES, numberIndices, GL.GL_UNSIGNED_INT, 0); // note: the total number of indices
                                        //old: gl.glDrawElements(gl.GL_TRIANGLES, 6*6, GL.GL_UNSIGNED_INT, ); // note: the total number of indices
                                        //*glv.glDrawElements(gl.GL_TRIANGLES, cubeIndices.length, gl.GL_UNSIGNED_INT, 0); // note: the total number of indices
                                        gl.glDrawElements(gl.GL_TRIANGLES, cubeIndices.length, gl.GL_UNSIGNED_INT, 0); // note: the total number of indices
                                }
                                time += 0.01f;
                        }
                       


BUFFERS

           public void buffers()
                   {
                           int vbonums = 0;
                           
                           for (int i=0;i<bufferCount;i++)
                           {
                                   
                                   
                                   gl.glEnableClientState(gl.GL_VERTEX_ARRAY);

                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeVertices[i].limit() * Buffers.SIZEOF_SHORT, cubeVertices[i], GL.GL_STATIC_DRAW);

                                   gl.glVertexPointer(3, gl.GL_SHORT, 0, 0);

                                   vbonums++;
                                   
                                 


                                   gl.glEnableClientState(gl.GL_NORMAL_ARRAY);

                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);
                                   
                                   
                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeNormals[i].limit() * Buffers.SIZEOF_BYTE, cubeNormals[i], GL.GL_STATIC_DRAW);

                                   gl.glNormalPointer(gl.GL_BYTE, 0, 0);

                                   vbonums++;
                                   // cubeIndices[bufferCount] =cubeObject2.cubeIndices;
                                   
                                   
                                   gl.glEnableClientState(gl.GL_ELEMENT_ARRAY_BUFFER);   // enable vertex indices

                                   
                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeIndices[i].limit() * Buffers.SIZEOF_BYTE, cubeIndices[i], GL.GL_STATIC_DRAW);

                                   
                                  // gl.glIndexPointer(gl.GL_BYTE, 0, 0);

                                   

                               gl.glBindBuffer(gl.GL_ELEMENT_ARRAY_BUFFER, vboNames[vbonums]);

                                   
                                   vbonums++;
                                   


                                   gl.glEnableClientState(gl.GL_COLOR_ARRAY);

                                   gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                   gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeColors[i].limit() * Buffers.SIZEOF_FLOAT, cubeColors[i], GL.GL_STATIC_DRAW);

                                   gl.glColorPointer(4, gl.GL_FLOAT, 0, 0);

                                   vbonums++;

                                   if (cubeTexCoords != null) {

                                           gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY);

                                           gl.glBindBuffer(GL. GL_ARRAY_BUFFER, vboNames[vbonums]);

                                           gl.glBufferData(GL. GL_ARRAY_BUFFER, cubeTexCoords[i].limit() * Buffers.SIZEOF_SHORT, cubeTexCoords[i], GL.GL_STATIC_DRAW);

                                           gl.glTexCoordPointer(2, gl.GL_SHORT, 0, 0);

                                           /* issues an GL_INVALID_ENUM

                               gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_MODE, gl.GL_INCR);

                           } */
                                           vbonums++;

                                   } else {

                                           gl.glDisableClientState(gl.GL_TEXTURE_COORD_ARRAY);

                                   }

                                   gl.glBindBuffer(GL. GL_ELEMENT_ARRAY_BUFFER, 0);



                                   gl.glHint(gl.GL_PERSPECTIVE_CORRECTION_HINT, gl.GL_FASTEST);



                                   gl.glMatrixMode(gl.GL_PROJECTION);

                                   gl.glLoadIdentity();



                                   if(!innerCube) {

                                           glu.gluPerspective(90.0f, aspect, 1.0f, 100.0f);

                                   } else {

                                           gl.glOrthof(-20.0f, 20.0f, -20.0f, 20.0f, 1.0f, 40.0f);

                                   }

                                   // weird effect ..: gl.glCullFace(gl.GL_FRONT);
                           }
                   }


                     
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

gouessej
Administrator
What you provide isn't a SSCCE, the problem is elsewhere. Are you sure that your cubes are in your frustum? Look at the parameters passed to glOrthof and gluPerspective.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

ted_gress
Can you point me to the documentation for ortho and perspective? I looked and couldn't find it
Reply | Threaded
Open this post in threaded view
|

Re: Using multiple models in a scene

gouessej
Administrator
12