我正在将 Three.js 应用程序移植到 QML / Qt Quick 3D。
我有以下部分来在所有东西的“顶部”绘制某些东西(3D 对象),即忽略深度顺序(
this
是 THREE.Object3D
):
if(overlay) {
this.renderOrder = 999; // render last
this.material.depthTest = false; // skip depth test
this.material.depthWrite = false; // don't write to depth
this.onBeforeRender = function (renderer) {
renderer.clearDepth(); // clear depth before render
};
}
如何在 Qt Quick 3D 中实现同样的效果?
QtQuick 3D 是 QtQuick 的一部分,3D 场景是使用 SceneGraph 渲染的。这意味着如果您想创建“覆盖”,您只需要创建比您的 3D 场景具有更高 z 顺序的任何 QML 项目(不是场景节点的一部分,而是父 QML 项目),并且它将渲染在顶部一切。