PIXELBANKv9.1.0
Menu

NeRF Positional Encoding

Apply positional encoding for Neural Radiance Fields (NeRF).

NeRF uses positional encoding to help networks learn high-frequency details. A scalar position pp is encoded as:

γ(p)=(sin⁡(20πp),cos⁡(20πp),sin⁡(21πp),cos⁡(21πp),...,sin⁡(2L−1πp),cos⁡(2L−1πp))\gamma(p) = (\sin(2^0 \pi p), \cos(2^0 \pi p), \sin(2^1 \pi p), \cos(2^1 \pi p), ..., \sin(2^{L-1} \pi p), \cos(2^{L-1} \pi p))

This maps a single coordinate to a 2L2L-dimensional vector. Higher frequencies capture fine details while lower frequencies capture smooth variations.

For 3D points, we apply this independently to x, y, z coordinates.

Example:

Input:
positional_encoding(0.5, 2)
Output:
[1.0, 0.0, 0.0, -1.0]
Reasoning:
  • Encoding value=0.5 with L=2 frequency bands: freq 0 (2⁰π = π): sin(π×0.5)=sin(π/2)=1.0, cos(π×0.5)=cos(π/2)=0.0 freq 1 (2¹π = 2π): sin(2π×0.5)=sin(π)=0.0, cos(2π×0.5)=cos(π)=-1.0

  • Result: [1.0, 0.0, 0.0, -1.0]

Constraints:

  • value: scalar position to encode
  • L: number of frequency bands
  • Return encoded vector of length 2L
🔒

Editor locked

The code editor is locked for Pro problems. It is only available for free problems. Please upgrade to gain access to the code editor for all problems.

solution.py

Test Results

0/0
Run code to see test results.
NeRF Positional Encoding - Medium | PixelBank