diff options
-rw-r--r-- | intern/cycles/kernel/svm/svm_vector_rotate.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/intern/cycles/kernel/svm/svm_vector_rotate.h b/intern/cycles/kernel/svm/svm_vector_rotate.h index 903a9c1d1db..0dc0e223f41 100644 --- a/intern/cycles/kernel/svm/svm_vector_rotate.h +++ b/intern/cycles/kernel/svm/svm_vector_rotate.h @@ -57,7 +57,9 @@ ccl_device void svm_node_vector_rotate(ShaderData *sd, break; } float angle = stack_load_float(stack, angle_stack_offset); - result = len(axis) ? rotate_around_axis(vector - center, axis, angle) + center : vector; + result = (len_squared(axis) != 0.0f) ? + rotate_around_axis(vector - center, axis, angle) + center : + vector; } /* Output */ |