Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_math_util.h
| Show All 25 Lines | ccl_device void svm_vector_math(float *Fac, float3 *Vector, NodeVectorMath type, float3 Vector1, float3 Vector2) | ||||
| if(type == NODE_VECTOR_MATH_ADD) { | if(type == NODE_VECTOR_MATH_ADD) { | ||||
| *Vector = Vector1 + Vector2; | *Vector = Vector1 + Vector2; | ||||
| *Fac = average_fac(*Vector); | *Fac = average_fac(*Vector); | ||||
| } | } | ||||
| else if(type == NODE_VECTOR_MATH_SUBTRACT) { | else if(type == NODE_VECTOR_MATH_SUBTRACT) { | ||||
| *Vector = Vector1 - Vector2; | *Vector = Vector1 - Vector2; | ||||
| *Fac = average_fac(*Vector); | *Fac = average_fac(*Vector); | ||||
| } | } | ||||
| else if (type == NODE_VECTOR_MATH_MULTIPLY) { | |||||
| *Vector = Vector1 * Vector2; | |||||
| *Fac = average_fac(*Vector); | |||||
| } | |||||
| else if(type == NODE_VECTOR_MATH_AVERAGE) { | else if(type == NODE_VECTOR_MATH_AVERAGE) { | ||||
| *Vector = safe_normalize_len(Vector1 + Vector2, Fac); | *Vector = safe_normalize_len(Vector1 + Vector2, Fac); | ||||
| } | } | ||||
| else if(type == NODE_VECTOR_MATH_DOT_PRODUCT) { | else if(type == NODE_VECTOR_MATH_DOT_PRODUCT) { | ||||
| *Fac = dot(Vector1, Vector2); | *Fac = dot(Vector1, Vector2); | ||||
| *Vector = make_float3(0.0f, 0.0f, 0.0f); | *Vector = make_float3(0.0f, 0.0f, 0.0f); | ||||
| } | } | ||||
| else if(type == NODE_VECTOR_MATH_CROSS_PRODUCT) { | else if(type == NODE_VECTOR_MATH_CROSS_PRODUCT) { | ||||
| ▲ Show 20 Lines • Show All 149 Lines • Show Last 20 Lines | |||||