Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_closure.h
| Show All 24 Lines | if(refract) { | ||||
| sc->data0 = eta; | sc->data0 = eta; | ||||
| sc->data1 = 0.0f; | sc->data1 = 0.0f; | ||||
| sc->data2 = 0.0f; | sc->data2 = 0.0f; | ||||
| ccl_fetch(sd, flag) |= bsdf_refraction_setup(sc); | ccl_fetch(sd, flag) |= bsdf_refraction_setup(sc); | ||||
| } | } | ||||
| else { | else { | ||||
| sc->data0 = 0.0f; | sc->data0 = 0.0f; | ||||
| sc->data1 = 0.0f; | sc->data1 = 0.0f; | ||||
| sc->data2 = 0.0f; | |||||
| ccl_fetch(sd, flag) |= bsdf_reflection_setup(sc); | ccl_fetch(sd, flag) |= bsdf_reflection_setup(sc); | ||||
| } | } | ||||
| } | } | ||||
| else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_GLASS_ID) { | else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_GLASS_ID) { | ||||
| sc->data0 = roughness; | sc->data0 = roughness; | ||||
| sc->data1 = roughness; | sc->data1 = roughness; | ||||
| sc->data2 = eta; | sc->data2 = eta; | ||||
| ▲ Show 20 Lines • Show All 347 Lines • ▼ Show 20 Lines | case CLOSURE_BSDF_HAIR_TRANSMISSION_ID: { | ||||
| * mixing multiple BSDFS. energy will not be conserved and | * mixing multiple BSDFS. energy will not be conserved and | ||||
| * the throughput can blow up after multiple bounces. we | * the throughput can blow up after multiple bounces. we | ||||
| * better figure out a way to skip backfaces from rays | * better figure out a way to skip backfaces from rays | ||||
| * spawned by transmission from the front */ | * spawned by transmission from the front */ | ||||
| sc->weight = make_float3(1.0f, 1.0f, 1.0f); | sc->weight = make_float3(1.0f, 1.0f, 1.0f); | ||||
| sc->N = N; | sc->N = N; | ||||
| sc->data0 = 0.0f; | sc->data0 = 0.0f; | ||||
| sc->data1 = 0.0f; | sc->data1 = 0.0f; | ||||
| sc->data2 = 0.0f; | |||||
| ccl_fetch(sd, flag) |= bsdf_transparent_setup(sc); | ccl_fetch(sd, flag) |= bsdf_transparent_setup(sc); | ||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| ShaderClosure *sc = ccl_fetch_array(sd, closure, ccl_fetch(sd, num_closure)); | ShaderClosure *sc = ccl_fetch_array(sd, closure, ccl_fetch(sd, num_closure)); | ||||
| sc = svm_node_closure_get_bsdf(sd, mix_weight); | sc = svm_node_closure_get_bsdf(sd, mix_weight); | ||||
| if(sc) { | if(sc) { | ||||
| ▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | case CLOSURE_VOLUME_ABSORPTION_ID: { | ||||
| break; | break; | ||||
| } | } | ||||
| case CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID: { | case CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID: { | ||||
| ShaderClosure *sc = svm_node_closure_get_bsdf(sd, mix_weight * density); | ShaderClosure *sc = svm_node_closure_get_bsdf(sd, mix_weight * density); | ||||
| if(sc) { | if(sc) { | ||||
| sc->data0 = param2; /* g */ | sc->data0 = param2; /* g */ | ||||
| sc->data1 = 0.0f; | sc->data1 = 0.0f; | ||||
| sc->data2 = 0.0f; | |||||
| ccl_fetch(sd, flag) |= volume_henyey_greenstein_setup(sc); | ccl_fetch(sd, flag) |= volume_henyey_greenstein_setup(sc); | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| default: | default: | ||||
| break; | break; | ||||
| } | } | ||||
| #endif | #endif | ||||
| ▲ Show 20 Lines • Show All 135 Lines • Show Last 20 Lines | |||||