你的浏览器禁用了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
相关问题
List 组件列表渲染异常
加载到舞台的3D模型不显示贴图
layaair2-cmd 编译bug
Animator2D该如何判断动画是否已经播放完成?
ios14系统下 blendMode='lighter' 图片异常
骨骼动画播放完后的回调时间
使用了u3D导出来的粒子,不停的显示移除并销毁其克隆对象,统计面板的显存和内存就会显示成负数
从unity导出的场景透贴和模型烘焙的灯光不显示,请问有知道是什么原因的吗?~~~~~~~~~~~~~
layaair3.1.3版本打出的项目中的text与label组件在vivo小游戏引擎1105及以下文字显示异常
编辑器Tree组件树节点渲染回调两次
unity中的模型导出后在laya中显示不正常
问题状态
最新活动:
2025-05-15 10:29
浏览:
788
关注:
2
人
商务合作
2 个回复
LayaAir小牛
赞同来自:
layabox
赞同来自:
你 Demo 的自定义 Shader 中,有一个 Pass 用于剔除正面。当模型出现负数缩放时,会改变三角形的顶点顺序,从而影响正反面的判断。引擎能根据这种变化自动调整剔除的正反面。但是,对于 SkinnedMesh(蒙皮网格)来说,它的变换是由骨骼的 transform 决定的,而这部分计算是在 Shader 中完成的。如果骨骼使用了负数缩放,引擎就无法自动判断并调整剔除方向,可能导致渲染错误。
默认材质通常是剔除背面的(Cull Back),所以一般不会遇到这种问题。但如果使用了剔除正面的设置(Cull Front),并且骨骼变换中含有负数缩放,就有可能出现渲染错误。
如果修改出问题的某一帧的某个角度,渲染效果可以恢复正常,但会导致动作变形。这是因为动画数据修改后影响了骨骼的 transform,从而影响了三角形的渲染顺序。
你可以尝试一下,当你对骨骼使用负数缩放(例如 ScaleX 为负)时,同时对 SkinnedMesh 节点的 ScaleX 一起做相应的调整,保持两者的整体变换一致,以避免剔除方向异常的问题。