Skip to content
DeepForgeby svx
All problems
HardComputer Visioncv-380

Volume Rendering Alpha Composite

Problem

Alpha-composite a ray through a list of volume samples.

With alpha_i = 1 - exp(-sigma_i * delta_i) and transmittance T_i = product of (1 - alpha_j) for j < i, accumulate color = sum T_i * alpha_i * color_i over RGB colors. Return the [r, g, b] color rounded to 4 decimal places.

Hint

Transmittance decreases multiplicatively after each sample absorbs light.

Test cases

case 1
in: [[1,1],[1,1],[[1,0,0],[0,1,0]]]
expected: [0.6321,0.2325,0]
case 2
in: [[1,1],[0,0],[[1,0,0],[0,1,0]]]
expected: [0,0,0]
case 3
in: [[100],[1],[[0.5,0.5,0.5]]]
expected: [0.5,0.5,0.5]
case 4
in: [[0.5,0.5,0.5],[2,1,3],[[1,1,0],[0,0,1],[1,0,1]]]
expected: [0.8055,0.6321,0.3181]
Starter codePython
def volume_render_color(deltas, sigmas, colors):
    # Your code here
    pass

4 test cases · run your code against them in the editor