Cocos Creator 3.5.1 今日发布,新增两项重要实验性功能

Cocos Creator 3.5.1 今日发布。V3.5.1 在不影响原有功能稳定性的前提下加入了两项影响深远的实验性功能。一是智能导入 FBX 中的 DCC 默认材质,还原美术在各类 DCC 工具中使用的材质和外观;二是内置了一系列 Surface Shader 材质资源,这将成为未来支撑材质定制的基石。除此之外,我们还完成了一系列关键性的问题修复,体验优化和大量的文档优化,建议所有 3.x 用户升级。

重要更新

实验性:FBX 智能材质导入

FBX 智能材质导入是模型导入器中辅助转换材质的一个功能,它可以将各种 DCC 工具导出到模型中的部分标准材质直接映射到 Cocos Creator 的内置材质中,尽量还原美术在 DCC 工具中看到的材质效果。我们可以对比一下 Maya 中的 Standard Surface 材质导入 Cocos Creator 后的效果:

Maya 工具内效果
开启 FBX 智能材质导入后 Cocos Creator 内效果

此功能已支持主流 DCC 工具:3ds Max、Blender、Maya、C4D 中的部分标准材质。

具体使用可以参考使用文档。同时我们也将在 3.6 中持续优化模型和材质导入体验,敬请期待。

实验性:新增 Surface Shader

从 3.0 版本以来,不少开发者都经历过升级过程中材质无法正常使用,需要迁移的问题,为此我们也准备过不少材质系统专属的升级文档,然而手动升级过程的体验确实不尽如人意。此问题的根本原因是引擎的光照模型和表面材质的计算一直在调整,这会影响所有相关的材质 effect 代码,也会影响到用户复用这些材质时的兼容性。
为了提升材质系统的兼容性,我们新增了一系列 Surface Shader 资源,抽象了引擎内的光照模型和表面材质计算,未来开发者可以使用这些抽象好的头文件和内置函数极大简化自己书写的 effect 资源。同时由于多了一些封装,跨版本间的兼容性也会更有保障。
具体 Surface Shader 的使用请参考使用文档

文档优化

从 3.5 开始我们设计了新版 API 文档页面,受到了开发者比较普遍的好评和一些反馈。在 3.5.1 我们继续做了大量的内容检查,通过近 40 个 PR 进一步补全了之前遗留的一些 API 文档,修复了部分文档错误。并且之后文档也会得到持续性的优化,希望给开发者带来越来越好的使用体验。

重要修复

  1. 修复浏览器预览速度过慢的问题
  2. 修复 Mobile Safari 上无法预览的问题
  3. 修复部分材质从 3.4.2 或更低版本不能自动升级的问题
  4. 修复 3D 粒子系统在状态切换时可能的报错和表现问题
  5. 修复延迟管线的光影计算

详细更新

  • [FEATURE] Add smart material conversion for FBX importer
  • [FEATURE] add experimental surface shader (engine#11048)
  • [OPTIMIZE] change camera settings to orthogonal type in 2d scene templates (engine#11020)
  • [OPTIMIZE] Improve API documentations in engine
  • [OPTIMIZE] Add a new experimental import strategy in AssetDB, avoid repeative import process
  • [OPTIMIZE] Update lightmap tool LightFX
  • [OPTIMIZE] Inspector keep group display order
  • [OPTIMIZE] Improve shadowmap settings in default scene (engine#11213)
  • [OPTIMIZE] Optimize anisotropy sample (engine#11075)
  • [OPTIMIZE] Spotlight interface description change (engine#10964)
  • [OPTIMIZE] Listen WINDOW_RESIZE event by application (engine#10930)
  • [OPTIMIZE] Load libGLESv3.so by default while user choose glesv3 (engine#10941)
  • [OPTIMIZE] Allow native projects use user pre-set global cmake variables (engine#11011)
  • [OPTIMIZE] Refine MissingScript debugger (engine#10916)
  • [OPTIMIZE] Automically unfold array list when editing array length in the inspector
  • [OPTIMIZE] Optimize curve unit test (engine#10912)
  • [FIX] Fix long loading time issue
  • [FIX] Fix camera preview not working issue
  • [FIX] Fix no responding due to lock on scene scripts
  • [FIX] Fix preview issue on some browsers like Safari
  • [FIX] Fix inspector cannot create new clip under animation editing mode
  • [FIX] Fix clip list not updated after clip creation under animation editing mode
  • [FIX] Fix clip removal check under animation editing mode
  • [FIX] Fix frequent update of nodes in the animation editor
  • [FIX] Improve error handling during node data migration for animation clip
  • [FIX] Popup warning when regenerate an exist prefab asset
  • [FIX] Fix asset builder issue which cause wrong JSON group for auto-atlas asset and duplicated assets in JSON
  • [FIX] Data tolerance for animationBlendType in AnimationGraph
  • [FIX] Fix conflict after importing custom texture compression config
  • [FIX] Fix code sample issue in the template of the builder’s plugin
  • [FIX] Fix engine error caused by material switch
  • [FIX] Fix prefab data copy issue when the root node is 2d node
  • [FIX] Fix issue when copy component data from prefab instance to other prefab
  • [FIX] Fix error when AnimationGraph panel is initialized during editor startup
  • [FIX] Fix selection issue in scene editor when viewing on screen with dpr larger than 2
  • [FIX] Avoid potential infinity loop in tickInEditMode
  • [FIX] Fix error caused by empty result when dumpping node data
  • [FIX] Fix error when typing enter in the texture name field of the joint texture layout
  • [FIX] Fix builder malfunctioning after importing configurations
  • [FIX] Fix view rotation after modifying scale value of the preview window
  • [FIX] Fix part of circular reference issue by upgrading rollup to 2.37.0
  • [FIX] Fix collision matrix setup issue in project setting
  • [FIX] Fix issue that the last panel cannot be dragged in dock
  • [FIX] Circular references should cause workflow failed (engine#10841)
  • [FIX] Fix geometry-renderer in deferred pipeline (engine#10890)
  • [FIX] Fix meshBuffer checkCapacity bug (engine#10910)
  • [FIX] Remove ambient.mipmapCount (engine#10920)
  • [FIX] Fix auto-atlas test bug cause time sequence (engine#10914)
  • [FIX] Fix fog is more brighter with native engine (engine#10972)
  • [FIX] Fix android crash due to surface not ready (engine#10984)
  • [FIX] Fix pause operation fail when play and pause audio in the same frame on native platforms (engine#10990)
  • [FIX] Fix instanced model has no spot light shadow (engine#10921)
  • [FIX] Fix particle system memory issue (engine#11032)
  • [FIX] Terrain and model automatic choose lightmap shader (engine#11006)
  • [FIX] Correct render pipeline script template error (engine#10927)
  • [FIX] Fix animation mask data cannot be load from gltf (engine#11033)
  • [FIX] Fix shader migration from lower version (engine#11038)
  • [FIX] Fix subcontextview for wechat platform (engine#11049)
  • [FIX] Fix notifySkinnedMeshRemoved (engine#11074)
  • [FIX] Fix word wrap for Vietnamese characters (engine#10925)
  • [FIX] Instantiate all FastDefined objects as value type (engine#11052)
  • [FIX] Fix format feature request for Float32 for gles3 and webgl2. (engine#11084)
  • [FIX] Fix eglSwapbuffer error due to eglSurface is not ready (engine#11083)
  • [FIX] Disable gametick after enter background(revert to logic to version 3.4.2 (engine#11095)
  • [FIX] Skip a pair of quotations for avoiding spaces when image name are detected in RichText (engine#10954)
  • [FIX] Assign underline initial value when label segments are contructed in RichText (engine#10954)
  • [FIX] Fix clear particle bug (engine#11066)
  • [FIX] Fix ndc->world with deferred shading (engine#11099)
  • [FIX] Remove enableBatch from spine/db (engine#11100)
  • [FIX] Fix deferred pipeline depth stencil with linear sampling in webgl2.0 (engine#11110)
  • [FIX] Fix multi blank lines (engine#11116)
  • [FIX] Fix ios accelerometer not working (engine#11142)
  • [FIX] Add sky.effect with surface shader (engine#11156)
  • [FIX] Fix error during particle switch (engine#11139)
  • [FIX] Change logger level (engine#10944)
  • [FIX] Don’t push data if debug is not enabled. (engine#11118)
  • [FIX] Fix physics collision matrix (engine#11181)
  • [FIX] Fix multi quotations bug and add unit tests (engine#11190)
  • [FIX] Fix light flashes at instanced model (engine#11203)
  • [FIX] Solve getInstancedModel judgment error (engine#11205)
  • [FIX] Fix prefab generates incorrect data (Repeated node) (engine#11211)
  • [FIX] Fix terrain index buffer sharing bug (engine#11206)
  • [FIX] Fix isnan(0.0) with webgl1.0 (engine#11262)
  • [FIX] Fix specular params with surface toon (engine#11265)

前往官网下载最新版本,欢迎大家使用与体验,感谢各位开发者的支持!