Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - JeGX

Pages: [1] 2 3 ... 72
1
GeeXLab - english forum / Kapla blocks game prototype with PhysX
« on: April 19, 2018, 04:54:53 PM »
I received this screenshot from a GeeXLab user that is developing a micro-game based on Kapla constructions blocks. This is currently a prototype and I don't know if a game based on this prototype will be released in the future. But it looks cool. All blocks are managed by the PhysX 3 engine.





2
GeeXLab - english forum / GeeXLab 0.22.2.0 released for Windows
« on: April 19, 2018, 04:40:48 PM »
A new version of GeeXLab has been released for Windows 32 and 64-bit. GeeXLab 0.22.2.0  brings minor improvements in ImGui management. You can also set the live-coding state of a GPU program via Lua or Python using the new gh_gpu_program.set_livecoding_state() function.

Downloads: http://www.geeks3d.com/geexlab/downloads/

Quote
Version 0.22.2.0 - 2018.04.19
-----------------------------
+ added set_livecoding_state() to gh_gpu_program lib (lua, python).
+ added get_color() and set_style_colors() to gh_imgui lib (lua, python).
! ImGui styles are initialized to default values for each new demo.

3
GeeXLab - english forum / GeeXLab 0.22.1.0 released for all platforms
« on: April 19, 2018, 04:36:01 PM »
GeeXLab 0.22.1.0 is now available for all platforms (Windows, Linux, macOS, Raspberry Pi and Tinker Board).

Downloads: http://www.geeks3d.com/geexlab/downloads/

Release notes: http://www.geeks3d.com/hacklab/20180419/geexlab-0-22-1-released-for-all-platforms/


Quote
Version 0.22.1.0 - 2018.04.12
-----------------------------
+ added new built-in mesh: icosphere (gh_mesh.create_icosphere()).
! updated bounding volume management.
+ added bounding_volume_set_radius(), bounding_volume_set_aabb_min() and
  bounding_volume_set_aabb_max() to gh_object lib (lua, python).
+ added draw_primitives() to gh_renderer lib (lua, python).
+ added create_actor_mesh_v2() to gh_physx3 lib (lua, python) to handle
  convex meshes.
+ added create_actor_capsule() to gh_physx3 lib (lua, python).
! updated enable_state() / disable_state() of gh_renderer lib with
  "GL_PROGRAM_POINT_SIZE".
+ [LINUX] added LuaJIT support.


Version 0.22.0.5 - 2018.03.29
-----------------------------
! recompilation, some PhysX 3 functions were broken.


Version 0.22.0.4 - 2018.03.28
-----------------------------
+ added actor_set_kinematic_target_v2() to gh_physx lib (lua, python)


Version 0.22.0.3 - 2018.03.28
-----------------------------
! updated all gh_object.get_absolute_xxxxx() functions (position, orientation)
  with the new mode 3 (set_absolute_transform_update_mode).
+ added a new mode (3) to set_absolute_transform_update_mode().


Version 0.22.0.2 - 2018.03.26
-----------------------------
! plugin loading: the log file now contains information about plugins that are present.
  Information about missing plugins is no longer in the log file.
! minor internal changes.


Version 0.22.0.1 - 2018.03.25
-----------------------------
+ added set_absolute_transform_update_mode() to gh_object (lua, python)


Version 0.22.0.0 - 2018.03.25
-----------------------------
+ added new library: gh_sqlite3 (lua, python).
+ added LuaSQL with SQLite3 driver (lua only).
+ added menu_begin_main_bar(), menu_end_main_bar(), menu_begin_bar(), menu_end_bar()
  menu_begin(), menu_end() and menu_item() to gh_imgui lib (lua, python).
+ added get_uptime() to gh_utils lib (lua, python)
! updated the ImGuizmo library. All gh_imgui.gizmo_xxxxxx() functions
  are now back (lua, python).

4
GeeXLab - english forum / GeeXLab howto / code snippets
« on: April 04, 2018, 10:28:19 AM »
I added a new HowTo page with code snippets (lua or python) that are widely used in GeeXLab demos:

http://www.geeks3d.com/geexlab/howto/

I will regularly update this page with new code snippets.

The following code snippets are currently available:
Quote
    How to create and resize a 3D camera
    How to create and resize a 2D camera
    How to create a reference grid
    How to load a 2D texture
    How to load a 2D texture with ImageMagick plugin
    How to load a 3D model with ASSIMP plugin
    How to create and use an orbit 3D camera
    How to generate a random number
    How to do color blending
    How to do create a GPU program from Lua buffers
    How to set the vertices color of a quad
    How to rotate an object with quaternions
    How to create and use a render target



5
GeeXLab - english forum / (Shadertoy to GeeXLab) Heeelix
« on: April 04, 2018, 10:00:13 AM »
The heeelix demo has been ported to GeeXLab:

More information and download links:
http://www.geeks3d.com/hacklab/20180404/shadertoy-to-geexlab-heeelix/


6
How to code a vertical separator with smooth edges:

Article + Demo: http://www.geeks3d.com/hacklab/20180403/smoothstep-based-vertical-image-separator-in-glsl/


7
GeeXLab - english forum / ImageMagick plugin: image formats
« on: April 03, 2018, 07:34:08 PM »
Here is the list of all image formats (around 200) supported by the Windows version of the ImageMagick plugin (added in GeeXLab 0.19.0):

Quote
(17:16:06:141) [ImageMagick] Image formats:
(17:16:06:142) [ImageMagick] 3FR
(17:16:06:142) [ImageMagick] 3G2 3GP A AAI AI ART ARW AVI AVS B
(17:16:06:142) [ImageMagick] BGR BGRA BGRO BMP BMP2 BMP3 BRF C CAL CALS
(17:16:06:142) [ImageMagick] CANVAS CAPTION CIN CIP CLIP CLIPBOARD CMYK CMYKA CR2 CRW
(17:16:06:142) [ImageMagick] CUR CUT DCM DCR DCX DDS DFONT DNG DPX DXT1
(17:16:06:142) [ImageMagick] DXT5 EMF EPDF EPI EPS EPS2 EPS3 EPSF EPSI EPT
(17:16:06:142) [ImageMagick] EPT2 EPT3 ERF EXR FAX FILE FITS FLIF FRACTAL FTP
(17:16:06:142) [ImageMagick] FTS G G3 G4 GIF GIF87 GRADIENT GRAY GROUP4 HALD
(17:16:06:142) [ImageMagick] HDR HISTOGRAM HRZ HTM HTML HTTP HTTPS ICB ICO ICON
(17:16:06:142) [ImageMagick] IIQ INFO INLINE IPL ISOBRL ISOBRL6 J2C J2K JNG JNX
(17:16:06:142) [ImageMagick] JP2 JPC JPE JPEG JPG JPM JPS JPT JSON K
(17:16:06:142) [ImageMagick] K25 KDC LABEL M M2V M4V MAC MAP MASK MAT
(17:16:06:142) [ImageMagick] MATTE MEF MIFF MKV MNG MONO MOV MP4 MPC MPEG
(17:16:06:142) [ImageMagick] MPG MRW MSL MSVG MTV MVG NEF NRW NULL O
(17:16:06:142) [ImageMagick] ORF OTB OTF PAL PALM PAM PANGO PATTERN PBM PCD
(17:16:06:142) [ImageMagick] PCDS PCL PCT PCX PDB PDF PDFA PEF PES PFA
(17:16:06:142) [ImageMagick] PFB PFM PGM PGX PICON PICT PIX PJPEG PLASMA PNG
(17:16:06:142) [ImageMagick] PNG00 PNG24 PNG32 PNG48 PNG64 PNG8 PNM PPM PS PS2
(17:16:06:142) [ImageMagick] PS3 PSB PSD PTIF PWP R RADIAL-GRADIENT RAF RAS RAW
(17:16:06:142) [ImageMagick] RGB RGBA RGBO RGF RLA RLE RMF RW2 SCR SCREENSHOT
(17:16:06:142) [ImageMagick] SCT SFW SGI SHTML SIX SIXEL SPARSE-COLOR SR2 SRF STEGANO
(17:16:06:142) [ImageMagick] SUN SVG SVGZ TEXT TGA THUMBNAIL TIFF TIFF64 TILE TIM
(17:16:06:142) [ImageMagick] TTC TTF TXT UBRL UBRL6 UIL UYVY VDA VICAR VID
(17:16:06:142) [ImageMagick] VIFF VIPS VST WBMP WEBP WMF WMV WPG X3F XBM

Source: http://www.geeks3d.com/hacklab/20180402/list-of-image-formats-supported-by-the-imagemagick-plugin/


8
GeeXLab - english forum / RhodiumLC 0.1.1 released
« on: April 03, 2018, 07:25:24 PM »
RhodiumLC is a simple pixel shader benchmark based on a shadertoy demo. RhodiumLC has been updated to version 0.1.1 and versions for Linux and macOS are now available.

Complete story and downloads links:
http://www.geeks3d.com/20180126/rhodiumlc-pixel-shader-gpu-benchmark-opengl/#20180403





 

9
3D-Tech News Around The Web / Quadro GV100 price: $9000
« on: April 02, 2018, 05:40:45 PM »
Quote
CEO Jensen Huang made it clear that the card is built with commercial workstations in mind. For now, studios like Disney and ILM will be utilizing the card and RTX technology to shorten rendering time. The Quadro GV100 will retail for $8,999 direct from Nvidia when it becomes available in April.

Source: https://www.techspot.com/news/73902-nvidia-unveils-quadro-gv100-rtx-technology.html

10
Quote
This talk, presented at GDC 2018, covers some of the main rendering technologies used on Volition’s ‘Agents of Mayhem’. The presentation includes Volition’s adaptation of Weighted Blended Order-Independent Transparency for use with additive as well as non-additive alpha. Also covered is Volition’s approach to tile-based deferred shading, which breaks shading into multiple shaders applied per tile based on feature sets to improve SIMD occupancy. Volition’s implementation of light-blockers, which extend standard light-clip planes to finite rectangles instead of only infinite planes is also be covered, as well as how these light-blockers can be applied to Light Propagation Volumes for GI to greatly reduce light leakage.

Links:
- http://www.dsvolition.com/publications/rendering-technology-in-agents-of-mayhem/
- http://www.dsvolition.com/wp-content/uploads/2018/03/Rendering%20Technology%20in%20Agents%20of%20Mayhem.pptx

11
3D-Tech News Around The Web / D3D12 Raytracing Fallback Layer
« on: April 02, 2018, 08:16:02 AM »
Quote
The D3D12 Raytracing Fallback Layer is a library that emulates the DirectX Raytracing API on devices without native driver/hardware support.

The library is built as a wrapper around the DirectX 12 API and has distinct but similar interfaces from the DirectX Raytracing (DXR) API. The library also redirects to the DXR API when driver support exists, so developers do not need to branch code to support the DXR API simultaneously.

The goal of the Fallback Layer is to enable developers to hit the ground running with the new DXR API without the need for a GPU with hardware support and a DXR capable variant of Windows. As of the GDC release, the Fallback Layer is in an early prototype stage and is a limited substitute for a DXR driver, particularly in terms of performance. A future goal of this project is to tune the Fallback to be performant enough for real-world scenarios in lieu of a DXR driver for small-scale raytracing techniques.

Links:
- https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Libraries/D3D12RaytracingFallback
- DXR forum: http://forums.directxtech.com/index.php?board=248.0

12
Quote
Particle-based methods like smoothed particle hydrodynamics (SPH) are increasingly adopted for large-scale fluid simulation in interactive computer graphics. However, surface rendering for such dynamic particle sets is challenging: current methods either produce low-quality results, or they are time consuming. In this paper, we introduce a novel approach to render high-quality fluid surfaces in screen space. Our method combines the techniques of particle splatting, ray-casting, and surface-normal estimation. We apply particle splatting to accelerate the ray-casting process, estimating the surface normal using principal component analysis (PCA) and a GPU-based technique to further accelerate our method. Our method can produce high-quality smooth surfaces while preserving thin and sharp details of large-scale fluids. The computation and memory cost of our rendering step depends only on the image resolution. These advantages make our method very suitable for previewing or rendering hundreds of millions of particles interactively. We demonstrate the efficiency and effectiveness of our method by rendering various fluid scenarios with different-sized particle sets.

Links:
- http://www.jcgt.org/published/0007/01/02/
- http://www.jcgt.org/published/0007/01/02/paper.pdf
- http://www.jcgt.org/published/0007/01/02/paper-lowres.pdf

13
Quote
New generation, explcit graphics APIs (Vulkan and DirectX 12) are more efficient, involve less CPU overhead. Part of it is that they don't check most errors. In old APIs (Direct3D 9, OpenGL) every function call was validated internally, returned success of failure code, while driver crash indicated a bug in driver code. New APIs, on the other hand, rely on developer doing the right thing. Of course some functions still return error code (especially ones that allocate memory or create some resource), but those that record commands into a command buffer just return void. If you do something illegal, you can expect undefined behavior. You can use Validation Layers / Debug Layer to do some checks, but otherwise everything may work fine on some GPUs, you may get incorrect result, or you may experience driver crash or timeout (called "TDR"). Good thing is that (contrary to old Windows XP), crash inside graphics driver doesn't cause "blue screen of death" or machine restart. System just restarts graphics hardware and driver, while your program received VK_ERROR_DEVICE_LOST code from one of functions like vkQueueSubmit. Unfortunately, you then don't know which specific draw call or other command caused the crash.

NVIDIA proposed solution for that: they created NVIDIA Aftermath library. It lets you (among other things) record commands that write custom "marker" data to a buffer that survives driver crash, so you can later read it and see which command was successfully executed last. Unfortunately, this library works only with NVIDIA graphics cards and only in D3D11 and D3D12.

I was looking for similar solution for Vulkan. When I saw that Vulkan can "import" external memory, I thought that maybe I could use function vkCmdFillBuffer to write immediate value to such buffer and this way implement the same logic. I then started experimenting with extensions: VK_KHR_get_physical_device_properties_2, VK_KHR_external_memory_capabilities, VK_KHR_external_memory, VK_KHR_external_memory_win32, VK_KHR_dedicated_allocation. I was basically trying to somehow allocate a piece of system memory and import it to Vulkan to write to it as Vulkan buffer. I tried many things: CreateFileMapping + MapViewOfFile, HeapCreate + HeapAlloc and other ways, with various flags, but nothing worked for me. I also couldn't find any description or sample code of how these extensions could be used in Windows to import some system memory as Vulkan buffer.

Everything changed when I learned that creating normal device memory and buffer inside Vulkan is enough! It survives driver crash, so its content can be read later via mapped pointer. No extensions required. I don't think this is guaranteed by specification, but it seems to work on both AMD and NVIDIA cards.

...

Links:
- http://asawicki.info/news_1677_debugging_vulkan_driver_crash_-_equivalent_of_nvidia_aftermath.html
- https://github.com/sawickiap/MISC/blob/master/VulkanAfterCrash.h

14
Intel has released a new graphics driver:

Quote
- DRIVER VERSION: 15.65.5.4982
- Windows Driver Store Version 23.20.16.4982

HIGHLIGHTS:
- Surviving Mars* Launch Driver
- Ni No Kuni II Revenant Kingdom* Launch Driver

- Download v4982 win64 @ Geeks3D
- Download @ Intel
- Release notes

On the release notes, this driver exposes Vulkan 1.0.68 but according to GPU Caps Viewer, the Vulkan version is 1.0.66.

This driver exposes the same OpenGL extensions and Vulkan features than v4944.









15
GeeXLab - english forum / Re: GeeXLab 0.20.x.x released
« on: March 30, 2018, 11:58:03 AM »
I installed a fresh version of Tinker OS 2.0.5 and I tested GeeXLab 0.20.x for Tinker OS. I also launched glxgears. Both tools work fine in OpenGL (CPU mode only!). There is still the message "unable to load driver: rockchip_dri.so" but according to this reply, it's normal:
Quote
This error message is caused by the userspace application try to use the OpenGL API.

On the Tinker Board, only OpenGL ES is hardware accelerated. The regular OpenGL runs in software mode only.



16
GeeXLab - english forum / Re: GeeXLab 0.20.x.x released
« on: March 29, 2018, 08:33:02 PM »
Looks like something has changed in the OpenGL support in the latest Tinker OS 2.0.5. The last time I tested GeeXLab on Tinker OS it was Tinker OS 2.0.4. I will install the new Tinker OS 2.0.5 and I let you know asap.

17
3D-Tech News Around The Web / (GDC2018) Terrain Rendering in Far Cry 5
« on: March 28, 2018, 06:30:31 PM »
Here is a 155-page PDF presentation of the techniques used in Far Cry 5 to render terrains:

Quote
What I am covering will be divided into 6 sections.

First I’ll discuss how we render the terrain heightfield geometry.
I’ll start with the classic approaches that you may be familiar with.
And then I’ll discuss how we ported parts of this to a GPU pipeline.

Second I’ll discuss how we shade the resulting terrain mesh.

Then I’ll discuss shading specializations and optimizations that we made for cliffs.

After that I’ll discuss how we combined our base heightfield with additional unique
geometry.

This will lead on to covering how we shade all our terrain geometry inputs in a single
screen space pass.

Finally I’ll talk about how we used the terrain data on the GPU to enhance the
rendering of other assets such as trees, grass and rocks.

Link: https://drive.google.com/file/d/1H6ouhi96pLg8WDlwXSGHFupPyZDv2MF6/view



18
ASRock's #MYSTERIOUS and #UNPREDICTABLE card is a Radeon RX 580 (double fan VGA cooler). According to the source, ASRock RX 500 should be launched in Q2 2018.
 





source | via

19
Quote
Circular Separable Convolution Depth of Field (Circular DoF) is a mathematical adaptation and implementation of a separable circular filter, which utilizes complex plane phasers to create very accurate and fast bokeh. At its core, this technique convolves a circular pattern blur in the frequency domain using a horizontal and a vertical pass, representing the frame buffer using complex numbers. Important properties of this technique include convolution separability, low memory bandwidth and large radii circles. This session will present the algorithmic, visual and performance results of Circular Separable Convolution Depth of field in 'Madden NFL', 'FIFA 17' and 'PGA Tour'.

Link: https://www.ea.com/frostbite/news/circular-separable-convolution-depth-of-field

20
PIX 1803.25 has been released. PIX is aperformance tuning and debugging tool for DirectX 12 games on Windows and Xbox.

Quote
PIX 1803.25 – GPU Occupancy, CPU sampling, automatic shader PDB resolution, and more

Today we released PIX 1803.25 which includes numerous new and updated features:

-  GPU Occupancy provides detailed insight into how shader workloads execute on the GPU. As announced at GDC we have collaborated with NVIDIA to bring console-level performance details about how shaders execute on the hardware to PIX on Windows. Many thanks to our partners at NVIDIA for helping us enable this great feature in PIX on Windows.

        - While the Execution Duration timeline lane shows the total execution time for draws and other rendering operations, the new Occupancy lane shows the associated work as it moves through the GPU’s rendering pipeline. You’ll see how work is broken into vertex shader work, pixel shader work, and so forth giving you a much more accurate view of how the hardware handles your rendering.

        - The Occupancy lane shows VS, HS, DS, GS, PS, and CS work corresponding to the different pipeline stages as well as a stage labeled Internal which allows GPU vendors to account for work that doesn’t map to any of the conventional pipeline stages.

        - To collect GPU occupancy data you have to Collect Timing Data first. Once the timing data is available, click the Enable button in the Occupancy lane to collect the data and populate the view.

        - This feature is currently only available on NVIDIA GPUs and it requires an updated driver. Please make sure to get version 391.35 or later to use this feature.

        - We’re working on surfacing this information for other GPUs as well, so stay tuned for updates.

...

Links:
- https://blogs.msdn.microsoft.com/pix/2018/03/27/pix-1803-25/
- https://blogs.msdn.microsoft.com/pix/download/

Pages: [1] 2 3 ... 72