public static bool Prefix(WBOIT __instance) { Material compositeMaterial = Traverse.Create(__instance).Field("compositeMaterial").GetValue() as Material; Camera camera = Traverse.Create(__instance).Field("camera").GetValue() as Camera; int texAPropertyID = (int)Traverse.Create(__instance).Field("texAPropertyID").GetValue(); int texBPropertyID = (int)Traverse.Create(__instance).Field("texBPropertyID").GetValue(); wboitTexture0 = new RenderTexture(camera.pixelWidth, camera.pixelHeight, 24, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear); wboitTexture0.name = "WBOIT Tex0"; Traverse.Create(__instance).Field("wboitTexture0").SetValue(wboitTexture0); wboitTexture1 = new RenderTexture(camera.pixelWidth, camera.pixelHeight, 24, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear); wboitTexture1.name = "WBOIT TexA"; Traverse.Create(__instance).Field("wboitTexture1").SetValue(wboitTexture1); wboitTexture2 = new RenderTexture(camera.pixelWidth, camera.pixelHeight, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear); wboitTexture2.name = "WBOIT TexB"; Traverse.Create(__instance).Field("wboitTexture2").SetValue(wboitTexture2); compositeMaterial.SetTexture(texAPropertyID, wboitTexture1); compositeMaterial.SetTexture(texBPropertyID, wboitTexture2); colorBuffers = new RenderBuffer[] { wboitTexture0.colorBuffer, wboitTexture1.colorBuffer, wboitTexture2.colorBuffer }; Traverse.Create(__instance).Field("colorBuffers").SetValue(colorBuffers); return(false); }
public static bool Prefix(WBOIT __instance) { __instance.wboitTexture1 = new RenderTexture(__instance.camera.pixelWidth, __instance.camera.pixelHeight, 24, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear); __instance.wboitTexture1.name = "WBOIT TexA"; __instance.wboitTexture2 = new RenderTexture(__instance.camera.pixelWidth, __instance.camera.pixelHeight, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear); __instance.wboitTexture2.name = "WBOIT TexB"; __instance.compositeMaterial.SetTexture(__instance.texAPropertyID, __instance.wboitTexture1); __instance.compositeMaterial.SetTexture(__instance.texBPropertyID, __instance.wboitTexture2); __instance.colorBuffers = new RenderBuffer[] { __instance.wboitTexture1.colorBuffer, __instance.wboitTexture1.colorBuffer, __instance.wboitTexture2.colorBuffer }; return(false); }