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.

Topics - JeGX

Pages: [1] 2 3 ... 62
New graphics driver based on the new 440 family is available.

Downloads links, changes, OpenGL and Vulkan info:

3D-Tech News Around The Web / MySQL Raytracer
« on: October 21, 2019, 01:55:46 PM »
This is a raytracing engine contained in a single Mysql SELECT statement. In the beginning of the code there are a few parameters that can be modified. The scene can be specified using the @triangles and @squares parameters, but everything is explained in the comments. The whole query returns a bitmap file which can be written to the filesystem using the "INTO DUMPFILE" syntax at the end of the query, if mysql has filesystem write permissions.

The raytracer supports shadows and reflections, which makes it, to my knowledge, the most advanced MySQL raytracer on the market right now. However, it is not really polished and kinda slow. Since I didn't really know how to present this work in a demoparty friendly way, I just included two finished renderings.

To run this code, you need a running mysql-server to execute the query. The code is only tested on mysql version 5.7.22 running on Ubuntu 16.04. MySQL also needs file write permissions to write the bmp file to the filesystem.

If you want to render more than a few pixels worth you usually also have to increase mysql's memory and execution time limit settings.


MySQL Raytracer

MySQL Raytracer

Zero is a small graphics app that uses JavaScript to replicate the functionality of a GPU and uses the terminal to display its rendered output via nodejs' stdout. Zero was written for fun as well as to see how far one could reasonably push JavaScript performance. Rendering has been tested on Windows, OSX and Linux terminals.


Zero -A graphics pipeline implemented in JavaScript and rendered to the terminal

When you set up your render passes in Vulkan you have to set load and store operations. They let you specify what it should be done with your images at the render pass boundaries – discard/clear the contents or keep them in memory.

It may be surprising, especially if you have a background in desktop graphics, that you must specify these operations upfront. They even look like duplicates, since you can still clear the screen at the beginning of your command buffer.

The reason why we need to specify these operations upfront is that it allows for some special optimizations in tile-based GPUs (virtually all mobile GPUs). A load operation is the only chance to clear the screen efficiently on mobile! In order to understand the deceptive importance of this topic we need to start a brief overview of the unique challenges of mobile GPUs.


3D-Tech News Around The Web / Raw DirectX 12 tutorial
« on: October 21, 2019, 01:35:11 PM »
An introduction to writing a simple "Hello Triangle" DirectX 12 application. DirectX 12 is the latest low level graphics API for writing Windows applications, supporting ray tracing, compute, rasterization, and much more.


this is a collection of demos done by Nicolas Barradeau, it's meant to help newcomers understand the different aspects of creative coding and datavisualization.


Creative coding and data visualization resources

In this post we’ll be looking at integrating Dear ImGui in a custom Vulkan renderer. The audience I’m targeting is beginners still struggling with Vulkan. You should however have a basic Vulkan renderer already up and running. I followed Alexander Overvoorde’s amazing tutorial myself and I will use it as an example. The code is entirely available at vulkan-tutorial (go to the bottom of the page) if you’re willing to start from there as well. The first chapters explain very carefully how to install the Vulkan SDK and deal with dependencies.


GeeXLab - english forum / Windows 10 Dark Theme Switch
« on: October 04, 2019, 12:01:28 PM »
The Windows 10 Dark Theme Switch is an utility and a demo at the same time. Utility because this small application allows to quickly enable or disable the dark theme for applications like the File Explorer, a feature introduced in Windows 10 version 1809 and higher. The dark theme can be enabled or disabled from Windows Settings, but and that’s the interesting point, it can be turned ON/OFF via the registry. And the nice thing with the registry technique, is that your version of Windows 10 doesn’t need to be activated…

Article and download link:

GeeXLab demo: Windows 10 Dark Theme Switch

The Vulkan Best Practice for Mobile Developers is collection of resources to help you develop optimized Vulkan applications for mobile platforms.


Vulkan Best Practice for Mobile Developers

3D-Tech News Around The Web / Intel Open Volume Kernel Library
« on: October 01, 2019, 05:40:02 PM »
Intel Open Volume Kernel Library (Intel Open VKL) is a collection of high-performance volume computation kernels, developed at Intel. The target users of Open VKL are graphics application engineers who want to improve the performance of their volume rendering applications by leveraging Open VKL’s performance-optimized kernels, which include volume traversal and sampling functionality for a variety of volumetric data formats. The kernels are optimized for the latest Intel® processors with support for SSE, AVX, AVX2, and AVX-512 instructions. Open VKL is part of the Intel oneAPI Rendering Toolkit and is released under the permissive Apache 2.0 license.

Open VKL provides a C API, and also supports applications written with the Intel® SPMD Program Compiler (ISPC) by also providing an ISPC interface to the core volume algorithms. This makes it possible to write a renderer in ISPC that automatically vectorizes and leverages SSE, AVX, AVX2, and AVX-512 instructions. ISPC also supports runtime code selection, thus ISPC will select the best code path for your application.

In addition to the volume kernels, Open VKL provides tutorials and example renderers to demonstrate how to best use the Open VKL API.

Open VKL 0.7.0 (alpha)

- Initial public alpha release, with support for structured, unstructured, and AMR volumes.


Intel Open Volume Kernel Library

An OpenVKL demo looks like:

Code: [Select]
#include <openvkl/openvkl.h>
#include <stdio.h>


int main()

  VKLDriver driver = vklNewDriver("ispc");

  int dimensions[] = {128, 128, 128};

  const int numVoxels = dimensions[0] * dimensions[1] * dimensions[2];

  VKLVolume volume = vklNewVolume("structured_regular");
  vklSetVec3i(volume, "dimensions", dimensions[0], dimensions[1], dimensions[2]);
  vklSetVec3f(volume, "gridOrigin", 0, 0, 0);
  vklSetVec3f(volume, "gridSpacing", 1, 1, 1);

  float *voxels = malloc(numVoxels * sizeof(float));

  if (!voxels) {
    printf("failed to allocate voxel memory!\n");
    return 1;

  // x-grad sample volume
  for (int k = 0; k < dimensions[2]; k++)
    for (int j = 0; j < dimensions[1]; j++)
      for (int i = 0; i < dimensions[0]; i++)
        voxels[k * dimensions[0] * dimensions[1] + j * dimensions[2] + i] =

  VKLData voxelData = vklNewData(numVoxels, VKL_FLOAT, voxels, 0);
  vklSetData(volume, "voxelData", voxelData);




  return 0;}


Intel 64 and IA-32 architectures optimization reference manual (842-page PDF):


NVIDIA has released a new graphics driver that provides increased performance and the optimal gaming experience for Tom Clancyʹs Ghost Recon Breakpoint and Asgardʹs Wrath.

This driver adds the support for the HTC VIVE Cosmos VR HMD

Fixed Issues
- [UBOAT]: The game crashes due to memory allocation issues when launching Sandbox mode from the main menu. [2694301]
- [Tom Clancyʹs The Division II]: The game may crash when played in DirectX 12 mode. [200406322]
- [Vulkan-based games]: Error message appears in the game when invoking GeForce Experience Freestyle or Ansel using the hot keys. [200549987]
- [Tradesmen OS3DE]: Some objects are missing in the game. [2691363]
- [Cinema4D]: Brushes produce a ghosting effect. [2633267] 


- latest GeForce driver for win10 64-bit @ Geeks3D
- latest GeForce driver for win7 64-bit @ Geeks3D

- 436.30 win10 64-bit @ NVIDIA
- 436.30 win7 64-bit @ NVIDIA

This driver exposes same OpenGL 4.6 and Vulkan 1.1.109 than 436.02.

NVIDIA GeForce 436.48 + RTX 2070 + GPU Caps Viewer

TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.

TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence Research organization for the purposes of conducting machine learning and deep neural networks research. The system is general enough to be applicable in a wide variety of other domains, as well.

TensorFlow provides stable Python and C++ APIs, as well as non-guaranteed backwards compatible API for other languages.

TensorFlow 2.0 focuses on simplicity and ease of use, featuring updates like:

    Easy model building with Keras and eager execution.
    Robust model deployment in production on any platform.
    Powerful experimentation for research.
    API simplification by reducing duplication and removing deprecated endpoints.


TensorFlow 2.0.0 Machine Learning framework

3D-Tech News Around The Web / Optimized SIMD Cross-Product in C++
« on: September 30, 2019, 09:13:49 PM »
Optimized SIMD routine in C++ for computing cross-products:

A cross-product is a useful operation, particularly in graphics.

3D vectors are typically stored (at least on-chip) in a hardware 4D vector register with the fourth component ignored. On typical (x86-64) desktops, this would be the SSE registers "xmmi". On typical (x86-64) desktops, this would be the SSE registers "xmmi". The simple and common implementation (such as here) then becomes:

Code: [Select]
inline __m128 cross_simple(__m128 const& x, __m128 const& y) {
    __m128 tmp0 = _mm_shuffle_ps(x,x,_MM_SHUFFLE(3,0,2,1));
    __m128 tmp1 = _mm_shuffle_ps(y,y,_MM_SHUFFLE(3,1,0,2));
    __m128 tmp2 = _mm_shuffle_ps(x,x,_MM_SHUFFLE(3,1,0,2));
    __m128 tmp3 = _mm_shuffle_ps(y,y,_MM_SHUFFLE(3,0,2,1));
    return _mm_sub_ps(

This starts with four shuffle instructions, then two multiplies, then a subtract. Not bad, but can we do better?


3D-Tech News Around The Web / bootRogue: a boot sector game (510 bytes)
« on: September 30, 2019, 05:32:06 PM »
bootRogue is a roguelike game that fits in a boot sector (510 bytes). It's compatible with 8088 (the original IBM PC).

This is bootRogue, a roguelike game that fits in 510 bytes of x86 assembler code. It can run from a floppy disk or as a MS-DOS COM file.

Walk slowly in the dark dungeons with your torch, where you can find gold, food, armor, weapons and traps, along terrible monsters.

Will you be able to make it to level 26 and find the Amulet of Yendor?

- source code and binary (.com):
- youtube video:

bootRogue: a boot sector game

Assimp (or Open Asset Import Library) is a portable open source library to import various well-known 3D model formats in a uniform manner.

The final version 5.0.0 has been released and here is the complete changelog:

ASSIMP repo @ github:

I updated GeeXLab (v0.29.3, I will release the win64 version very shortly) with Assimp 5.0. I quickly tested it in the upcoming version of MadView3D and it sounds ok!

Tested with a glTF model from sketchfab:
GeeXLab - MadView3D model viewer

3D-Tech News Around The Web / Strand-based Hair Rendering in Frostbite
« on: September 26, 2019, 04:58:45 PM »
Today I will be presenting the research made at Frostbite regarding strand-based hair rendering.This is a project aimed at seeing what is possible regarding hair rendering and simulation on current or near-future hardware for use in games.Keep in mind that this work is all still very much WIP and nothing presented is final.

- presentation (42-page PDF):
- via:

Strand-based Hair Rendering in Frostbite

#gamedev #siggraph2019

3D-Tech News Around The Web / NVIDIA Nsight Systems 2019.5
« on: September 25, 2019, 09:58:52 PM »
NVIDIA Nsight Systems 2019.5 is now available for download. This release aims to refine the user experience with CLI sessions for simultaneous usage of more commands, improved GUI timeline zooming levels of detail, enhanced Vulkan API coloring, and Linux GPU context switch trace.


3D-Tech News Around The Web / UNIGINE Engine 2.9 SDK showcase video
« on: September 25, 2019, 09:45:42 PM »

Get a free trial of UNIGINE 2.9 SDK:
Key changes in 2.9 release:
- C# Component System: simplified workflow, Editor integration, working sample.
- Improved Image Generator.
- Better Shadows: realistic penumbra, smooth edges.
- Revamped Subsurface Scattering: increased realism and flexibility.
- Better support for image warping and edge blending (multi-projection onto the curved screens).
- Improved materials and shaders customization.
- Spline Tool Updates: increased stability, smoother editing, improved rendering.
- Integration of Varjo VR-1 headset with bionic display and eye-tracking.
- Geodetics plugin for geo-coordinates conversion.

Full release notes:

Pages: [1] 2 3 ... 62