【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略

这篇具有很好参考价值的文章主要介绍了【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略

前言

在游戏开发时,我们为了让角色更加真实立体,我们会使用 3D 模型代替​ 2D 的龙骨或者 Spine 动画。
比如我们的选择角色的界面,如果我们的角色是 3D 模型,界面的 UI (例如名字、背景图等)都是 2D 的,那么我们怎么实现 3D 模型和界面的 UI 一起渲染在同一个界面呢?换句话说,我们怎么实现把 3D 模型渲染在 UI 上呢​?

思路

使用 Creator 引擎提供的 UIMeshRenderer 组件。

介绍

引擎的渲染流程(渲染管线):

  1. 引擎在渲染 3D 和渲染 UI 是分开的,并不是同时渲染的。
  2. 按照引擎默认的渲染管线(前向 forward 渲染管线)的流程是,引擎会先渲染 3D 后渲染 UI。
  3. 结合 Camera 的特性,越早渲染的会优先绘制。所以最终的表现是,如果 3D 和 UI 放在一起渲染的话,那么 UI 会盖在 3D 的上面(3D 模型被 UI 盖住了看不到了,或者显示不全)

这是由于 3D 和 UI 放在一起,会导致一些渲染的问题,所以如果我们能把 3D 模型的数据提交延迟到和 UI 一起提交,那么我们就可以实现 UI 和 3D 模型一起渲染的效果。所以我们需要借助今天的主角“UIMeshRenderer”。

Creator 官方文档的介绍是,UIMeshRenderer 是一个将 3D 模型从 3D 渲染管线转换到 2D 渲染管线的带有转换功能的渲染组件。该组件支持 3D 模型和粒子在 UI 上的显示,没有这个组件,即使模型和粒子节点在 UI 里也不会被渲染。
【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略
这是来自 Creator 3.5.2 版本的引擎代码 ui-meshrenderer.ts 中部分。
【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略

实现步骤

  • 以 Creator 3.5.2 版本为例,我们新建一个场景,把 3D 模型和 UI 素材导入到项目下。
  • 将 UI 和 3D 模型拖到层级管理器上。3D 模型也放置在 Canvas 路径下。player 为我们的 3D 模型。
    【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略
  • 在 player 节点上的 MeshRenderer 组件下,挂载我们的 UIMeshRenderer 组件。(挂载 UIMeshRenderer 组件的方式,我们可以通过 属性编辑器上的 添加组件,然后选择 UIMeshRenderer 即可)
    【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略
    备注:
  • 需要为每个 MeshRenderer 组件挂载 UIMeshRenderer 组件;
  • 当拖拽 3D 模型或者 UI 到层级管理器上运行时不显示时,检查一下节点的 Layer 选项。默认的 Layer 可能为 DEFAULT,而相机的 Visibility 选项在 Canvas 下默认是 UI_2D 和 UI_3D 是勾选的,可能会导致运行时不被渲染(剔除)。修改的方式:一种是修改节点的Layer 为相机 Camera 的 Visibility 选项;一种是将相机的 Visibility 选项勾选 DEFAULT 选项。
  • 节点的 layer 是和相机的 Visibility 选项配合使用,共同解决哪些物体需要被渲染,那么物体不被渲染。

介绍到这里,实现 3D 渲染到 UI 上的方法是不是很简单。

思考题
这边介绍的是 3D 模型,那么如果是个骨骼动画呢?怎么使用 UIMeshRenderer 组件呢?

[关注我,了解更多 Cocos Creator 用法]

更多参考可以访问
Cocos Creator 3.5.x demo 版本
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.5.x/demo/2d/Creator3.5.0_UIMeshRenderer
Cocos Creator 3.4.x demo 版本
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.4.x/demo/Creator3.4.2_UIMeshRenderer
Cocos Creator 3.0.x demo 版本
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.x/demo/Creator3.0.0_UIMeshRenderer
[如果喜欢,可以点个 gitee 关注和 star 哟,谢谢哟]文章来源地址https://www.toymoban.com/news/detail-451820.html

到了这里,关于【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3 使用defineAsyncComponent与component标签实现动态渲染组件

    内容有些啰嗦,内容记载了当时遇到了bug以及解决问题的思路。 业务场景简述: 前端做配置化组件,通过url内的唯一标识,请求后端sql 哪取页面配置信息,前端通过配置信息动态渲染查询表单,导出、表格,toolbar以及动态弹窗;该动态渲染组件的功能,就是渲染的toolbar内

    2024年02月05日
    浏览(56)
  • CocosCreator3.4.2源码渲染流程解读

     首先上一张脑图镇楼,有些流程还有待后续补充,但是整个刷新过程差不多都完成了。 在上一个xmind文件地址 https://download.csdn.net/download/m0_37609239/87254684 接下来就正式开始讲代码: 每帧刷新渲染还是从mainloop开始讲,前面的流程可以看 ​​​​​​​​​​​​​​CocosC

    2023年04月08日
    浏览(40)
  • 官宣!DevExpress Blazor UI组件,支持全新的.NET 8渲染模式

    DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 .NET 8为Blazor引入了令人兴奋的重大变化,统一了它的托管模型,并采用了服务器端渲

    2024年02月03日
    浏览(50)
  • Element-ui的Carousel走马灯组件动态渲染高度

    在前端 vue 项目开发中经常会用到走马灯的场景,然而在采用Element-ui的情况下, el-carousel 走马灯组件有一个默认的固定高度 300px 。如下所示: 这样会导致网页的全屏的 banner 被压缩或拉伸,变形十分难看,在一个认真的切图仔眼里是无法容忍的。然而业务方在使用的时候没

    2024年02月03日
    浏览(51)
  • 【CocosCreator入门】CocosCreator组件 | Sprite(精灵)组件

            Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中 Sprite 组件是最常用的之一。Sprite 组件用于渲染 2D 图像,并提供了许多可配置的选项,如图像纹理、尺寸、位置、旋转等。在本文中,我们将深入探讨 Sprite 组件的技术实现和使用方法。 目录

    2023年04月15日
    浏览(86)
  • 【CocosCreator入门】CocosCreator组件 | Layout(布局)组件

            Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的Layout组件是一种用于实现节点自适应布局的重要组件。它可以根据不同的布局方式,自动调整子节点的位置和大小,从而实现节点的自适应布局。 目录 一、组件介绍 二、组件属性 三、布局类

    2023年04月22日
    浏览(49)
  • 【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件

            Cocos Creator是一款流行的游戏开发引擎,具有丰富的组件和工具,其中TiledMap组件可以帮助开发者快速创建、加载和渲染地图。 目录 一、组件介绍 二、组件属性 三、脚本控制 3.1加载地图 3.2渲染地图 四、详细说明 五、关闭裁剪 六、节点遮挡         TiledMap是基

    2024年02月07日
    浏览(45)
  • 【CocosCreator入门】CocosCreator组件 | Mask(遮罩)组件

              Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Mask组件可用于创建如圆形、矩形和任意形状的遮罩效果,以限制节点显示的范围。这对于创建具有复杂布局的UI元素非常有用,例如只显示图片的一部分或控制文本显示的区域。         使

    2024年02月12日
    浏览(45)
  • 【CocosCreator入门】CocosCreator组件 | Graphics(绘制)组件

            Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Graphics组件允许您在游戏中绘制2D图形和几何形状,并通过编写脚本来控制其外观和行为。 目录 一、组件属性 二、组件方法 三、脚本示例 属性 功能说明 lineWidth 设置或返回当前的线条宽度 li

    2024年02月09日
    浏览(39)
  • 【CocosCreator入门】CocosCreator组件 | Collider(碰撞)组件

            Cocos Creator是一款流行的游戏开发引擎,具有丰富的组件和工具,其中碰撞系统组件是该引擎的重要组成部分。该组件可用于检测游戏中各个元素之间的碰撞,例如玩家角色与敌人、子弹与障碍物等。 目录 一、组件介绍 二、组件属性 2.1BoxCollider(矩形) 2.2CircleC

    2024年02月06日
    浏览(118)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包