使用渲染纹理(RenderTexture)来实现3D视觉

如上图的效果,使用2D场景,通过摄像头的改动,使其看起来像是3D效果一样。 

  1. Nintendo Switch上刚推出的《超级马里奥》中,有一些关卡混合了2D和3D的画面,

一般来说,摄像机会直接渲染到电脑屏幕;如何能让摄像机看到内容并显示在另一个对象上?摄像机有一个属性:Target Texture(目标纹理)。

使用渲染纹理(RenderTexture)来实现3D视觉_第1张图片

 

可以新建一个渲染纹理(Render Texture),添加到摄像机上。

Create -> Render Texture来新建渲染纹理

使用渲染纹理(RenderTexture)来实现3D视觉_第2张图片

 

然后将这个对象拖到Camera的Target Texture属性中,这样摄像机就会将它排到的图像都渲染到这个纹理上。

此时如果进入游戏,会发现游戏画面一片漆黑,没有没有激活的接收相机的图像的渲染器。

使用渲染纹理(RenderTexture)来实现3D视觉_第3张图片

 

现在,我们加入一个新摄像机到场景中。摄像机的Projection属性设置为Perspective。在摄像机前添加一个3D对象,例如,一个圆柱体。

然后创建一个新的Texture,其Shader属性设置为“Unlit/Texture”,再将刚刚的渲染材质拖到这个材质是哪个的MainTexture即可。

使用渲染纹理(RenderTexture)来实现3D视觉_第4张图片

这个圆柱体的Material确定了其显示的内容。

使用渲染纹理(RenderTexture)来实现3D视觉_第5张图片

 

我们新建一个材质,设置Shader为Unlit/Texture,将之前创建的纹理和材质联系起来。

这个材质的Shader要选正确:

使用渲染纹理(RenderTexture)来实现3D视觉_第6张图片

 

 

倒数第二步,将刚才创建的渲染纹理添加到新创建的这个纹理上。

这样,相机的内容呢,就渲染到这个材质上了。

然后我们将这个材质设置为圆柱体的材质,这样,内容就显示到圆柱体上了。

使用渲染纹理(RenderTexture)来实现3D视觉_第7张图片

 

从材质预览也可以看到,我们已经将2D的画面,转换为3D的内容了。

使用渲染纹理(RenderTexture)来实现3D视觉_第8张图片

试着控制移动下,效果还挺有意思。

关键就是对于Material,Texture的理解。特别是3D环境下这两个概念的理解。

最终,这种圆柱形的视觉效果就出来了。

你可能感兴趣的:(Unity,游戏开发,3d)