GeeXLab 0.32.0 released for Windows and Linux


GeeXLab: 3D programming and prototyping for Windows and Linux



Downloads

 

1 – Release Notes

GeeXLab 0.32.0 is available for Windows 64-bit and Linux 64-bit. This new version brings the support of Turing Mesh Shaders in OpenGL and Vulkan and adds a new Vulkan renderer plugin (Vulkan2).

 

1.1 – Turing Mesh Shaders

Mesh shaders are a new feature of NVIDIA Turing GPUs. In short, two new types of shaders are available in GeeXLab as well as a new function to run mesh shaders. Mesh shaders support is available in OpenGL and Vulkan. I will publish an article about mesh shaders very shortly.

 

1.2 – New Vulkan plugin

GeeXLab has a Vulkan plugin since 2016. Implementing an efficient Vulkan renderer is a hard task. The current Vulkan plugin works correctly but has a command buffer management that can be improved. I tried to improve the command buffers management in a new Vulkan2 plugin. The main command buffer of the scene is no longer available to GeeXLab scripts. Now a command buffer as well as other Vulkan objects (like fences, command pool, etc.) are automatically created for each image buffer of the swapchain. That simplifies the FRAME script like in the following example:

gh_vk.clear_color_depth_buffers(0.2, 0.2, 0.2, 1.0, 1.0)
gh_vk.frame_command_buffer_begin()
 
gh_vk.set_viewport_scissor(0, 0, w, h)
 
gh_vk.descriptorset_bind(descriptor_set)
gh_vk.pipeline_bind(color_pipeline)
gh_object.render(triangle)
 
gh_vk.frame_command_buffer_end()

In some cases, this new Vulkan2 plugin seems to be faster than the original Vulkan plugin. Vulkan codes samples have been updated and are available in the Vulkan demopack (demopack/vk2/ folder).

To select the new Vulkan plugin, just set the renderer_type attribute in the XML file to Vulkan2:

  <window name="win3d01" title="Vulkan2 demo" 
          width="1280" height="720" 
          vsync="0" renderer_type="Vulkan2" 
          gpu_index="0" />

 

1.3 – Bullet 3 Physics

I fixed a bug in the Bullet3 physics plugin related to kinematic objects. Now kinematic objects can be moved and rotated correctly with gh_bullet3.actor_set_position() and gh_bullet3.actor_set_orientation().

 
Other changes in GeeXLab 0.32.0 include an updated ImageMagick plugin (with latest ImageMagick SDK 7.0.10-10), a new palette index for gh_imgui.color_text_editor_palette_set_color() function to get a Bonzomatic style, and an updated version of imGuIZMO.quat.

I also added a helper function in gh_utils that returns a quaternion from the three Euler’s angles (gh_utils.math_quat_from_euler_angles()).

 

2 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.32.0 - 2020.05.07
! (2020.05.07) [Windows, Linux] updated ImageMagick plugin with latest version 7.0.10-10.
! (2020.05.07) updated the kx framework 
  ({GeeXLab folder}/libs/lua/framework_v1/) with new Vulkan2 renderer.
+ (2020.05.06) added descriptorset_add_resource_empty_texture_array() and
  descriptorset_update_resource_texture_array() to gh_vk.
+ (2020.05.06) added bullet() to gh_imgui lib.
+ (2020.05.05) added mesh_shader_get_property_value_nv() to gh_vk.
+ (2020.05.04) added meshlet support for mesh shaders. New set of functions added
  in gh_mesh: meshlet_xxxxxx().
+ (2020.05.02) added draw_mesh_tasks() to gh_vk.
+ (2020.05.02) added mesh shaders support in Vulkan (VK_NV_mesh_shader).
+ (2020.05.02) added gl_get_integerv_1i(), gl_get_integerv_4i() and 
  gl_get_integeri_1i() to gh_renderer (Lua only).
+ (2020.05.02) added create_mesh_task_from_shader_files(), 
  create_mesh_task_from_shader_files_gl_spirv() and 
  vk_create_mesh_task_from_spirv_module_file() to gh_gpu_program lib.
+ (2020.05.01) added mesh shaders support in OpenGL (GL_NV_mesh_shader).
+ (2020.05.01) added a new Vulkan plugin (Vulkan2). This new Vulkan plugin
  improves the command buffer management.
+ (2020.04.30) added helper function math_quat_from_euler_angles() 
  to gh_utils lib.
! (2020.04.28) updated imGuIZMO.quat with latest version v3.0(2020.04.28).
! (2020.04.27) updated gh_bullet3.actor_set_position() and 
  gh_bullet3.actor_set_orientation() to handle kinematic actors.
+ (2020.04.26) added actor_get_contact_actor() to gh_bullet3 lib.
+ (2020.04.24) added a new palette index ("XT95Line") to 
  gh_imgui.color_text_editor_palette_set_color() to add a dark 
  background under lines of code. Thanks to @AnatoleDuprat for the patch!




Leave a Comment

Your email address will not be published. Required fields are marked *