raytracing | HackLAB https://www.geeks3d.com/hacklab 3D Programming, Prototyping and Gamedev with GeeXLab Thu, 25 Mar 2021 14:55:35 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 GeeXLab 0.41 Released for Windows and Linux (Updated: v0.41.4) https://www.geeks3d.com/hacklab/20210215/geexlab-0-41-released-for-windows-and-linux/ https://www.geeks3d.com/hacklab/20210215/geexlab-0-41-released-for-windows-and-linux/#respond Mon, 15 Feb 2021 13:14:26 +0000 https://www.geeks3d.com/hacklab/?p=1596 Downloads GeeXLab LITE (win64) (90MB) GeeXLab FULL (win64) (240MB) GeeXLab (win32) (67MB) GeeXLab (linux64) (150MB) All GeeXLab Downloads Forum thread (EN)   1 – Release Notes A new version of GeeXLab is available for Windows 64-bit, Windows 32-bit and Linux 64-bit (GLIBC 2.23). It’s essentially a maintenance release that fixes some bugs and improve / update some functions and libraries. See the changelog for all … Continue reading GeeXLab 0.41 Released for Windows and Linux (Updated: v0.41.4) »

The post GeeXLab 0.41 Released for Windows and Linux (Updated: v0.41.4) first appeared on HackLAB.]]>

GeeXLab: scriptable proto-engine for Windows, Linux, Raspberry Pi and macOS



Downloads

 

1 – Release Notes

A new version of GeeXLab is available for Windows 64-bit, Windows 32-bit and Linux 64-bit (GLIBC 2.23). It’s essentially a maintenance release that fixes some bugs and improve / update some functions and libraries. See the changelog for all details.

 

2 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.41.4 - 2021.03.08
! (2021.03.08) GPU monitoring plugin: added support of NVIDIA GeForce RTX 3060, CMP 30HX, CMP 40HX
  and AMD Radeon RX 6700 XT.
! (2021.03.08) updated the content of the CSV file generated at the end of a benchmark.
  Now strings are between double quotes (see here).
  MaxGpuTemp field has been removed.
! (2021.03.08) updated Python 3 plugin with Python 3.9.2.
* (2021.03.08) updated FFmpeg plugin with FFmpeg 4.3.2.


Version 0.41.3 - 2021.02.23
* (2021.02.23) fixed once again utf8 / wide characters support on Linux (for YAFFplayer).


Version 0.41.2 - 2021.02.18
* (2021.02.18) command line reading (gh_utils.get_command_line()) now supports wide 
  characters / unicode on Windows platform.
* (2021.02.18) fixed once again wide characters / unicode support on Linux and Windows 
  for the following functions: gh_font.get_text_width_w(), gh_font.draw_wtext_2d(), 
  gh_font.draw_wtext_2d_v2() and gh_utils.drop_files_get_file_by_index_w().


Version 0.41.1 - 2021.02.16
! (2021.02.16) fixed wide characters / unicode support on Linux for the following functions:
  gh_font.get_text_width_w(), gh_font.draw_wtext_2d(), gh_font.draw_wtext_2d_v2() and
  gh_utils.drop_files_get_file_by_index_w().


Version 0.41.0 - 2021.02.12
! (2021.02.12) updated Dear ImGui with version 1.81.
* (2021.02.11) fixed screenshot functions (gh_utils.do_screenshot_xx()) for Vulkan demos.
+ (2021.02.09) renamed some functions of gh_vk: 
 - new: descriptorset_add_geometry - old: descriptorset_push_geometry_core
 - new: descriptorset_build_geometries_vertices_arrays - old: descriptorset_add_all_geometry_cores_vertices
 - new: descriptorset_build_geometries_indices_arrays- old: descriptorset_add_all_geometry_cores_indices
+ (2021.02.06) added vk_add_spirv_module_zip() to gh_gpu_program.
! (2021.02.06) updated built-in SQLite support with latest SQLite 3.34.1.
* (2021.02.04) fixed texture creation crash in Vulkan with floating point based formats.
! (2021.02.02) improved unicode support for drag and drop files. New functions 
  added: gh_utils.drop_files_get_file_by_index_w() and gh_font.get_text_width_w().
The post GeeXLab 0.41 Released for Windows and Linux (Updated: v0.41.4) first appeared on HackLAB.]]>
https://www.geeks3d.com/hacklab/20210215/geexlab-0-41-released-for-windows-and-linux/feed/ 0
More Vulkan Raytracing in GeeXLab https://www.geeks3d.com/hacklab/20210115/more-vulkan-raytracing-in-geexlab/ https://www.geeks3d.com/hacklab/20210115/more-vulkan-raytracing-in-geexlab/#respond Fri, 15 Jan 2021 10:43:38 +0000 https://www.geeks3d.com/hacklab/?p=1588   I worked hard on Vulkan raytracing in GeeXLab these last days, and results are there! Most of the demos work on NVIDIA GeForce RTX (tested on RTX 2070 and RTX 3060 Ti) and AMD Radeon RX 6800 XT. On the Radeon RX 6800 XT I have crashes on some demos. Vulkan validation layers don’t show any error. There is just a crash of GeeXLab. … Continue reading More Vulkan Raytracing in GeeXLab »

The post More Vulkan Raytracing in GeeXLab first appeared on HackLAB.]]>

GeeXLab - Vulkan raytracing demo on NVIDIA GeForce RTX 2070 - Cornell Box

 
I worked hard on Vulkan raytracing in GeeXLab these last days, and results are there!

Most of the demos work on NVIDIA GeForce RTX (tested on RTX 2070 and RTX 3060 Ti) and AMD Radeon RX 6800 XT. On the Radeon RX 6800 XT I have crashes on some demos. Vulkan validation layers don’t show any error. There is just a crash of GeeXLab. Before diving into real debugging, I’m waiting for new Adrenalin drivers, maybe they will fix the crash. On NVIDIA RTX, all demos work!

The magic of raytracing in this screenshot: shadows and reflections are a… side effect of the raytracing. The raytracing shader implements a simple lighthing effect and shadows and reflections come for free!

GeeXLab - Vulkan raytracing demo on NVIDIA GeForce RTX 2070 - Cornell Box

 
All demos are pure raytracing demos. No hybrid rendering here, only raytracing.

Other cool screenshots:

GeeXLab - Vulkan raytracing demo on NVIDIA GeForce RTX 2070

GeeXLab - Vulkan raytracing demo on NVIDIA GeForce RTX 2070

 
As soon as the crash on Radeon is fixed, I release the new GeeXLab with raytracing support.

The post More Vulkan Raytracing in GeeXLab first appeared on HackLAB.]]>
https://www.geeks3d.com/hacklab/20210115/more-vulkan-raytracing-in-geexlab/feed/ 0
Vulkan Raytracing is Coming into GeeXLab (Updated 2021.01.15) https://www.geeks3d.com/hacklab/20201224/vulkan-raytracing-is-coming-into-geexlab/ https://www.geeks3d.com/hacklab/20201224/vulkan-raytracing-is-coming-into-geexlab/#respond Thu, 24 Dec 2020 13:08:14 +0000 https://www.geeks3d.com/hacklab/?p=1584 Raytracing is coming to GeeXLab. After a bunch of hours of coding and debugging (thanks to the latest Vulkan SDK!), I finally managed to see my first ray traced RGB triangle! The Hello World of Vulkan raytracing, in a word. The raytracing code is based on the latest Vulkan official extensions (VK_KHR_acceleration_structure and VK_KHR_ray_tracing_pipeline). The post header screenshot shows the ray traced triangle rendered on … Continue reading Vulkan Raytracing is Coming into GeeXLab (Updated 2021.01.15) »

The post Vulkan Raytracing is Coming into GeeXLab (Updated 2021.01.15) first appeared on HackLAB.]]>

GeeXLab - Vulkan raytracing on NVIDIA GeForce RTX 2070

Raytracing is coming to GeeXLab. After a bunch of hours of coding and debugging (thanks to the latest Vulkan SDK!), I finally managed to see my first ray traced RGB triangle! The Hello World of Vulkan raytracing, in a word. The raytracing code is based on the latest Vulkan official extensions (VK_KHR_acceleration_structure and VK_KHR_ray_tracing_pipeline).

The post header screenshot shows the ray traced triangle rendered on a GeForce RTX 2070 with GeForce 457.44 driver (the triangle is rendered on a 512×512 image).

The following screenshot shows the same demo rendered on a Radeon RX 6800 XT (XMas Edition!) with latest Adrenalin 20.12.2:

GeeXLab - Vulkan raytracing on AMD Radeon RX 6800 XT

 
As you can see, there is still a lot work to do before releasing GeeXLab 0.40…

 

Update (2020.12.31)

For this last day of the covid-19 year, here are some new screenshots. In a word, basic ray tracing iis now operational in GeeXLab: you can create raygen, miss and closest hit shaders and trace rays. It’s amazing to see how it’s simple to add shadows in a ray traced scene!

In this scene, we have a ground plane, two animated donuts and shadows. The ray traced scene is rendered in a 512×512 texture.

GeeXLab - Vulkan raytracing on NVIDIA GeForce RTX 2070
Vulkan ray tracing on a GeForce RTX 2070 + R460.89

 
On the Radeon RX 6800 XT, it’s another story. Currently the texture resolution is limited to 128×128 pixels otherwise there are some glitches. Here is a simple example: a donut and a triangle are rendered in red color on a green background.

– BAD: Radeon RX 6800 XT – 512×512 render texture:
GeeXLab - Vulkan raytracing on AMD Radeon RX 6800 XT

 
– GOOD: Radeon RX 6800 XT – 128×128 render texture:
GeeXLab - Vulkan raytracing on AMD Radeon RX 6800 XT

 
And shadows can not be rendered otherwise there is a serious crash + reboot!

GeeXLab - Vulkan raytracing on AMD Radeon RX 6800 XT
Vulkan ray tracing on a Radeon RX 6800 XT + Adrenalin 20.12.2

 
No error is reported by the Vulkan SDK. The crash on the Radeon RX 6800 XT is likely caused by the launch of a second ray (needed for the shadow). More tests (and new driver?? are needed…

 

Update (2021.01.15)

– Raytracing with texturing and shadows (hard shadows). One ray per pixel.

GeeXLab - Vulkan raytracing on NVIDIA GeForce RTX 2070

 
– First tests of raytracing with several rays per pixel.

GeeXLab - Vulkan raytracing on NVIDIA GeForce RTX 2070

GeeXLab - Vulkan raytracing on NVIDIA GeForce RTX 2070

GeeXLab - Vulkan raytracing on NVIDIA GeForce RTX 2070

The post Vulkan Raytracing is Coming into GeeXLab (Updated 2021.01.15) first appeared on HackLAB.]]>
https://www.geeks3d.com/hacklab/20201224/vulkan-raytracing-is-coming-into-geexlab/feed/ 0
GeeXLab 0.39 Released (Windows, Linux, Raspberry Pi and macOS) https://www.geeks3d.com/hacklab/20201212/geexlab-0-39-released-windows-linux-raspberry-pi-and-macos/ https://www.geeks3d.com/hacklab/20201212/geexlab-0-39-released-windows-linux-raspberry-pi-and-macos/#respond Sat, 12 Dec 2020 14:37:16 +0000 https://www.geeks3d.com/hacklab/?p=1580 Downloads GeeXLab for Win64 LITE (79MB) GeeXLab for Win64 FULL (245MB) GeeXLab for Win32 (67.5MB) GeeXLab for Linux64 (150MB) GeeXLab for Raspberry Pi OS (86.9MB) GeeXLab for macOS (68.4MB) All GeeXLab Downloads Forum thread (EN)   1 – Release Notes This new version of GeeXLab is available for Windows 64-bit, Windows 32-bit, Linux 64-bit (GLIBC 2.23), Raspberry Pi OS (GLIBC 2.28) and macOS. GeeXLab 0.39.0 … Continue reading GeeXLab 0.39 Released (Windows, Linux, Raspberry Pi and macOS) »

The post GeeXLab 0.39 Released (Windows, Linux, Raspberry Pi and macOS) first appeared on HackLAB.]]>

GeeXLab: scriptable proto-engine for Windows, Linux, Raspberry Pi and macOS



Downloads

 

1 – Release Notes

This new version of GeeXLab is available for Windows 64-bit, Windows 32-bit, Linux 64-bit (GLIBC 2.23), Raspberry Pi OS (GLIBC 2.28) and macOS.

GeeXLab 0.39.0 comes with the following main changes:
– ImGui file browser
– ImGui memory editor
– preliminary support of Vulkan KHR raytracing
– Lua 5.4.2
– Python 3.9.1 and improved scene reloading
– webcam capture resolution on Windows
– curl

 

ImGui file browser

This file browser is very cool because it’s based on Dear ImGui and then it’s available on all platforms. The source project is available HERE. A set of functions has been added to gh_imgui to deal with the file browser:
gh_imgui.file_browser_xxxxx().

A demo that shows how to use the file browser is available in the OpenGL 2.1 demopack in the d29-geexlab-demopack-gl21/d29-imgui/imgui-file-browser/ folder.

GeeXLab - ImGui file browser

 

ImGui Memory Editor

I found this project, directly developed by Dear ImGui’s author. It’s a simple memory editor. You can read/write memory buffers. A new set of functions has been added in gh_imgui: gh_imgui.memory_editor_xxxxx().

A demo that shows how to use the memory editor is available in the OpenGL 2.1 demopack in the d29-geexlab-demopack-gl21/d29-imgui/imgui-memory-editor/ folder.

GeeXLab - ImGui file browser

 

Preliminary Support of Vulkan KHR Raytracing

The Khronos Group has released the official Vulkan raytracing extensions few weeks ago with Vulkan 1.2.162 specifications. Vulkan raytracing will be the main change in next GeeXLab 0.40.x. Many Vulkan raytracing functions have been implemented in the Vulkan2 plugin of GeeXLab but they have not been yet tested. But three functions to query hardware capabilities are ready:

– gh_vk.raytracing_pipeline_get_property_value_u32()
– gh_vk.raytracing_acceleration_structure_get_property_value_u32()
– gh_vk.raytracing_acceleration_structure_get_property_value_u64()

A demo showing how to use these functions will be released very shortly.

 

Lua 5.4.2

The Lua scripting engine (built-in plugin) has been updated to the latest version 5.4.2 on all platforms. This new version of Lua has been released few days ago and is a bug fix release.

Lua logo

 

Python 3.9.1

On Windows, the Python plugin has been compiled with the latest stable version 3.9.1, that, like Lua, has been released few days ago.
The Windows version of GeeXLab comes also with Python 2.7 and Python 3.8 plugins. If you look at the plugins folder, you will see:
– plugin_gxl_python2_x64.dll: this is the Python 2.7 plugin
– plugin_gxl_python38_x64.dll: this is the Python 3.8 plugin
– plugin_gxl_python3_x64.dll: this is the Python 3.9 plugin

Default plugins names are plugin_gxl_python2_x64 for Python 2 and plugin_gxl_python3_x64 for Python 3. So if you want to use the Python 3.8 plugin, just rename plugin_gxl_python38_x64 in plugin_gxl_python3_x64.

Python logo

 

Webcam Capture Resolution on Windows

I finally found the way to control the capture size of the webcam on Windows. By default the capture size is 640×480. Not cool if you have a full HD capable webcam. A new function (webcam_start_v2) has been added to start a webcam with a particular resolution:

webcam1 = gh_utils.webcam_create()

-- 320×240
-- 640×480 -- default resolution on Windows
-- 1280×720
-- 1920×1080
gh_utils.webcam_start_v2(webcam1, 1, 1280, 720) -- GeeXLab 0.39+

A demo showing how to use the webcam on Windows is available in the OpenGL 2.1 demopack (folder: geexlab-demopack-gl21/d31-webcam/).

 

curl

curl is a command line tool to easily download files from Internet and most of the protocols are supported. In GeeXLab, curl is available in two ways:

– embedded in GeeXLab and accessible via a function in gh_utils lib: gh_utils.curl_download_file_v1(). The curl_download_file_v1 function is available on Windows, Linux and Raspberry Pi OS. Not on macOS, sorry.

– a standalone version: the Windows version of GeeXLab has a folder that contains the latest curl: {GeeXLab folder}/curl/. That way, you can control the curl.exe from your Lua or Python scripts with a regular system call.

 

2 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.39.1 - 2020.12.09
+ (2020.12.09) added set_font_glyph_offset() to gh_imgui.


Version 0.39.0 - 2020.12.08
! (2020.12.08) update Lua support with latest Lua 5.4.2.
+ (2020.12.08) updated Python 3 plugin with latest Python 3.9.1.
! (2020.12.08) updated glTF built-in plugin with latest cglft 1.9.
! (2020.12.06) [macOS] compiled on x86_64 target with Xcode 12.2.
+ (2020.12.05) added a set of functions in gh_imgui lib to manage ImGui 
  file browser: gh_imgui.file_browser_xxxxx().
! (2020.12.04) updated built-in SQLite support with latest version 3.34.0.
* (2020.12.04) fixed a bug in uv coordinates in the built-in glTF loader.
+ (2020.12.03) added get_num_textures(), get_texture() and a set of functions
  (vk_descriptorset_xxxx()) to gh_material lib.
* (2020.12.02) fixed a minor bug in the fullscreen management in init0.xml. 
* (2020.12.02) updated GPU monitoring plugin with latest NVAPI 455. 
+ (2020.12.01) added get_item_rect_min(), get_item_rect_max(), push_clip_rect(), 
  pop_clip_rect() and invisible_button() to gh_imgui lib.
* (2020.12.01) fixed gh_gpu_buffer.set_matrix4x4() in Python (3 args instead of 4).
* (2020.12.01) fixed wrong function name in the gh_vk lib of the Python plugin:
  gh_vk.texture_sampler_create() (wrong) instead of gh_vk.sampler_create() (correct).
! (2020.11.28) updated GPU monitoring plugin with latest AMD AGS lib 6.0.0.
+ (2020.11.27) added preliminary support of Vulkan KHR raytracing.
+ (2020.11.27) added imdrawlist_coding_party_demo() to gh_imgui lib.
+ (2020.11.27) added add_rect_to_drawlist(), add_triangle_to_drawlist()
  and add_text_to_drawlist() to gh_imgui lib.
! (2020.11.25) improved gh_utils.clipboard_set_text() and 
  gh_utils.clipboard_get_text() on Windows platform.
! (2020.11.20) updated GPU monitoring plugin with AMD Radeon RX 6800 and 
  RX 6800 XT support.
! (2020.11.16) updated ImGui with latest version 1.80 WIP.
+ (2020.10.28) GPU monitoring: added support of NVIDIA GeForce RTX 3070.
! (2020.10.27) [Windows] compiled with VS2019 v16.7.6.
! (2020.10.27) update Lua support with latest Lua 5.4.1.
! (2020.10.26) improved Python 3 support: with some librairies like NumPy,
  your can now do several scene reloads without crashing.
+ (2020.10.26) [Windows] added webcam_start_v2() to gh_utils. 
  You can now set the webcam resolution!
! (2020.10.26) added all gh_utils.shmem_xxxx() functions to the Python plugin.
! (2020.10.09) updated ImGui with latest version 1.79.
+ (2020.10.09) added a set of functions to manage ImGui memory editor:
  gh_imgui.memory_editor_xxxx()
+ (2020.10.09) added set_next_window_size(), set_next_window_size_constraints()
  and set_window_size() to gh_imgui.
+ (2020.10.07) added curl_download_file_v1() to gh_utils.
+ (2020.10.06) updated Python 3 plugin with latest Python 3.9.0.
! (2020.10.03) updated OpenVR plugin with latest OpenVR SDK 1.14.15.
! (2020.10.03) updated ImPlot 0.8 WIP. Updated {GeeXLab folder}/libs/lua/imgui_implot.lua
! (2020.10.03) updated GPU monitoring plugin with latest AMD AGS lib 5.4.2.
The post GeeXLab 0.39 Released (Windows, Linux, Raspberry Pi and macOS) first appeared on HackLAB.]]>
https://www.geeks3d.com/hacklab/20201212/geexlab-0-39-released-windows-linux-raspberry-pi-and-macos/feed/ 0