3D模型渲染到2D UI上

前言

在3D游戏开发中,有时需要将3D角色模型渲染到2D UI界面上,比如王者的角色选择界面。

本文以Cocos Creator 3.8版本来实现3D模型和UI渲染在同一界面。

思路

引擎默认使用 前向渲染管线,前向渲染管线的渲染流程是先渲染3D后渲染UI,因此UI总是覆盖在3D内容上面,要实现3D内容和2D内容一起渲染有两种方式:

  • Render Texture: 不将内容直接渲染到屏幕上的情况下进行渲染, 这种方式被称为"离屏渲染"(Off-screen Rendering)。
  • UIMeshR*enderer: 将 3D 模型从 3D 渲染管线转换到 2D 渲染管线的带有转换功能的渲染组件。

使用这两种方式都可以达成目标,本文使用Render Texture来实现。

执行

资源管理器 中点击左上方的 + 按钮,然后选择 渲染纹理,即可创建渲染纹理资源:

在相机组件中,给相机的 TargetTexture 属性赋予 RenderTexture 可以将相机照射的结果绘制到 RenderTexture 上。

将3D角色拖入到编辑器中,调整相机,让3D角色处于相机的视野范围之内

设置好Canvas节点下的Sprite的SpriteFrame为刚创建的Render Texture

这样就可以在2D UI渲染3D模型:

接着通过拖动事件来让角色旋转起来

代码:

typescript 复制代码
 start() {
        this.bg.on(NodeEventType.TOUCH_MOVE, (event: EventTouch) => {
                this.girl.eulerAngles = new Vec3(0, this.girl.eulerAngles.y + event.getDeltaX(), 0);
        }, this);
}

效果:

相关推荐
LcGero20 天前
TypeScript 快速上手:泛型与工具类型
typescript·cocos creator·游戏开发
LcGero21 天前
Cocos Creator 3.x 高维护性打字机对话系统设计与实现
cocos creator·打字机
LcGero21 天前
Cocos Creator 三端接入穿山甲 SDK
sdk·cocos creator·穿山甲
LcGero22 天前
Cocos Creator平台适配层框架设计
cocos creator·平台·框架设计
LcGero23 天前
Cocos Creator 业务与原生通信详解
android·ios·cocos creator·游戏开发·jsb
LcGero24 天前
TypeScript 快速上手:前言
typescript·cocos creator·游戏开发
Setsuna_F_Seiei25 天前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发
CodeCaptain3 个月前
cocoscreator 2.4.x 场景运行时的JS生命周期浅析
cocos creator·开发经验
CodeCaptain4 个月前
CocosCreator 3.8.x [.gitignore]文件内容,仅供参考
经验分享·cocos creator
VaJoy5 个月前
Cocos Creator Shader 入门 (21) —— 高斯模糊的高性能实现
前端·cocos creator