cocos creator 在 2.x 与 3.x 的截屏的实现原理差不多,都是利用摄像机做离屏渲染,但在实际代码接口方面有一些改变,
而这两个版本都有官方的demo提供,能够满足一般的应用。

在3D场景中,由于3d世界和ui是分别2个摄像机来做渲染,所以在做截屏的时候,需要将2个摄像机的渲染结果绘制到同一个render texture中。 而在cocos中,所有的camera的渲染都是同步,所以需要分开绘制,不然数据会被覆盖。

此外,Render texture 在目前的版本取消了 ColorAttachment 的序列化和自定义编辑,会默认设置为 CLEAR,所以每次绘制都会固定的更新颜色值进行清空,如果需要多个相机进行绘制,可以在 reset 的时候进行自定义,将 loadOP 设置为 LOAD。

关键代码如下:

public capture(fileName: string) {let rt = new RenderTexture();rt.initialize({width: Math.floor(view.getVisibleSize().width),height: Math.floor(view.getVisibleSize().height),});const colorAttachment = new gfx.ColorAttachment();colorAttachment.loadOp = gfx.LoadOp.LOAD;const depthStencilAttachment = new gfx.DepthStencilAttachment();const passInfo = new gfx.RenderPassInfo([colorAttachment], depthStencilAttachment);rt.reset({ width: rt.width, height: rt.height, passInfo: passInfo });this.sceneCamera.targetTexture = rt;this.scheduleOnce(() => {this.uiCamera.targetTexture = rt;});this.scheduleOnce(() => {WebUtil.saveas(fileName, this.getImage(rt));this.sceneCamera.targetTexture = null;this.uiCamera.targetTexture = null;}, 0.1);}

cocos creator 3D截屏相关推荐

  1. cocos creator 实现截屏截图切割转成 base64分享--facebook小游戏截图base64分享,微信小游戏截图分享【白玉无冰】每天进步一点点

    facebook小游戏分享的时候要传图片的base64码这个参数,有时需求是要截屏分享,让我们一起探索如何截屏吧. 何时截屏 我们要在游戏渲染完一次后截屏,cocos creator 提供了cc.Di ...

  2. 022 - cocos creator 3D

    #cocos creator 3D warning 报错:"project:///assets/main.js,将https中的export注视掉重试一遍 知识点 scrollview组件添 ...

  3. Cocos Creator 3D后期效果解决方案源码剖析--从入门到融汇贯通

    注:本文既有经验上的总结,又有实现方式上的讲解.既有流程上的描述,又有代码细节上的剖析. 全文字数5000+,看的时候最好带上笔和纸. 零.你的序 感谢大家的厚爱,KylinsPostEffects上 ...

  4. Cocos Creator 3D发布QQ小游戏并打APK包

    Cocos Creator 3D版本 : 1.2.0 Visual Studio版本:2017,typeScripts. 1. 构建QQ小游戏 1. 在菜单栏的项目里打开构建发布 因为QQ跟微信的平台 ...

  5. 长远发展java还是cocos_聊聊 Cocos Creator 3D 的未来

    ​Hi,各位开发者,很高兴跟大家见面.在我们发布了 Cocos Creator 3D 之后,得到了许多积极的反馈和建议,在此真诚地感谢大家的支持! 从去年十月份 Cocos Creator 3D 诞生 ...

  6. 麒麟子Cocos Creator 3D研究笔记零:从零开始入门并发布微信小游戏

    编辑器状态截图 不要在意名字,我临时借用的小游戏APPID 一.前言 Cocos Creator,我回来了. 2016年6月,大家都觉得Cocos Creator 2D不够成熟的时候,我就开始商用了. ...

  7. Cocos Creator 3D 麒麟子回来了!(入门心法)

    1 前言 Cocos Creator,我回来了. 2016年6月,大家都觉得Cocos Creator 2D不够成熟的时候,我就开始商用了.因为我感受到了市场对Cocos Creator商业游戏源码框 ...

  8. 如何用 Cocos Creator 3D 如何实现小姐姐的发丝高光?

    Introduction PRB 材质改变了人们对于引擎实时渲染画面的理解,让玩家在游戏中,也能够体验到锈蚀的金属,厚重的皮革,精细的纹理,感受更加真实的世界.在正式发布的 Cocos Creator ...

  9. Cocos Creator 3D 材质系统:曲面效果如何实现?

    引言 前不久发布的 Cocos Creator 1.0.2 版本中正式加入了对 OPPO 小游戏.vivo 小游戏以及华为快游戏平台的支持,在诸多 Creator 3D 制作的小游戏案例中,<猪 ...

最新文章

  1. WPF判断两个时间大小避免误差
  2. 服务端JavaScript之Rhino
  3. pyqt5实战之幻彩大蛇(贪吃蛇)-1
  4. 前端资源构建-Grunt环境搭建
  5. 设置TabBar分栏控制器上图片的大小问题
  6. //输入学生人数,挨个输入姓名,身高,年龄,求平均年龄,然后按身高降序排列输出...
  7. linux下 LVM的应用
  8. 在sublime text里阅读ABAP源代码的一些例子
  9. 称特价影票被取消后影片仍正常放映 购票人起诉淘票票索赔500元
  10. [原创]补丁工具V1.6.3
  11. mysql存emoji_MySql存储emoji表情报错的处理方法
  12. java big5转换为gbk_简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)
  13. 某代理网站免费IP地址抓取测试
  14. ctfmon是什么启动项_开机启动项命令是什么-百度经验
  15. Arduino之oled屏幕使用
  16. MYSQL长时间保持连接
  17. 智多星骗子:骗钱的手段太高超
  18. 苍蝇也有自己的“领空”吗?
  19. 20135203齐岳 信息安全系统设计基础期末总结
  20. 系统集成项目管理|十大管理

热门文章

  1. python 重启程序_python重启程序
  2. chatgpt生成图片
  3. 从甲方、合作伙伴和团队成员三个维度学习项目管理的思维方法
  4. 曲折词缀和python的功能区别_派生词缀与屈折词缀的区别
  5. 《从零开始的 RPG 游戏制作教程》第十一期:排泄、运行效率
  6. 做了这么久IT,DNS懂了吗?
  7. Redux01 续集
  8. 前端页面,input框禁用编辑的三种方法
  9. ffmpeg中文版文档
  10. 芝诺悖论-阿基里斯与龟