QT3D中的透明对象
Transparent object in QT3D
我需要能够在 QT3D 中更改网格对象的透明度。我将 Scene3D 组件用作包含默认 ForwardRenderer 的根组件。
components: [
RenderSettings {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0, 0, 1)
camera: camera
}
},
// Event Source will be set by the Qt3DQuickWindow
InputSettings { }
]
我的 3D 对象由 Mesh、Transform 和 PhongMaterial 组成。
如有任何帮助,我们将不胜感激。
只需使用 PhongAlphaMaterial:
PhongAlphaMaterial{
id: redMaterial
ambient: Qt.rgba( 1, 0, 0, 1.0 )
diffuse: Qt.rgba( 1, 0, 0, 1.0 )
specular: Qt.rgba(1, 0, 0, 1.0 )
shininess: 1.0
alpha: 0.4
}
代码没问题。您可以更改模型以查看效果。完整代码为:
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.2
import QtQuick.Dialogs 1.2
import QtQuick.Scene3D 2.0
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import Qt3D.Extras 2.0
import Qt3D.Input 2.0
Teapot{
x: 0; y:0; z:0;
material: PhongAlphaMaterial{
ambient: Qt.rgba( 1, 0, 0, 1.0 )
diffuse: Qt.rgba( 1, 0, 0, 1.0 )
specular: Qt.rgba(1, 0, 0, 1.0 )
shininess: 1.0
alpha: 0.5
}
}
茶壶图片
我需要能够在 QT3D 中更改网格对象的透明度。我将 Scene3D 组件用作包含默认 ForwardRenderer 的根组件。
components: [
RenderSettings {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0, 0, 1)
camera: camera
}
},
// Event Source will be set by the Qt3DQuickWindow
InputSettings { }
]
我的 3D 对象由 Mesh、Transform 和 PhongMaterial 组成。
如有任何帮助,我们将不胜感激。
只需使用 PhongAlphaMaterial:
PhongAlphaMaterial{
id: redMaterial
ambient: Qt.rgba( 1, 0, 0, 1.0 )
diffuse: Qt.rgba( 1, 0, 0, 1.0 )
specular: Qt.rgba(1, 0, 0, 1.0 )
shininess: 1.0
alpha: 0.4
}
代码没问题。您可以更改模型以查看效果。完整代码为:
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.2
import QtQuick.Dialogs 1.2
import QtQuick.Scene3D 2.0
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import Qt3D.Extras 2.0
import Qt3D.Input 2.0
Teapot{
x: 0; y:0; z:0;
material: PhongAlphaMaterial{
ambient: Qt.rgba( 1, 0, 0, 1.0 )
diffuse: Qt.rgba( 1, 0, 0, 1.0 )
specular: Qt.rgba(1, 0, 0, 1.0 )
shininess: 1.0
alpha: 0.5
}
}
茶壶图片