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>(); } } }
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); }