3d透明无序渲染

3.10/3.11 版本的3D部分,是按照对象深度顺序渲染的?
如此导致互相交叉 而又都含有透明部分的 模型 会出现“穿透”的现象。如图“

void RenderCommand::init(float globalZOrder, const cocos2d::Mat4 &transform, uint32_t flags)
{
_globalOrder = globalZOrder;
if (flags & Node::FLAGS_RENDER_AS_3D)
{
if (Camera::getVisitingCamera())
// bugfix transform 这个矩阵是转入View空间的矩阵 直接取矩阵的 14 z坐标 就是 到摄像机的距离
//_depth = Camera::getVisitingCamera()->getDepthInView(transform);
_depth = -transform.m[14];

    set3D(true);
}
else
{
    set3D(false);
    _depth = 0;
}

}

改成这样就好了 具体原因可以看一下我的帖子
还有就是是否要开启depth write color blend 具体根据项目而定
在此输入链接描述