Example #1
0
    private void Awake()
    {
        FBOUtility.CreateMaterial(ref _setQuadrangleDataMat, _setQuadrangleDataShader);
        _materialPropertyBlock0 = new MaterialPropertyBlock();
        _materialPropertyBlock1 = new MaterialPropertyBlock();

        _RwMaterialPropertyBlock = new MaterialPropertyBlock[8];
        _LwMaterialPropertyBlock = new MaterialPropertyBlock[7];

        for (int i = 0; i < (18 - 2) / 2; i++)
        {
            _RwMaterialPropertyBlock[i] = new MaterialPropertyBlock();
        }
        for (int i = 0; i < (16 - 2) / 2; i++)
        {
            _LwMaterialPropertyBlock[i] = new MaterialPropertyBlock();
        }

        SetupToCalculation();

        for (int i = 0; i < _pointWallRightList.Count - 2; i += 2)
        //for (int i = 8; i < 10; i += 2)
        {
            BuildMesh(_pointWallRightList, 1, i, RightWallMesh, Mat, _RwMaterialPropertyBlock[i / 2]);
        }

        for (int i = 0; i < _pointWallLeftList.Count - 2; i += 2)
        {
            BuildMesh(_pointWallLeftList, -1, i, LeftWallMesh, Mat, _LwMaterialPropertyBlock[i / 2]);
        }
    }
        void Start()
        {
            FBOUtility.CreateBuffer(ref _gravityDirectionMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);
            FBOUtility.CreateBuffer(ref _worldPositionMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);
            FBOUtility.CreateBuffer(ref _worldPositionYGradientMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);
            FBOUtility.CreateBuffer(ref _uvMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);
            FBOUtility.CreateBuffer(ref _normalMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);
            FBOUtility.CreateBuffer(ref _emitterUVMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Point);
            FBOUtility.CreateBuffer(ref _ceilingMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Point);
            FBOUtility.CreateBuffer(ref _gravityInteractionMap, BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);
            //FBOUtility.CreateBuffer(ref _resultRendererMap,         BufferWidth, BufferHeight, RenderTextureFormat.ARGBFloat, FilterMode.Bilinear);

            FBOUtility.CreateMaterial(ref _setQuadrangleDataMat, _setQuadrangleDataShader);
            FBOUtility.CreateMaterial(ref _setTriangleDataMat, _setTriangleDataShader);
            FBOUtility.CreateMaterial(ref _calcGradientMat, _calcGradientShader);
            FBOUtility.CreateMaterial(ref _resultRendererMapMat, _resultRendererMapShader);

            // GetComponent<Renderer>().sharedMaterial.mainTexture = _gravityDirectionMap;
        }