欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 Unity使用RenderTexture实现裁切3D模型

程序员文章站 2022-07-03 17:57:43
文章目录一、前言二、实现步骤1 UGUI的Mask裁切2 使用独立摄像机渲染3D模型3 使用RenderTexture存储摄像机的渲染4 使用RawImage显示RenderTexture一、前言游戏项目中,可能需要实现3D模型的裁切显示,比如让3D模型在一个圆形的裁切区域内显示,如下效果原理就是使用RenderTexture保存摄像机的画面,然后再使用UGUI的Mask对RenderTexture进行裁切。二、实现步骤1 UGUI的Mask裁切UGUI中,有一个MaskI组件,可以方便的实现...

一、前言

游戏项目中,可能需要实现3D模型的裁切显示,比如让3D模型在一个圆形的裁切区域内显示,如下效果
荐
                                                        Unity使用RenderTexture实现裁切3D模型
原理就是使用RenderTexture保存摄像机的画面,然后再使用UGUIMaskRenderTexture进行裁切。

二、实现步骤

1 UGUI的Mask裁切

UGUI中,有一个MaskI组件,可以方便的实现IUGUII的裁切,比如在一个圆形的ImageI物体上挂上MaskI组件,那么ImageI的子物体就会被ImageI的形状裁切,如下效果
荐
                                                        Unity使用RenderTexture实现裁切3D模型
荐
                                                        Unity使用RenderTexture实现裁切3D模型
那么如何使用Mask裁切3D模型呢,需要借助RenderTexture,而RenderTexture的画面需要借助摄像机,所以我们先创建一个独立的摄像机来渲染3D模型。

2 使用独立摄像机渲染3D模型

选择3D模型,点击Layer - Add Lyaer...,添加专属的角色层
荐
                                                        Unity使用RenderTexture实现裁切3D模型
荐
                                                        Unity使用RenderTexture实现裁切3D模型
荐
                                                        Unity使用RenderTexture实现裁切3D模型
将模型的Layer设置成Avatar
荐
                                                        Unity使用RenderTexture实现裁切3D模型
创建独立摄像机,设置Culling MaskAvatar
荐
                                                        Unity使用RenderTexture实现裁切3D模型
注意主摄像机不渲染Avatar层,主摄像机的Culling Mask不要勾选Avatar
荐
                                                        Unity使用RenderTexture实现裁切3D模型
此时可以看到角色摄像机AvatarCam渲染着角色
荐
                                                        Unity使用RenderTexture实现裁切3D模型

3 使用RenderTexture存储摄像机的渲染

Project窗口中右键菜单Create - Render Texture,创建一个RenderTexture资源
荐
                                                        Unity使用RenderTexture实现裁切3D模型
RenderTexture资源拖到角色摄像机AvatarCam中的Target Texture
荐
                                                        Unity使用RenderTexture实现裁切3D模型
此时,摄像机渲染的画面就会保存在这个RenderTexture资源中了,如下
荐
                                                        Unity使用RenderTexture实现裁切3D模型

4 使用RawImage显示RenderTexture

在之前加了MaskImage物体下创建一个RawImage,并将RenderTexture资源拖给RawImageTexture,如下
荐
                                                        Unity使用RenderTexture实现裁切3D模型
此时,我们想要的Mask裁切3D模型的效果就出现了
荐
                                                        Unity使用RenderTexture实现裁切3D模型

本文地址:https://blog.csdn.net/linxinfa/article/details/107315873