博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity使用RenderTexture实现裁切3D模型
阅读量:1983 次
发布时间:2019-04-27

本文共 791 字,大约阅读时间需要 2 分钟。

文章目录

一、前言

游戏项目中,可能需要实现3D模型的裁切显示,比如让3D模型在一个圆形的裁切区域内显示,如下效果

在这里插入图片描述
原理就是使用RenderTexture保存摄像机的画面,然后再使用UGUIMaskRenderTexture进行裁切。

二、实现步骤

1 UGUI的Mask裁切

UGUI中,有一个MaskI组件,可以方便的实现IUGUII的裁切,比如在一个圆形的ImageI物体上挂上MaskI组件,那么ImageI的子物体就会被ImageI的形状裁切,如下效果

在这里插入图片描述
在这里插入图片描述
那么如何使用Mask裁切3D模型呢,需要借助RenderTexture,而RenderTexture的画面需要借助摄像机,所以我们先创建一个独立的摄像机来渲染3D模型。

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

选择3D模型,点击Layer - Add Lyaer...,添加专属的角色层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将模型的Layer设置成Avatar
在这里插入图片描述
创建独立摄像机,设置Culling MaskAvatar
在这里插入图片描述
注意主摄像机不渲染Avatar层,主摄像机的Culling Mask不要勾选Avatar
在这里插入图片描述
此时可以看到角色摄像机AvatarCam渲染着角色
在这里插入图片描述

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

Project窗口中右键菜单Create - Render Texture,创建一个RenderTexture资源

在这里插入图片描述
RenderTexture资源拖到角色摄像机AvatarCam中的Target Texture
在这里插入图片描述
此时,摄像机渲染的画面就会保存在这个RenderTexture资源中了,如下
在这里插入图片描述

4 使用RawImage显示RenderTexture

在之前加了MaskImage物体下创建一个RawImage,并将RenderTexture资源拖给RawImageTexture,如下

在这里插入图片描述
此时,我们想要的Mask裁切3D模型的效果就出现了
在这里插入图片描述

转载地址:http://gtzvf.baihongyu.com/

你可能感兴趣的文章
D*算法
查看>>
强化学习(四) —— Actor-Critic演员评论家 & code
查看>>
RESTful API
查看>>
优化算法(四)——粒子群优化算法(PSO)
查看>>
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(2)——回归分析(最小二乘法&决定系数&残差不相关)&主成分分析&奇异值分解
查看>>
数据在Oracle中的存储
查看>>
优化算法(五)—人工蜂群算法Artificial Bee Colony Algorithm(ABC)
查看>>
轨迹规划 trajectory planning
查看>>
AGV自动导引运输车
查看>>
Trie树(字典树)
查看>>
COMP7404 Machine Learing——Logistic Regression
查看>>
COMP7404 Machine Learing——Regularization(参数C)
查看>>
COMP7404 Machine Learing——KNN
查看>>
COMP7404 Machine Learing——SVM
查看>>
COMP7404 Machine Learing——Decision Tree & Random Forests
查看>>
COMP7404 Machine Learing——Hyperparameter Grid Search & Nested Cross-Validation
查看>>
COMP7404 Machine Learing——Confusion Matrix & Precision/Recall/F1
查看>>
COMP7404 Machine Learing——ROC
查看>>
Python量子计算qiskit
查看>>
Python的多线程不是真的多线程(GIL全局解释器锁)
查看>>