unity-game-engine - 如何访问渲染的屏幕像素并统一操作它们? (3 张动图)

标签 unity-game-engine shader

我正在制作一个子弹 hell 射击游戏,需要添加不同类型的效果,我希望我可以访问屏幕像素,以便操纵它们,我已经能够通过移动像素和在纹理 2D 中实现独特的效果替换它们,但它们本身的相机像素不可编辑,

类型 1- effect2 effect1 effect3

类型 2- 并能够在屏幕上绘制对象之间的线条 像这样,但在游戏中而不是在编辑器中,并使线条呈锯齿形、波浪形或虚线等...... lines

有什么提示吗?

最佳答案

正如您所说,相机中渲染的像素是只读的,您可以执行以下操作。

0) 使用 Create>RenderTexture 在您的资源中创建 RenderTexture。

1) 从摄像机渲染到 RenderTexture,为此,转到当前正在查看要编辑的内容的摄像机,并选择 RenderTexture 作为目标纹理。

2)您无法在运行时直接编辑RenderedTexture,但您可以读取它并将其复制为新的Texture2D,从这里您可以像平常一样编辑Texture2D。

3)将新创建/更新的Texture2D添加到场景中的游戏对象中,并从相机查看它(通常我在新层上使用主相机来实现此目的)。

这里是相关术语的官方统一手册,

渲染纹理:

https://docs.unity3d.com/Manual/class-RenderTexture.html

相机手册(包括目标纹理):

https://docs.unity3d.com/Manual/class-Camera.html

关于unity-game-engine - 如何访问渲染的屏幕像素并统一操作它们? (3 张动图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410453/

相关文章:

android - 将两个 Unity 项目导入 Android Studio 无法按预期工作

unity-game-engine - Unity3D Sprite ...但是单面的?

c# - Unity3D 使用 OnTriggerStay

c++ - 如何使用几何着色器从点数据绘制正方形

android - 通过 fragment 着色器将 YUV 转换为 RGB

ios - 相当于 OpenGL 混合的 Metal

c# - 修复了 Unity 中的 ScrollRect 多点触控问题?

c# - 具有多重继承的泛型类

opengl - 如何在 OpenGL GLSL 中导入库

c# - 如何将简单的高度贴图实现到 Unity Shader