我有一个Texture2D的数组,它由webcamtexture
几秒钟填充。这部分工作,所有50左右的框架显示在检查员罚款。setPixels32()统一创建空白纹理
现在我们通过调用.GetPixels32()
来修改这些图像以获得每帧的Color32[]
。作为一个例子,我们可以尝试将每个通道设置为当前帧与帧之间的每个像素的Math.Max
(实质上是“淡化”混合),并用新修改的纹理替换阵列中的纹理。 (这个代码从第二帧开始,问题是不能从数组出界)
Color32[] previousColors = previousFrame.GetPixels32();
Color32[] currentColors = currentFrame.GetPixels32();
Color32[] outColors = new Color32[colors.Length];
int i = 0;
while (i < currentColors .Length)
{
outColors[i].b = Math.Max(previousColors[i].b, currentColors[i].b);
outColors[i].r = Math.Max(previousColors[i].r, currentColors[i].r);
outColors[i].g = Math.Max(previousColors[i].g, currentColors[i].g);
}
bufferedPics[frameIndex].SetPixels32(outColors);
bufferedPics[frameIndex].Apply();
这里的问题出现时:在检查器中,阵列中的帧中的所有现在显示为空白。但点击它们右侧的圆圈,它会显示经过适当修改的减轻框架。试图在其他地方使用这些框架,它们显示出空白和透明。
你能告诉你如何编辑像素吗?也许是一个示例操作(例如将子区域设置为蓝色)。请注意,由于您构建了一个新阵列,因此所有像素都设置为透明黑色。 –
请给出您的问题措辞和格式化一些更多的努力,让其他用户更容易理解您的问题并提供答案。 – Xaser
@Xaser抱歉格式化,这是我在这里提出的第一篇文章。感谢您的修复。 – v8ntage