INNER CODE UNIT · Python

radical_inverse_vdc

SedulousWorks/SedulousEngine · Scripts/generate_brdf_lut.py:46

def radical_inverse_vdc(bits):
    """Hammersley quasi-random sequence (Van der Corput) - vectorized."""
    bits = bits.astype(np.uint32)
    bits = ((bits << 16) | (bits >> 16))
    bits = (((bits & 0x55555555) << 1) | ((bits & 0xAAAAAAAA) >> 1))
    bits = (((bits & 0x33333333) << 2) | ((bits & 0xCCCCCCCC) >> 2))
    bits = (((bits & 0x0F0F0F0F) << 4) | ((bits & 0xF0F0F0F0) >> 4))
    bits = (((bits & 0x00FF00FF) << 8) | ((bits & 0xFF00FF00) >> 8))
    return bits.astype(np.float64) * 2.3283064365386963e-10


def generate_brdf_lut():
    """Generate the BRDF LUT data using vectorized numpy."""
    start = time.time()

    # Pre-compute Hammersley sequence for all samples.
    sample_indices = np.arange(NUM_SAMPLES, dtype=np.uint32)
    xi1_all = sample_indices.astype(np.float64) / NUM_SAMPLES

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…