SetInts() public method

Set multiple consecutive integer parameters at once.

public SetInts ( int nameID ) : void
nameID int Property name ID, use Shader.PropertyToID to get it.
return void
Esempio n. 1
0
 static public int SetInts(IntPtr l)
 {
     try {
         int argc = LuaDLL.lua_gettop(l);
         if (matchType(l, argc, 2, typeof(int), typeof(System.Int32[])))
         {
             UnityEngine.ComputeShader self = (UnityEngine.ComputeShader)checkSelf(l);
             System.Int32 a1;
             checkType(l, 2, out a1);
             System.Int32[] a2;
             checkParams(l, 3, out a2);
             self.SetInts(a1, a2);
             pushValue(l, true);
             return(1);
         }
         else if (matchType(l, argc, 2, typeof(string), typeof(System.Int32[])))
         {
             UnityEngine.ComputeShader self = (UnityEngine.ComputeShader)checkSelf(l);
             System.String             a1;
             checkType(l, 2, out a1);
             System.Int32[] a2;
             checkParams(l, 3, out a2);
             self.SetInts(a1, a2);
             pushValue(l, true);
             return(1);
         }
         pushValue(l, false);
         LuaDLL.lua_pushstring(l, "No matched override function SetInts to call");
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Esempio n. 2
0
    /// <summary>
    /// Uses the GPU to generate a RenderTexture where the pixels in the texture represent noise.
    /// Set the octaves variable before calling this to a desired value.
    /// </summary>
    /// <returns>RenderTexture</returns>
    /// <param name="width"> Width of the texture to generate. </param>
    /// <param name="height"> Height of the texture to generate. </param>
    /// <param name="noiseOffsetX"> X Coordinate of the offset for the noise on the texture. </param>
    /// <param name="noiseOffsetY"> Y Coordinate of the offset for the noise on the texture. </param>
    /// <param name="noiseScale"> Value to scale the noise coordinates by. </param>
    /// <param name="normalize"> Whether or not to remap the noise from (-1, 1) to (0, 1). </param>
    public static UnityEngine.RenderTexture GetNoiseRenderTexture(int width, int height, float noiseOffsetX = 0, float noiseOffsetY = 0, float noiseScale = 0.01f, bool normalize = true)
    {
        UnityEngine.RenderTexture retTex = new UnityEngine.RenderTexture(width, height, 0);
        retTex.enableRandomWrite = true;
        retTex.Create();

        UnityEngine.ComputeShader shader = UnityEngine.Resources.Load(shaderPath) as UnityEngine.ComputeShader;
        if (shader == null)
        {
            UnityEngine.Debug.LogError(noShaderMsg);
            return(null);
        }

        int[] resInts = { width, height };

        int kernel = shader.FindKernel("ComputeNoise");

        shader.SetTexture(kernel, "Result", retTex);
        SetShaderVars(shader, new UnityEngine.Vector2(noiseOffsetX, noiseOffsetY), normalize, noiseScale);
        shader.SetInts("reses", resInts);

        UnityEngine.ComputeBuffer permBuffer = new UnityEngine.ComputeBuffer(perm.Length, 4);
        permBuffer.SetData(perm);
        shader.SetBuffer(kernel, "perm", permBuffer);

        shader.Dispatch(kernel, width / 14, height / 15, 1);

        permBuffer.Release();

        return(retTex);
    }
 static public int SetInts(IntPtr l)
 {
     try {
                     #if DEBUG
         var    method     = System.Reflection.MethodBase.GetCurrentMethod();
         string methodName = GetMethodName(method);
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.BeginSample(methodName);
                     #else
         Profiler.BeginSample(methodName);
                     #endif
                     #endif
         int argc = LuaDLL.lua_gettop(l);
         if (matchType(l, argc, 2, typeof(int), typeof(System.Int32[])))
         {
             UnityEngine.ComputeShader self = (UnityEngine.ComputeShader)checkSelf(l);
             System.Int32 a1;
             checkType(l, 2, out a1);
             System.Int32[] a2;
             checkParams(l, 3, out a2);
             self.SetInts(a1, a2);
             pushValue(l, true);
             return(1);
         }
         else if (matchType(l, argc, 2, typeof(string), typeof(System.Int32[])))
         {
             UnityEngine.ComputeShader self = (UnityEngine.ComputeShader)checkSelf(l);
             System.String             a1;
             checkType(l, 2, out a1);
             System.Int32[] a2;
             checkParams(l, 3, out a2);
             self.SetInts(a1, a2);
             pushValue(l, true);
             return(1);
         }
         pushValue(l, false);
         LuaDLL.lua_pushstring(l, "No matched override function SetInts to call");
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
             #if DEBUG
     finally {
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.EndSample();
                     #else
         Profiler.EndSample();
                     #endif
     }
             #endif
 }
 static public int SetInts(IntPtr l)
 {
     try {
         UnityEngine.ComputeShader self = (UnityEngine.ComputeShader)checkSelf(l);
         System.String             a1;
         checkType(l, 2, out a1);
         System.Int32[] a2;
         checkParams(l, 3, out a2);
         self.SetInts(a1, a2);
         return(0);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
Esempio n. 5
0
 static public int SetInts(IntPtr l)
 {
     try {
         UnityEngine.ComputeShader self = (UnityEngine.ComputeShader)checkSelf(l);
         System.String             a1;
         checkType(l, 2, out a1);
         System.Int32[] a2;
         checkParams(l, 3, out a2);
         self.SetInts(a1, a2);
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Esempio n. 6
0
    /// <summary>
    /// Uses the GPU to process an array of 1D coordinates for noise and return an array with the noise at the specified coordinates.
    /// </summary>
    /// <returns>Float array</returns>
    /// <param name="positions"> Array of coordinates to process. </param>
    /// <param name="noiseScale"> Value to scale the noise coordinates by. </param>
    /// <param name="normalize"> Whether or not to remap the noise from (-1, 1) to (0, 1). </param>
    public static float[] NoiseArrayGPU(float[] positions, float noiseScale = 0.01f, bool normalize = true)
    {
        UnityEngine.ComputeShader shader = UnityEngine.Resources.Load(shaderPath) as UnityEngine.ComputeShader;
        if (shader == null)
        {
            UnityEngine.Debug.LogError(noShaderMsg);
            return(null);
        }

        int kernel = shader.FindKernel("ComputeNoiseArray");

        SetShaderVars(shader, UnityEngine.Vector2.zero, normalize, noiseScale);
        shader.SetInts("dimension", 1);

        UnityEngine.ComputeBuffer permBuffer = new UnityEngine.ComputeBuffer(perm.Length, 4);
        permBuffer.SetData(perm);
        shader.SetBuffer(kernel, "perm", permBuffer);

        UnityEngine.ComputeBuffer posBuffer = new UnityEngine.ComputeBuffer(positions.Length, 4);
        posBuffer.SetData(positions);
        shader.SetBuffer(kernel, "float1Array", posBuffer);

        UnityEngine.ComputeBuffer outputBuffer = new UnityEngine.ComputeBuffer(positions.Length, 4);
        shader.SetBuffer(kernel, "outputArray", outputBuffer);

        shader.Dispatch(kernel, positions.Length / 14, 1, 1);

        float[] outputData = new float[positions.Length];
        outputBuffer.GetData(outputData);

        permBuffer.Release();
        posBuffer.Release();
        outputBuffer.Release();

        return(outputData);
    }