Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_wavelength.h
| Show First 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | ccl_static_constant float cie_colour_match[81][3] = { | ||||
| {0.0468f, 0.0170f, 0.0000f}, {0.0329f, 0.0119f, 0.0000f}, {0.0227f, 0.0082f, 0.0000f}, | {0.0468f, 0.0170f, 0.0000f}, {0.0329f, 0.0119f, 0.0000f}, {0.0227f, 0.0082f, 0.0000f}, | ||||
| {0.0158f, 0.0057f, 0.0000f}, {0.0114f, 0.0041f, 0.0000f}, {0.0081f, 0.0029f, 0.0000f}, | {0.0158f, 0.0057f, 0.0000f}, {0.0114f, 0.0041f, 0.0000f}, {0.0081f, 0.0029f, 0.0000f}, | ||||
| {0.0058f, 0.0021f, 0.0000f}, {0.0041f, 0.0015f, 0.0000f}, {0.0029f, 0.0010f, 0.0000f}, | {0.0058f, 0.0021f, 0.0000f}, {0.0041f, 0.0015f, 0.0000f}, {0.0029f, 0.0010f, 0.0000f}, | ||||
| {0.0020f, 0.0007f, 0.0000f}, {0.0014f, 0.0005f, 0.0000f}, {0.0010f, 0.0004f, 0.0000f}, | {0.0020f, 0.0007f, 0.0000f}, {0.0014f, 0.0005f, 0.0000f}, {0.0010f, 0.0004f, 0.0000f}, | ||||
| {0.0007f, 0.0002f, 0.0000f}, {0.0005f, 0.0002f, 0.0000f}, {0.0003f, 0.0001f, 0.0000f}, | {0.0007f, 0.0002f, 0.0000f}, {0.0005f, 0.0002f, 0.0000f}, {0.0003f, 0.0001f, 0.0000f}, | ||||
| {0.0002f, 0.0001f, 0.0000f}, {0.0002f, 0.0001f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f}, | {0.0002f, 0.0001f, 0.0000f}, {0.0002f, 0.0001f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f}, | ||||
| {0.0001f, 0.0000f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f}, {0.0000f, 0.0000f, 0.0000f}}; | {0.0001f, 0.0000f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f}, {0.0000f, 0.0000f, 0.0000f}}; | ||||
| ccl_device void svm_node_wavelength( | ccl_device_noinline void svm_node_wavelength( | ||||
| KernelGlobals *kg, ShaderData *sd, float *stack, uint wavelength, uint color_out) | const KernelGlobals *kg, ShaderData *sd, float *stack, uint wavelength, uint color_out) | ||||
| { | { | ||||
| float lambda_nm = stack_load_float(stack, wavelength); | float lambda_nm = stack_load_float(stack, wavelength); | ||||
| float ii = (lambda_nm - 380.0f) * (1.0f / 5.0f); // scaled 0..80 | float ii = (lambda_nm - 380.0f) * (1.0f / 5.0f); // scaled 0..80 | ||||
| int i = float_to_int(ii); | int i = float_to_int(ii); | ||||
| float3 color; | float3 color; | ||||
| if (i < 0 || i >= 80) { | if (i < 0 || i >= 80) { | ||||
| color = make_float3(0.0f, 0.0f, 0.0f); | color = make_float3(0.0f, 0.0f, 0.0f); | ||||
| Show All 17 Lines | |||||