GeeXLab 0.29.8 released (win64, linux64, RPi)


GeeXLab 3D prototyping for Win64, Linux64, macOS, RaspberryPi and TinkerBoard



 

1 – Release Notes

GeeXLab 0.29.8.0 is a maintenance release that fixes bugs, adds new functions and improves some existing ones.

get_desktop_resolution() (gh_utils) is a new function that allows to know the native size of desktop. For example, if you have a fullHD monitor, get_desktop_resolution() should return something like 1920, 1080.

w, h = gh_utils.get_desktop_resolution()

Another new function, which is more an improvement than a real new one, is create_ex_v5() of the gh_render_target lib. create_ex_v5() creates a render target and the new thing is the generation of mipmaps. And believe me, mip-mapping in the render targets can be really important, I spent hours to port a recent shadertoy demo without success (usually it took me few minutes to port a demo) until I figured out this multipass demo was based on render targets with mipmaps (look for gl32-multiscale-mip-fluid in the gl-32-shadertoy-multipass folder of the shadertoy demopack, I update the demopack asap!).

Here is a code snipped that shows the use of create_ex_v5():

width = 1920
height = 1080
num_color_targets = 1
local PF_U8_RGBA = 3
pixel_format = PF_U8_RGBA
linear_filtering = 1
clamp_addressing = 1
samples = 0
create_depth_texture = 1
gen_mipmaps = 1
 
rt = gh_render_target.create_ex_v5(
  width, height, 
  num_color_targets, 
  pixel_format, 
  linear_filtering, clamp_addressing, 
  samples, 
  create_depth_texture, 
  gen_mipmaps
  );

Some libraries have been updated to their latest version (ImGui 1.74, imGuIZMO.quat 2.1, CUDA plugin with CUDA SDK 10.2, Assimp with snapshot v2019.11.30, cgltf 1.4 used in the glTF core 3D loader).

We can now pass uniform arrays in GPU programs in Lua and now in Python too. Here is a short code sample in Python that shows how to pass an uniform array of vec3 with 4 elements to a GPU program:

vec3kernel = []
 
x = gxl.random(-10.0, 10.0)
y = gxl.random(-10.0, 10.0)
z = gxl.random(-10.0, 10.0)
vec3kernel.append((x, y, z))
 
x = gxl.random(-10.0, 10.0)
y = gxl.random(-10.0, 10.0)
z = gxl.random(-10.0, 10.0)
vec3kernel.append((x, y, z))
 
x = gxl.random(-10.0, 10.0)
y = gxl.random(-10.0, 10.0)
z = gxl.random(-10.0, 10.0)
vec3kernel.append((x, y, z))
 
x = gxl.random(-10.0, 10.0)
y = gxl.random(-10.0, 10.0)
z = gxl.random(-10.0, 10.0)
vec3kernel.append((x, y, z))
 
gh_gpu_program.uniform3fv(prog, "kernel", 4, vec3kernel)

In Python, an uniform array must be a list of tuples. In Lua, an uniform array must be an array of {x=…, y=… , } elements.

 

2 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.29.8.0 - 2019.12.04
+ (2019.12.04) [Python] added uniform1fv(), uniform2fv(), uniform3fv() and uniform4fv() to gh_gpu_program lib.
* (2019.12.04) [Python] fixed typos / identation bugs in libs/python/gxl_utils.py
! (2019.12.02) [Windows] CUDA plugin updated with latest CUDA 10.2 SDK.
! (2019.12.01) [Windows] updated imGuIZMO.quat lib to version 2.1.
! (2019.11.30) [Windows] updated Assimp plugin with latest Assimp github snapshot. 
+ (2019.11.30) added load_texture_next() and load_textures_reset_counters() to gh_model lib.
* (2019.11.30) fixed a bug in gh_utils.shared_variable_get_value_str().
! (2019.11.29) fixed a small bug in fullscreen mode on Windows (the menu bar was visible in some cases).
+ (2019.11.29) added get_desktop_resolution() to gh_utils.
! (2019.11.29) updated ImGui to latest version 1.74.
! (2019.11.29) updated the glTF core loader with the latest version of cgltf 1.4.
* (2019.11.29) fixed a bug with fullscreen init on Windows. 
+ (2019.11.29) added gh_utils.set_new_scene_data() in Python.
+ (2019.11.28) added create_ex_v5() to gh_render_target lib.
+ (2019.11.28) added mipmapping generation to 2D render targets in OpenGL.




Leave a Comment

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