/* * Copyright 2011-2013 Blender Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "node_hash.h" #include "stdcycles.h" #include "vector2.h" #include "vector4.h" #define vector3 point shader node_white_noise_texture(string dimensions = "3D", point Vector = point(0.0, 0.0, 0.0), float W = 0.0, output float Value = 0.0, output color Color = 0.0) { if (dimensions == "1D") { Value = noise("hash", W); Color = hash_float_to_color(W); } else if (dimensions == "2D") { Value = noise("hash", Vector[0], Vector[1]); Color = hash_vector2_to_color(vector2(Vector[0], Vector[1])); } else if (dimensions == "3D") { Value = noise("hash", Vector); Color = hash_vector3_to_color(vector3(Vector[0], Vector[1], Vector[2])); } else if (dimensions == "4D") { Value = noise("hash", Vector, W); Color = hash_vector4_to_color(vector4(Vector[0], Vector[1], Vector[2], W)); } else { warning("%s", "Unknown dimension!"); } }