<aside>

Must read: Oversimplified Normalized Device Coordinates. (NDC) 🔴

</aside>

<aside>

Download:

sop_re1mon_ndc_explorer.hdalc

</aside>

Overview

NDC Explorer is a Houdini learning tool designed to explore Normalized Device Coordinates (NDC) and the relationship between 3D space and a camera's image space.

It includes three practical examples using Houdini's fromNDC() VEX functions.

What is NDC?

NDC is a coordinate system used to represent positions relative to a camera's projected image.

HOUDINI OVERSIMPLIFIED       
    NDC EXPLORER
       re1mon  
       
%%%%%%........:%%%%%%
%%%%%%=%%%%%%#...%%%%
%%%..%%%%%%%%%%%..%%%
%%..%%%%%%%%%%%%%..%%
%%..%%..=%%%-..%%..%%
%%..%....#%#....%..%%
%%..%%%%%:.:%%%%%..%%
%%....-%%%%%%%-....%%
%%......%%%%%......%%
%...................#
.....................

## How to use the tool

View the result through the specified camera while adjusting the parameters. 
This makes it easier to understand how NDC coordinates, depth, and margins affect the geometry.

### Example 1 — Project 3D Positions to NDC

Purpose: Understand where points in 3D space appear in the camera image.

### Example 2 — Move Geometry Through Camera Depth

Purpose: Explore how NDC depth affects reconstructed 3D geometry.

Remember that NDC depth is not the same as a distance measured in Houdini world units.

### Example 3 — Create a Camera Frustum

Purpose: Reconstruct a procedural frustum from a box defined in NDC space.

Required setup

- Position the input box in NDC space, centered at `(0.5, 0.5)` in X and Y.
- Ensure its Z coordinates extend from `0` into negative values.

HOW_HDA_NDC.mp4

image.png