c# - 更改 RenderTexture 中的像素
问题描述
我是统一的新手,我正在做的大学研究必须使用统一。为此,我需要渲染场景并使用外部工具来修改渲染图像数据。该工具需要读取所有像素并根据原始数据生成单独的图像。到目前为止,遵循https://github.com/Unity-Technologies/NativeRenderingPlugin我能够更改纹理。然而,将渲染纹理传递给 dll 什么也没做。有人可以帮忙吗。
这有效:
tex.filterMode = FilterMode.Point;
tex.Apply();
// Set texture onto our material
GetComponent<Renderer>().material.mainTexture = tex;
SetTextureFromUnity(tex.GetNativeTexturePtr(), tex.width, tex.height);
这不起作用:
Camera camera = Camera.main;
var rt = RenderTexture.GetTemporary(Screen.width, Screen.height);
camera.targetTexture = rt;
camera.Render();
var currentRT = RenderTexture.active;
RenderTexture.active = camera.targetTexture;
camera.Render();
Texture2D image = new Texture2D(camera.targetTexture.width, camera.targetTexture.height);
image.ReadPixels(new Rect(0, 0, camera.targetTexture.width, camera.targetTexture.height), 0, 0);
image.Apply();
RenderTexture.active = currentRT;
camera.targetTexture = null;
SetTextureFromUnity(image.GetNativeTexturePtr(), image.width, image.height);
任何帮助是极大的赞赏。卡在这个上面很久了。
解决方案
推荐阅读
- networking - 通过 IP 访问 IISExpress 以获取 asp.net 核心 API
- java - 如何修复此内存泄漏(IntentService、Runnable、ObjectBox、Repository)?
- python - 数据科学 - 模型推荐
- python - 如何查找输入字符串中常见字符的数量
- c++ - 没有调用函数,而是使用了垃圾值。如何调用函数并解决问题?
- html - 为什么我的 HTML 网页有时会显示原始代码
- r - 我的数据框中具有连续数据类型的属性的等宽离散化和分类
- mysql - 左连接没有给出预期的结果
- .net - React Native:调用在 localhost 上运行的 API
- ios - Swift iOS Stripe - 当过期或 CVV 字段处于活动状态且卡号字段为空时如何关闭键盘