Hi!

I'm Nia, a Developer Technology Engineer at NVIDIA.
You can reach me at enullchofoo@barparallax.comfyi.
Here's a few projects I've worked on!
Many Cornell boxes with different materials.

vk_mini_path_tracer

A relatively small, beginner-friendly path tracing tutorial.
Project website >>

An image of marbles compressed with varying rates of ASTC compression.

The NVIDIA Texture Tools Exporter

I've developed the new version of the historic texture compression tool since 2019, and help to maintain the underlying NVIDIA Texture Tools (NVTT) library.
Project website >>

A beautiful sunset in Minecraft.

Quake II and Minecraft with RTX Tone Mappers

Path-traced images can cover extremely large dynamic ranges — from the intensity of the midday sun to the depths of a cave. I built adaptive tone mappers for each of these games based on Eilertsen, Mantiuk, and Unger's paper "Real-time noise-aware tone mapping".

Minecraft with RTX >>
Quake II RTX >>
The Q2RTX tone mapper >>

The sample rendering many spheres of different opacities.

vk_order_independent_transparency

with Christoph Kubisch
Demonstrates seven different techniques for order-independent transparency in Vulkan.
Project website >>

A scene with more than a thousand Stanford Bunny meshes. On the right, meshes are divided into clusters of triangles. In the center, clusters are combined into groups. On the left, the level of detail varies from group to group. Because of the way the clusters and groups were built, though, the rendering is seamless, even when there are two adjacent groups at different levels of detail.

RTX Mega Geometry Vulkan Samples

with many others
These samples show how you can use two new extensions to build ray traced scenes faster! I helped with tests, CI, and static analysis for the release.
vk_animated_clusters >>
vk_tessellated_clusters >>
vk_lod_clusters >>
vk_partitioned_tlas >>

A crab composed of 16K displaced micro-meshes (left half), expanding to 2 million micro-triangles (right half), consuming about 1 byte per micro-triangle, from threedscans.com.

NVIDIA Micro-Mesh

with many others
New graphics primitives for accelerating opacity tests and representing extreme amounts of geometry in a compact format.
Project website >>
GTC 2023 talk >>

Ray traced occlusion on a medieval building.

Ray Tracing Gems II: Introduction to Vulkan Ray Tracing

with Matthew Rusch and Nuno Subtil
We wrote a pretty comprehensive chapter on setting up ray tracing in the Vulkan API.
Book >>
Source code >>

Fuchsia-to-cyan pistons spring from an aluminum grid. The camera is focused a few feet away, but as the pistons retreat into the distance, they become less detailed. The way they get less detailed varies across the different columns of the image. On the left, instead of getting blurrier they get more pixelated. Second to left, they get more JPEG-compressed, first losing their fine streaks and finally becoming rainbows of blocks. Second from right, they get more chromatic aberration. First from right, they look as if they blend together more; kind of as if it was a painting and the painter used larger and larger brush strokes for objects in the background.

JPEG Compression Depth of Field

I turned an idea from a Jam2Go video into a Shadertoy that simulates JPEG compression more closely. It simulates JPEG's frequency-domain quantization, YCoCg transform, and (sort of) 4:2:0 chroma subsampling, in 4 shader passes — plus a few more stylized depth-of-field effects!
Project website >>
Cohost post >>

~

Headers: Hershey Noailles Futura Simplex by Luuse, derived from the original vector fonts.
Text: Poppins by Indian Type Foundry, Jonny Pinhorn, and Ninad Kale.
All trademarks are property of their respective owners.