Example #1
0
        public void CretatePixelGroup(
            int t_NumberOfVerticalPixelGroup,
            int t_NumberOfHorizontalPixelGroup,
            int t_NumberOfPixelsPerVerticalPixelGroup,
            int t_NumberOfPixelsPerHorizontalPixelGroup)
        {
            numberOfVerticalPixelGroup   = t_NumberOfVerticalPixelGroup;
            numberOfHorizontalPixelGroup = t_NumberOfHorizontalPixelGroup;
            numberOfPixelGroupInfo       = t_NumberOfVerticalPixelGroup * t_NumberOfHorizontalPixelGroup;
            pixelGroupInfo = new PixelGroupInfo[numberOfPixelGroupInfo];

            int t_AbsoluteIndex;


            for (int i = 0; i < t_NumberOfHorizontalPixelGroup; i++)
            {
                for (int j = 0; j < t_NumberOfVerticalPixelGroup; j++)
                {
                    t_AbsoluteIndex = i + (j * t_NumberOfHorizontalPixelGroup);

                    pixelGroupInfo[t_AbsoluteIndex] = new PixelGroupInfo();
                    pixelGroupInfo[t_AbsoluteIndex].pixelGroupPosition = new Vector2Int(
                        (i * t_NumberOfPixelsPerHorizontalPixelGroup) + (t_NumberOfPixelsPerHorizontalPixelGroup / 2),
                        (j * t_NumberOfPixelsPerVerticalPixelGroup) + (t_NumberOfPixelsPerVerticalPixelGroup / 2));
                    //Debug.Log("PixelGroupPosition : " + pixelGroupInfo[t_AbsoluteIndex].pixelGroupPosition);
                    pixelGroupInfo[t_AbsoluteIndex].pixelInfo = new List <PixelInfo>();
                }
            }
        }
Example #2
0
        private Texture2D DecyleTexture(int t_TextureIndex, Texture2D t_CurrentTexture, Vector2 t_DecylePosition, Color t_ColorOfDecyle)
        {
            DecyleTextureInfo t_CurrentDecyleTextureInfo = decyleTextureContainer.decyleTextureInfo[t_TextureIndex];

            int t_PixelInfoX = (int)(t_CurrentDecyleTextureInfo.numberOfHorizontalPixelGroup * t_DecylePosition.x);
            int t_PixelInfoY = (int)(t_CurrentDecyleTextureInfo.numberOfVerticalPixelGroup * t_DecylePosition.y);
            int t_PixelInfo  = t_PixelInfoX + (t_PixelInfoY * t_CurrentDecyleTextureInfo.numberOfHorizontalPixelGroup);

            PixelGroupInfo t_SelectedPixelGroupInfo = t_CurrentDecyleTextureInfo.pixelGroupInfo[t_PixelInfo];

            int t_NumberOfPixelToBeModified = t_SelectedPixelGroupInfo.numberOfPixelsInThisGroup;

            Color t_ColorStartPointOfDecyle = new Color(
                t_ColorOfDecyle.r + ((1f - t_ColorOfDecyle.r) * colorSaturation),
                t_ColorOfDecyle.g + ((1f - t_ColorOfDecyle.g) * colorSaturation),
                t_ColorOfDecyle.b + ((1f - t_ColorOfDecyle.b) * colorSaturation),
                t_ColorOfDecyle.a
                );

            for (int i = 0; i < t_NumberOfPixelToBeModified; i++)
            {
                t_CurrentTexture.SetPixel(
                    t_SelectedPixelGroupInfo.pixelInfo[i].pixelPosition.x,
                    t_SelectedPixelGroupInfo.pixelInfo[i].pixelPosition.y,
                    Color.Lerp(t_ColorOfDecyle, t_ColorStartPointOfDecyle, t_SelectedPixelGroupInfo.pixelInfo[i].colorSaturation));
            }

            t_CurrentTexture.Apply();

            return(t_CurrentTexture);
        }