Qt3d Правильный рендеринг прозрачной сетки - PullRequest
0 голосов
/ 12 марта 2019

Я хочу визуализировать пользовательскую сетку (LAB.obj) с определенной прозрачностью в сцене Qt3D. Я использую QDiffuseSpecularMaterial с диффузным цветом, установленным на Qt.rgba(1,0.6,0.42,0.9) - альфа-значение 0,9. Я получаю странные горизонтальные полосы по всей моей модели при визуализации, и части объекта, которые должны быть сзади, ошибочно появляются спереди. Смотрите следующее изображение:

enter image description here

Что я делаю не так?

Вот код, разбитый на важные части:

Item {
Scene3D {
    id: scene
    anchors.fill: parent
    aspects: ["input", "logic"]

    Entity {
        id: sceneRoot

        Camera {
            id: camera
            projectionType: CameraLens.PerspectiveProjection
            nearPlane : 0.01
            farPlane : 1000.0
            fieldOfView: 45


           position: Qt.vector3d(0,0,40)
            upVector: Qt.vector3d( 0,1,0 )
            viewCenter: Qt.vector3d(0,0,0)
        }

        OrbitCameraController {
            camera: camera
            linearSpeed: -200
            lookSpeed: -180
        }

        components: [
            RenderSettings {
                 ForwardRenderer {
                    camera: camera
                    clearColor: "transparent"
                }
            },
            InputSettings {}
        ]

        Entity {
            id: customEntity

            components: [
                DiffuseSpecularMaterial {
                    diffuse: Qt.rgba(1,0.6,0.42,0.9)
                    alphaBlending:true
                },
                Mesh {
                    id: customMesh
                    source: "qrc:LAB"
                }
            ]
        }

    }



}

}

...