Exemplo n.º 1
0
    /// <summary>
    /// Renders into a array of render textures using multi-target blit.
    /// Up to 4 render targets are supported in Unity but some GPU's can
    /// support up to 8 so this may change in the future. You MUST set up 
    /// the materials shader correctly for multitarget blit for this to work.
    /// </summary>
    /// <param name="des">The destination render textures.</param>
    /// <param name="mat">The amterial to use</param>
    /// <param name="pass">Which pass of the materials shader to use.</param>
    public static void MultiTargetBlit(RenderTexture[] des, Material mat, int pass = 0)
    {
        RenderBuffer[] rb = new RenderBuffer[des.Length];

        // Set targets needs the color buffers so make a array from
        // each textures buffer.
        for(int i = 0; i < des.Length; i++)
            rb[i] = des[i].colorBuffer;

        //Set the targets to render into.
        //Will use the depth buffer of the
        //first render texture provided.
        Graphics.SetRenderTarget(rb, des[0].depthBuffer);

        GL.Clear(true, true, Color.clear);

        GL.PushMatrix();
        GL.LoadOrtho();

        mat.SetPass(pass);

        GL.Begin(GL.QUADS);
        GL.TexCoord2(0.0f, 0.0f); GL.Vertex3(0.0f, 0.0f, 0.1f);
        GL.TexCoord2(1.0f, 0.0f); GL.Vertex3(1.0f, 0.0f, 0.1f);
        GL.TexCoord2(1.0f, 1.0f); GL.Vertex3(1.0f, 1.0f, 0.1f);
        GL.TexCoord2(0.0f, 1.0f); GL.Vertex3(0.0f, 1.0f, 0.1f);
        GL.End();

        GL.PopMatrix();
    }
Exemplo n.º 2
0
        public FourierGPU(int size, Shader sdr)
        {
            if (!Mathf.IsPowerOfTwo(size))
                throw new ArgumentException("Fourier grid size must be pow2 number");

            m_fourier = new Material(sdr);

            m_size = size; //must be pow2 num
            m_fsize = (float)m_size;
            m_passes = (int)(Mathf.Log(m_fsize) / Mathf.Log(2.0f));

            m_butterflyLookupTable = new Texture2D[m_passes];

            ComputeButterflyLookupTable();

            m_fourier.SetFloat("Ceto_FourierSize", m_fsize);

            m_pass0RT2 = new RenderBuffer[2];
            m_pass1RT2 = new RenderBuffer[2];

            m_pass0RT3 = new RenderBuffer[3];
            m_pass1RT3 = new RenderBuffer[3];

            m_pass0RT4 = new RenderBuffer[4];
            m_pass1RT4 = new RenderBuffer[4];
        }
		public RenderTargetSetup(RenderBuffer color, RenderBuffer depth, int mipLevel)
		{
			this = new RenderTargetSetup(new RenderBuffer[]
			{
				color
			}, depth, mipLevel);
		}
Exemplo n.º 4
0
//	static public void MultiTargetBlit(RenderTexture[] des, Material mat, int pass = 0)
	static public void MultiTargetBlit(RenderTexture[] des, Material mat, int pass)
    {
       	//RenderTexture oldRT = RenderTexture.active;
		
		RenderBuffer[] rb = new RenderBuffer[des.Length];
		
		for(int i = 0; i < des.Length; i++)
			rb[i] = des[i].colorBuffer;

        Graphics.SetRenderTarget(rb, des[0].depthBuffer);

        GL.Clear(true, true, Color.clear);

        GL.PushMatrix();
        GL.LoadOrtho();
		
		mat.SetPass(pass);

        GL.Begin(GL.QUADS);
        GL.TexCoord2(0.0f, 0.0f); GL.Vertex3(0.0f, 0.0f, 0.1f);
        GL.TexCoord2(1.0f, 0.0f); GL.Vertex3(1.0f, 0.0f, 0.1f);
        GL.TexCoord2(1.0f, 1.0f); GL.Vertex3(1.0f, 1.0f, 0.1f);
        GL.TexCoord2(0.0f, 1.0f); GL.Vertex3(0.0f, 1.0f, 0.1f);
        GL.End();

        GL.PopMatrix();

        //RenderTexture.active = oldRT;
    }
		public RenderTargetSetup(RenderBuffer color, RenderBuffer depth, int mipLevel, CubemapFace face)
		{
			this = new RenderTargetSetup(new RenderBuffer[]
			{
				color
			}, depth, mipLevel, face);
		}
Exemplo n.º 6
0
    public static void DrawProteinsAtoms(Material renderProteinsMaterial, Camera camera, RenderBuffer instanceId, RenderBuffer atomId, RenderBuffer depthBuffer, int pass)
    {
        // Protein params
        renderProteinsMaterial.SetInt("_EnableLod", Convert.ToInt32(GlobalProperties.Get.EnableLod));
        renderProteinsMaterial.SetFloat("_Scale", GlobalProperties.Get.Scale);
        renderProteinsMaterial.SetFloat("_FirstLevelBeingRange", GlobalProperties.Get.FirstLevelOffset);
        renderProteinsMaterial.SetVector("_CameraForward", camera.transform.forward);

        renderProteinsMaterial.SetBuffer("_LodLevelsInfos", GPUBuffers.Get.LodInfo);
        renderProteinsMaterial.SetBuffer("_ProteinInstanceInfo", GPUBuffers.Get.ProteinInstancesInfo);
        renderProteinsMaterial.SetBuffer("_ProteinInstancePositions", GPUBuffers.Get.ProteinInstancePositions);
        renderProteinsMaterial.SetBuffer("_ProteinInstanceRotations", GPUBuffers.Get.ProteinInstanceRotations);

        renderProteinsMaterial.SetBuffer("_ProteinColors", GPUBuffers.Get.IngredientsColors);
        renderProteinsMaterial.SetBuffer("_ProteinAtomInfo", GPUBuffers.Get.ProteinAtomInfo);
        renderProteinsMaterial.SetBuffer("_ProteinAtomPositions", GPUBuffers.Get.ProteinAtoms);
        renderProteinsMaterial.SetBuffer("_ProteinClusterPositions", GPUBuffers.Get.ProteinAtomClusters);
        renderProteinsMaterial.SetBuffer("_ProteinSphereBatchInfos", GPUBuffers.Get.SphereBatches);

        /****/
        renderProteinsMaterial.SetInt("_NumCutObjects", SceneManager.Get.NumCutObjects);
        renderProteinsMaterial.SetInt("_NumIngredientTypes", SceneManager.Get.NumAllIngredients);
        

        renderProteinsMaterial.SetBuffer("_CutInfos", GPUBuffers.Get.CutInfo);
        renderProteinsMaterial.SetBuffer("_CutScales", GPUBuffers.Get.CutScales);
        renderProteinsMaterial.SetBuffer("_CutPositions", GPUBuffers.Get.CutPositions);
        renderProteinsMaterial.SetBuffer("_CutRotations", GPUBuffers.Get.CutRotations);
        /****/

        Graphics.SetRenderTarget(new[] { instanceId, atomId }, depthBuffer);
        renderProteinsMaterial.SetPass(1);
        Graphics.DrawProceduralIndirect(MeshTopology.Points, GPUBuffers.Get.ArgBuffer);
    }
Exemplo n.º 7
0
 private void Init()
 {
     this.shadowCamGameObject = new GameObject();
     this.shadowCamGameObject.AddComponent(typeof(Camera));
     this.shadowCam = this.shadowCamGameObject.GetComponent<Camera>();
     this.shadowCamGameObject.name = "SKYLIGHT_GI_SHADOWCAM";
     this.shadowCamGameObject.hideFlags = HideFlags.HideAndDontSave;
     this.shadowCam.enabled = false;
     this.shadowCam.orthographic = true;
     this.shadowCam.orthographicSize = 100f;
     this.shadowCam.clearFlags = CameraClearFlags.Color;
     this.shadowCam.backgroundColor = new Color(0f, 0f, 0f, 1f);
     this.shadowCam.farClipPlane = 500f;
     this.shadowCam.cullingMask = this.skylightCullingMask;
     this.shadowCam.useOcclusionCulling = false;
     this.skylightDepthTexture = new RenderTexture(this.skylightShadowMapResolution, this.skylightShadowMapResolution, 16, RenderTextureFormat.Depth);
     this.skylightDepthTexture.wrapMode = TextureWrapMode.Clamp;
     this.skylightDepthTexture.filterMode = FilterMode.Bilinear;
     this.skylightDepthTexture.Create();
     this.giDepthTexture = new RenderTexture(this.giBuffersResolution, this.giBuffersResolution, 16, RenderTextureFormat.Depth);
     this.giDepthTexture.wrapMode = TextureWrapMode.Clamp;
     this.giDepthTexture.filterMode = FilterMode.Point;
     this.giDepthTexture.Create();
     this.giDepthBuffer = this.giDepthTexture.depthBuffer;
     this.giFluxTexture = new RenderTexture(this.giBuffersResolution, this.giBuffersResolution, 0, RenderTextureFormat.ARGB32);
     this.giFluxTexture.wrapMode = TextureWrapMode.Clamp;
     this.giFluxTexture.filterMode = FilterMode.Bilinear;
     this.giFluxTexture.useMipMap = true;
     this.giFluxTexture.Create();
     this.giFluxBuffer = this.giFluxTexture.colorBuffer;
     this.initialized = true;
 }
Exemplo n.º 8
0
 static int _CreateRenderBuffer(IntPtr L)
 {
     LuaScriptMgr.CheckArgsCount(L, 0);
     RenderBuffer obj = new RenderBuffer();
     LuaScriptMgr.PushValue(L, obj);
     return 1;
 }
Exemplo n.º 9
0
    public static void DrawProteinSphereBatches(Material renderProteinsMaterial, Camera camera, RenderBuffer colorBuffer, RenderBuffer depthBuffer, int pass, bool animated = false)
    {
        // Protein params
        renderProteinsMaterial.SetInt("_EnableLod", Convert.ToInt32(PersistantSettings.Instance.EnableLod));
        renderProteinsMaterial.SetFloat("_Scale", PersistantSettings.Instance.Scale);
        renderProteinsMaterial.SetFloat("_FirstLevelBeingRange", PersistantSettings.Instance.FirstLevelOffset);
        renderProteinsMaterial.SetVector("_CameraForward", camera.transform.forward);

        renderProteinsMaterial.SetBuffer("_LodLevelsInfos", GPUBuffers.Instance.LodInfo);
        renderProteinsMaterial.SetBuffer("_ProteinInstanceInfo", GPUBuffers.Instance.ProteinInstanceInfo);

        if(animated) renderProteinsMaterial.SetBuffer("_ProteinInstancePositions", GPUBuffers.Instance.ProteinAnimationPositions);
        else renderProteinsMaterial.SetBuffer("_ProteinInstancePositions", GPUBuffers.Instance.ProteinInstancePositions);

        if (animated) renderProteinsMaterial.SetBuffer("_ProteinInstanceRotations", GPUBuffers.Instance.ProteinAnimationRotations);
        else renderProteinsMaterial.SetBuffer("_ProteinInstanceRotations", GPUBuffers.Instance.ProteinInstanceRotations);

        renderProteinsMaterial.SetBuffer("_ProteinAtomCount", GPUBuffers.Instance.ProteinAtomCount);
        renderProteinsMaterial.SetBuffer("_ProteinColors", GPUBuffers.Instance.ProteinColors);
        renderProteinsMaterial.SetBuffer("_ProteinAtomPositions", GPUBuffers.Instance.ProteinAtoms);
        renderProteinsMaterial.SetBuffer("_ProteinClusterPositions", GPUBuffers.Instance.ProteinAtomClusters);
        renderProteinsMaterial.SetBuffer("_ProteinSphereBatchInfos", GPUBuffers.Instance.SphereBatches);

        Graphics.SetRenderTarget(colorBuffer, depthBuffer);
        renderProteinsMaterial.SetPass(pass);
        Graphics.DrawProceduralIndirect(MeshTopology.Points, GPUBuffers.Instance.ArgBuffer);
    }
// fields
    static void RenderTargetSetup_color(JSVCall vc)
    {
        if (vc.bGet)
        {
            UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
            var result = _this.color;
            var arrRet = result;
            for (int i = 0; arrRet != null && i < arrRet.Length; i++)
            {
                JSMgr.datax.setObject((int)JSApi.SetType.SaveAndTempTrace, arrRet[i]);
                JSApi.moveSaveID2Arr(i);
            }
            JSApi.setArrayS((int)JSApi.SetType.Rval, (arrRet != null ? arrRet.Length : 0), true);
        }
        else
        {
            UnityEngine.RenderBuffer[] arg0 = JSDataExchangeMgr.GetJSArg <UnityEngine.RenderBuffer[]>(() =>
            {
                int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
                int length  = JSApi.getArrayLength(jsObjID);
                var ret     = new UnityEngine.RenderBuffer[length];
                for (var i = 0; i < length; i++)
                {
                    JSApi.getElement(jsObjID, i);
                    ret[i] = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.SaveAndRemove);
                }
                return(ret);
            });
            UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
            _this.color = arg0;
            JSMgr.changeJSObj(vc.jsObjID, _this);
        }
    }
    static bool RenderTargetSetup_RenderTargetSetup8(JSVCall vc, int argc)
    {
        int _this = JSApi.getObject((int)JSApi.GetType.Arg);

        JSApi.attachFinalizerObject(_this);
        --argc;

        int len = argc;

        if (len == 4)
        {
            UnityEngine.RenderBuffer[] arg0 = JSDataExchangeMgr.GetJSArg <UnityEngine.RenderBuffer[]>(() =>
            {
                int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
                int length  = JSApi.getArrayLength(jsObjID);
                var ret     = new UnityEngine.RenderBuffer[length];
                for (var i = 0; i < length; i++)
                {
                    JSApi.getElement(jsObjID, i);
                    ret[i] = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.SaveAndRemove);
                }
                return(ret);
            });
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            System.Int32             arg2 = (System.Int32)JSApi.getInt32((int)JSApi.GetType.Arg);
            UnityEngine.CubemapFace  arg3 = (UnityEngine.CubemapFace)JSApi.getEnum((int)JSApi.GetType.Arg);
            JSMgr.addJSCSRel(_this, new UnityEngine.RenderTargetSetup(arg0, arg1, arg2, arg3));
        }

        return(true);
    }
Exemplo n.º 12
0
		public RenderTargetSetup(RenderBuffer color, RenderBuffer depth)
		{
			this = new RenderTargetSetup(new RenderBuffer[]
			{
				color
			}, depth);
		}
Exemplo n.º 13
0
		internal static RenderBufferLoadAction[] LoadActions(RenderBuffer[] buf)
		{
			RenderBufferLoadAction[] array = new RenderBufferLoadAction[buf.Length];
			for (int i = 0; i < buf.Length; i++)
			{
				array[i] = buf[i].loadAction;
				buf[i].loadAction = RenderBufferLoadAction.Load;
			}
			return array;
		}
Exemplo n.º 14
0
		internal static RenderBufferStoreAction[] StoreActions(RenderBuffer[] buf)
		{
			RenderBufferStoreAction[] array = new RenderBufferStoreAction[buf.Length];
			for (int i = 0; i < buf.Length; i++)
			{
				array[i] = buf[i].storeAction;
				buf[i].storeAction = RenderBufferStoreAction.Store;
			}
			return array;
		}
Exemplo n.º 15
0
		internal RenderTargetSetup(RenderBuffer[] color, RenderBuffer depth, int mip, int face, RenderBufferLoadAction[] colorLoad, RenderBufferStoreAction[] colorStore, RenderBufferLoadAction depthLoad, RenderBufferStoreAction depthStore)
		{
			this.color = color;
			this.depth = depth;
			this.mipLevel = mip;
			this.cubemapFace = face;
			this.colorLoad = colorLoad;
			this.colorStore = colorStore;
			this.depthLoad = depthLoad;
			this.depthStore = depthStore;
		}
	static public int constructor(IntPtr l) {
		try {
			UnityEngine.RenderBuffer o;
			o=new UnityEngine.RenderBuffer();
			pushValue(l,true);
			pushValue(l,o);
			return 2;
		}
		catch(Exception e) {
			return error(l,e);
		}
	}
Exemplo n.º 17
0
// fields

// properties

// methods

    static bool RenderBuffer_GetNativeRenderBufferPtr(JSVCall vc, int argc)
    {
        int len = argc;

        if (len == 0)
        {
            UnityEngine.RenderBuffer argThis = (UnityEngine.RenderBuffer)vc.csObj;                JSApi.setIntPtr((int)JSApi.SetType.Rval, (System.IntPtr)(argThis.GetNativeRenderBufferPtr()));
            JSMgr.changeJSObj(vc.jsObjID, argThis);
        }

        return(true);
    }
Exemplo n.º 18
0
 static public int constructor(IntPtr l)
 {
     try {
         UnityEngine.RenderBuffer o;
         o = new UnityEngine.RenderBuffer();
         pushValue(l, o);
         return(1);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
Exemplo n.º 19
0
    static bool Graphics_SetRenderTarget__RenderBuffer__RenderBuffer(JSVCall vc, int argc)
    {
        int len = argc;

        if (len == 2)
        {
            UnityEngine.RenderBuffer arg0 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            UnityEngine.Graphics.SetRenderTarget(arg0, arg1);
        }

        return(true);
    }
Exemplo n.º 20
0
    static bool Camera_SetTargetBuffers__RenderBuffer__RenderBuffer(JSVCall vc, int argc)
    {
        int len = argc;

        if (len == 2)
        {
            UnityEngine.RenderBuffer arg0 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            ((UnityEngine.Camera)vc.csObj).SetTargetBuffers(arg0, arg1);
        }

        return(true);
    }
Exemplo n.º 21
0
 public static int constructor(IntPtr l)
 {
     try {
         UnityEngine.RenderBuffer o;
         o=new UnityEngine.RenderBuffer();
         pushValue(l,o);
         return 1;
     }
     catch(Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return 0;
     }
 }
 static public int constructor(IntPtr l)
 {
     try {
         UnityEngine.RenderBuffer o;
         o = new UnityEngine.RenderBuffer();
         pushValue(l, true);
         pushValue(l, o);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Exemplo n.º 23
0
    static int QPYX_get_depthBuffer_YXQP(IntPtr L_YXQP)
    {
        object QPYX_o_YXQP = null;

        try
        {
            QPYX_o_YXQP = ToLua.ToObject(L_YXQP, 1);                        UnityEngine.RenderTexture QPYX_obj_YXQP = (UnityEngine.RenderTexture)QPYX_o_YXQP;
            UnityEngine.RenderBuffer QPYX_ret_YXQP = QPYX_obj_YXQP.depthBuffer;
            ToLua.PushValue(L_YXQP, QPYX_ret_YXQP);
            return(1);
        }
        catch (Exception QPYX_e_YXQP)            {
            return(LuaDLL.toluaL_exception(L_YXQP, QPYX_e_YXQP, QPYX_o_YXQP, "attempt to index depthBuffer on a nil value"));
        }
    }
 static void RenderTargetSetup_depth(JSVCall vc)
 {
     if (vc.bGet)
     {
         UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
         var result = _this.depth;
         JSMgr.datax.setObject((int)JSApi.SetType.Rval, result);
     }
     else
     {
         UnityEngine.RenderBuffer      arg0  = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
         UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
         _this.depth = arg0;
         JSMgr.changeJSObj(vc.jsObjID, _this);
     }
 }
Exemplo n.º 25
0
    static int get_depthBuffer(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            UnityEngine.RenderTexture obj = (UnityEngine.RenderTexture)o;
            UnityEngine.RenderBuffer  ret = obj.depthBuffer;
            ToLua.PushValue(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index depthBuffer on a nil value" : e.Message));
        }
    }
    static bool RenderTargetSetup_RenderTargetSetup3(JSVCall vc, int argc)
    {
        int _this = JSApi.getObject((int)JSApi.GetType.Arg);

        JSApi.attachFinalizerObject(_this);
        --argc;

        int len = argc;

        if (len == 2)
        {
            UnityEngine.RenderBuffer arg0 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            JSMgr.addJSCSRel(_this, new UnityEngine.RenderTargetSetup(arg0, arg1));
        }

        return(true);
    }
    static bool RenderTargetSetup_RenderTargetSetup5(JSVCall vc, int argc)
    {
        int _this = JSApi.getObject((int)JSApi.GetType.Arg);

        JSApi.attachFinalizerObject(_this);
        --argc;

        int len = argc;

        if (len == 4)
        {
            UnityEngine.RenderBuffer arg0 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            System.Int32             arg2 = (System.Int32)JSApi.getInt32((int)JSApi.GetType.Arg);
            UnityEngine.CubemapFace  arg3 = (UnityEngine.CubemapFace)JSApi.getEnum((int)JSApi.GetType.Arg);
            JSMgr.addJSCSRel(_this, new UnityEngine.RenderTargetSetup(arg0, arg1, arg2, arg3));
        }

        return(true);
    }
	static int get_depthBuffer(IntPtr L)
	{
#if UNITY_EDITOR
        ToluaProfiler.AddCallRecord("UnityEngine.RenderTexture.depthBuffer");
#endif
		object o = null;

		try
		{
			o = ToLua.ToObject(L, 1);
			UnityEngine.RenderTexture obj = (UnityEngine.RenderTexture)o;
			UnityEngine.RenderBuffer ret = obj.depthBuffer;
			ToLua.PushValue(L, ret);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e, o, "attempt to index depthBuffer on a nil value");
		}
	}
Exemplo n.º 29
0
    public static void DrawProteins(Material renderProteinsMaterial, Camera camera, RenderBuffer colorBuffer, RenderBuffer depthBuffer)
    {
        // Protein params
        renderProteinsMaterial.SetInt("_EnableLod", Convert.ToInt32(GlobalProperties.Get.EnableLod));
        renderProteinsMaterial.SetFloat("_Scale", GlobalProperties.Get.Scale);
        renderProteinsMaterial.SetFloat("_FirstLevelBeingRange", GlobalProperties.Get.FirstLevelOffset);
        renderProteinsMaterial.SetVector("_CameraForward", camera.transform.forward);

        renderProteinsMaterial.SetBuffer("_LodLevelsInfos", GPUBuffers.Get.LodInfo);
        renderProteinsMaterial.SetBuffer("_ProteinInstanceInfo", GPUBuffers.Get.ProteinInstancesInfo);
        renderProteinsMaterial.SetBuffer("_ProteinInstancePositions", GPUBuffers.Get.ProteinInstancePositions);
        renderProteinsMaterial.SetBuffer("_ProteinInstanceRotations", GPUBuffers.Get.ProteinInstanceRotations);

        renderProteinsMaterial.SetBuffer("_ProteinColors", GPUBuffers.Get.IngredientsColors);
        renderProteinsMaterial.SetBuffer("_ProteinAtomPositions", GPUBuffers.Get.ProteinAtoms);
        renderProteinsMaterial.SetBuffer("_ProteinClusterPositions", GPUBuffers.Get.ProteinAtomClusters);
        renderProteinsMaterial.SetBuffer("_ProteinSphereBatchInfos", GPUBuffers.Get.SphereBatches);

        Graphics.SetRenderTarget(colorBuffer, depthBuffer);
        renderProteinsMaterial.SetPass(0);
        Graphics.DrawProceduralIndirect(MeshTopology.Points, GPUBuffers.Get.ArgBuffer);
    }
Exemplo n.º 30
0
	static public void MultiTargetBlit(RenderBuffer[] des_rb, RenderBuffer des_db, Material mat, int pass = 0)
    {
       	//RenderTexture oldRT = RenderTexture.active;
		
        Graphics.SetRenderTarget(des_rb, des_db);

        GL.Clear(true, true, Color.clear);

        GL.PushMatrix();
        GL.LoadOrtho();
		
		mat.SetPass(pass);

        GL.Begin(GL.QUADS);
        GL.TexCoord2(0.0f, 0.0f); GL.Vertex3(0.0f, 0.0f, 0.1f);
        GL.TexCoord2(1.0f, 0.0f); GL.Vertex3(1.0f, 0.0f, 0.1f);
        GL.TexCoord2(1.0f, 1.0f); GL.Vertex3(1.0f, 1.0f, 0.1f);
        GL.TexCoord2(0.0f, 1.0f); GL.Vertex3(0.0f, 1.0f, 0.1f);
        GL.End();

        GL.PopMatrix();

        //RenderTexture.active = oldRT;
    }
Exemplo n.º 31
0
    static bool Camera_SetTargetBuffers__RenderBuffer_Array__RenderBuffer(JSVCall vc, int argc)
    {
        int len = argc;

        if (len == 2)
        {
            UnityEngine.RenderBuffer[] arg0 = JSDataExchangeMgr.GetJSArg <UnityEngine.RenderBuffer[]>(() =>
            {
                int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
                int length  = JSApi.getArrayLength(jsObjID);
                var ret     = new UnityEngine.RenderBuffer[length];
                for (var i = 0; i < length; i++)
                {
                    JSApi.getElement(jsObjID, i);
                    ret[i] = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.SaveAndRemove);
                }
                return(ret);
            });
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            ((UnityEngine.Camera)vc.csObj).SetTargetBuffers(arg0, arg1);
        }

        return(true);
    }
Exemplo n.º 32
0
 private extern void GetColorBuffer(out RenderBuffer res);
Exemplo n.º 33
0
 extern private static void Internal_SetMRTFullSetup(
     [NotNull] RenderBuffer[] color, RenderBuffer depth, int mip, CubemapFace face, int depthSlice,
     [NotNull] RenderBufferLoadAction[] colorLA, [NotNull] RenderBufferStoreAction[] colorSA,
     RenderBufferLoadAction depthLA, RenderBufferStoreAction depthSA
     );
Exemplo n.º 34
0
 /// <summary>
 ///   <para>Sets current render target.</para>
 /// </summary>
 /// <param name="setup"></param>
 /// <param name="rt"></param>
 /// <param name="mipLevel"></param>
 /// <param name="face"></param>
 /// <param name="colorBuffer"></param>
 /// <param name="depthBuffer"></param>
 /// <param name="colorBuffers"></param>
 public static void SetRenderTarget(RenderBuffer[] colorBuffers, RenderBuffer depthBuffer)
 {
   Graphics.SetRenderTargetImpl(colorBuffers, depthBuffer, 0, CubemapFace.Unknown);
 }
Exemplo n.º 35
0
 internal static void SetRenderTargetImpl(RenderBuffer[] colorBuffers, RenderBuffer depthBuffer, int mipLevel, CubemapFace face)
 {
   RenderBuffer depth = depthBuffer;
   Graphics.Internal_SetMRTSimple(colorBuffers, out depth, mipLevel, face);
 }
Exemplo n.º 36
0
 private static extern void GetActiveColorBuffer(out RenderBuffer res);
Exemplo n.º 37
0
 private static extern void Internal_SetMRTFullSetup(RenderBuffer[] colorSA, out RenderBuffer depth, int mip, CubemapFace face, RenderBufferLoadAction[] colorLoadSA, RenderBufferStoreAction[] colorStoreSA, RenderBufferLoadAction depthLoad, RenderBufferStoreAction depthStore);
Exemplo n.º 38
0
 public static void SetRenderTarget(RenderBuffer colorBuffer, RenderBuffer depthBuffer, int mipLevel)
 {
     SetRenderTargetImpl(colorBuffer, depthBuffer, mipLevel, -1);
 }
Exemplo n.º 39
0
 public RenderTargetSetup(RenderBuffer color, RenderBuffer depth, int mipLevel, CubemapFace face, int depthSlice) : this(bufferArray1, depth, mipLevel, face)
 {
     RenderBuffer[] bufferArray1 = new RenderBuffer[] { color };
     this.depthSlice = depthSlice;
 }
Exemplo n.º 40
0
 public RenderTargetSetup(RenderBuffer[] color, RenderBuffer depth) : this(color, depth, 0, CubemapFace.Unknown)
 {
 }
Exemplo n.º 41
0
 public RenderTargetSetup(RenderBuffer[] color, RenderBuffer depth, int mipLevel) : this(color, depth, mipLevel, CubemapFace.Unknown)
 {
 }
Exemplo n.º 42
0
 public RenderTargetSetup(RenderBuffer[] color, RenderBuffer depth, int mip, CubemapFace face) : this(color, depth, mip, face, LoadActions(color), StoreActions(color), depth.loadAction, depth.storeAction)
 {
 }
Exemplo n.º 43
0
 private static extern void GetRenderingBuffersImpl(IntPtr nativeDisplay, out RenderBuffer color, out RenderBuffer depth);
Exemplo n.º 44
0
 private static void GetRenderingBuffersImpl(IntPtr nativeDisplay, out RenderBuffer color, out RenderBuffer depth)
 {
     throw new NotImplementedException("なにこれ");
 }
Exemplo n.º 45
0
 extern private static void Internal_SetRTSimple(RenderBuffer color, RenderBuffer depth, int mip, CubemapFace face, int depthSlice);
Exemplo n.º 46
0
 private static extern void Internal_SetRTSimple(out RenderBuffer color, out RenderBuffer depth, int mip, int face);
Exemplo n.º 47
0
 public static void SetRenderTarget(RenderBuffer[] colorBuffers, RenderBuffer depthBuffer)
 {
     SetRenderTargetImpl(colorBuffers, depthBuffer, 0, -1);
 }
Exemplo n.º 48
0
 public RenderTargetSetup(RenderBuffer color, RenderBuffer depth, int mipLevel) : this(bufferArray1, depth, mipLevel)
 {
     RenderBuffer[] bufferArray1 = new RenderBuffer[] { color };
 }
Exemplo n.º 49
0
 internal static void SetRenderTargetImpl(RenderBuffer colorBuffer, RenderBuffer depthBuffer, int mipLevel, int face)
 {
     RenderBuffer color = colorBuffer;
     RenderBuffer depth = depthBuffer;
     Internal_SetRTSimple(out color, out depth, mipLevel, face);
 }
Exemplo n.º 50
0
 public RenderTargetSetup(RenderBuffer color, RenderBuffer depth) : this(bufferArray1, depth)
 {
     RenderBuffer[] bufferArray1 = new RenderBuffer[] { color };
 }
Exemplo n.º 51
0
 private static extern void Internal_SetMRTSimple(RenderBuffer[] colorSA, out RenderBuffer depth, int mip, CubemapFace face);
Exemplo n.º 52
0
		private extern void GetColorBuffer(out RenderBuffer res);
Exemplo n.º 53
0
 private static extern void GetActiveDepthBuffer(out RenderBuffer res);
Exemplo n.º 54
0
 private extern void GetDepthBuffer(out RenderBuffer res);
Exemplo n.º 55
0
 /// <summary>
 ///   <para>Sets current render target.</para>
 /// </summary>
 /// <param name="setup"></param>
 /// <param name="rt"></param>
 /// <param name="mipLevel"></param>
 /// <param name="face"></param>
 /// <param name="colorBuffer"></param>
 /// <param name="depthBuffer"></param>
 /// <param name="colorBuffers"></param>
 public static void SetRenderTarget(RenderBuffer colorBuffer, RenderBuffer depthBuffer, int mipLevel, CubemapFace face)
 {
   Graphics.SetRenderTargetImpl(colorBuffer, depthBuffer, mipLevel, face);
 }
Exemplo n.º 56
0
 internal static extern int GetStoreAction(out RenderBuffer b);
Exemplo n.º 57
0
 internal static extern void SetStoreAction(out RenderBuffer b, int a);
Exemplo n.º 58
0
 extern private static void Internal_SetMRTSimple([NotNull] RenderBuffer[] color, RenderBuffer depth, int mip, CubemapFace face, int depthSlice);
Exemplo n.º 59
0
		private extern void GetDepthBuffer(out RenderBuffer res);
Exemplo n.º 60
0
 internal void SetLoadAction(RenderBufferLoadAction action)
 {
     RenderBuffer.SetLoadAction_Injected(ref this, action);
 }