你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
发现
话题
全文搜索
登录
[LayaAirIDE3]LayaAir3.2.x模型缩放为负数时播放动画渲染异常Bug
版本LayaAir3.2.5,模型scale正数时播放动画正常,当模型缩放为负数时,部分动画播放会出现渲染异常Bug,附上Demo。
AnimScaleDemo.rar
没有找到相关结果
已邀请:
与内容相关的链接
提交
2 个回复
LayaAir小牛
赞同来自:
您好,感谢您的反馈,我们已经复现问题,正在寻找原因。
layabox
赞同来自:
不算是BUG,
你 Demo 的自定义 Shader 中,有一个 Pass 用于剔除正面。当模型出现负数缩放时,会改变三角形的顶点顺序,从而影响正反面的判断。引擎能根据这种变化自动调整剔除的正反面。但是,对于 SkinnedMesh(蒙皮网格)来说,它的变换是由骨骼的 transform 决定的,而这部分计算是在 Shader 中完成的。如果骨骼使用了负数缩放,引擎就无法自动判断并调整剔除方向,可能导致渲染错误。
默认材质通常是剔除背面的(Cull Back),所以一般不会遇到这种问题。但如果使用了剔除正面的设置(Cull Front),并且骨骼变换中含有负数缩放,就有可能出现渲染错误。
如果修改出问题的某一帧的某个角度,渲染效果可以恢复正常,但会导致动作变形。这是因为动画数据修改后影响了骨骼的 transform,从而影响了三角形的渲染顺序。
你可以尝试一下,当你对骨骼使用负数缩放(例如 ScaleX 为负)时,同时对 SkinnedMesh 节点的 ScaleX 一起做相应的调整,保持两者的整体变换一致,以避免剔除方向异常的问题。
要回复问题请先
登录
发起人
Nigel
相关问题
加载到舞台的3D模型不显示贴图
List 组件列表渲染异常
layaair2-cmd 编译bug
unity中的模型导出后在laya中显示不正常
(Laya3.0非常严重BUG) 任意模型,只要坐标值越大,模型扭曲变形越严重
Animator2D该如何判断动画是否已经播放完成?
laya3.2.5打包 android apk后渲染问题
layaair3.1.3版本打出的项目中的text与label组件在vivo小游戏引擎1105及以下文字显示异常
编辑器Tree组件树节点渲染回调两次
使用了u3D导出来的粒子,不停的显示移除并销毁其克隆对象,统计面板的显存和内存就会显示成负数
骨骼动画播放完后的回调时间
问题状态
最新活动:
2025-05-15 10:29
浏览:
751
关注:
2
人
商务合作
2 个回复
LayaAir小牛
赞同来自:
layabox
赞同来自:
你 Demo 的自定义 Shader 中,有一个 Pass 用于剔除正面。当模型出现负数缩放时,会改变三角形的顶点顺序,从而影响正反面的判断。引擎能根据这种变化自动调整剔除的正反面。但是,对于 SkinnedMesh(蒙皮网格)来说,它的变换是由骨骼的 transform 决定的,而这部分计算是在 Shader 中完成的。如果骨骼使用了负数缩放,引擎就无法自动判断并调整剔除方向,可能导致渲染错误。
默认材质通常是剔除背面的(Cull Back),所以一般不会遇到这种问题。但如果使用了剔除正面的设置(Cull Front),并且骨骼变换中含有负数缩放,就有可能出现渲染错误。
如果修改出问题的某一帧的某个角度,渲染效果可以恢复正常,但会导致动作变形。这是因为动画数据修改后影响了骨骼的 transform,从而影响了三角形的渲染顺序。
你可以尝试一下,当你对骨骼使用负数缩放(例如 ScaleX 为负)时,同时对 SkinnedMesh 节点的 ScaleX 一起做相应的调整,保持两者的整体变换一致,以避免剔除方向异常的问题。