新建一个Battery.qml文件去加载Battery模型。
import QtQuick 2.15
import QtQuick3D 1.15
Model{
id:cube_001
position:Qt.vector3d(0,0.289161,0);
scale:Qt.vector3d(70,6,95)
source:"meshes/cube_001.mesh"
property alias battery_materialRoughness:battery_material.roughness //粗糙度
property alias battery_materialMetalness:battery_material.metalness //金属度
property alias battery_materialEmissiveColor:battery_material.emissiveColor //自发光颜色
PrincipledMaterial{
id:battery_material
metalness:0.4 //金属度
roughness:0.65 //粗糙度
emissiveColor:battery_material.emissiveColor //自发光颜色
baseColor:"#cfe6cf" //基础颜色
cullMode:Material.NoCulling //设置渲染的面,前面,后面或者两面
}
materials:[
battery_material
]
}
上述代码是加载Battery的模型,下面我们用一个代码测试一下
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick3D 1.15
import Quick3DAssets.Battery 1.0
import Quick3DAssets.Car 1.0
import Quick3DAssets.Car_NPC 1.0
import Quick3DAssets.CarShadowPlane 1.0
import Quick3DAssets.DoorLights_L 1.0
import Quick3DAssets.DoorLights_R 1.0
import Quick3DAssets.Drivetrain 1.0
import Quick3DAssets.InteriorLights 1.0
import Quick3DAssets.Road 1.0
import Quick3DAssets.Coupe 1.0
import Quick3DAssets.TirePressureLabel 1.0
import Quick3DAssets.TirePressurePole 1.0
import Quick3DAssets.TirePressureIndicator 1.0
import "./cluster"
import "./blob"
import "./controlPanel"
Item {
width: 1920
height: 1080
visible: true
// title: qsTr("Hello World")
View3D{
id:view3D
anchors.fill: parent
environment: sceneEnvironment
SceneEnvironment{
id:sceneEnvironment
backgroundMode: SceneEnvironment.Color
clearColor: "#456778"
}
DirectionalLight{
id:dircetionalLight
brightness: 100
}
PerspectiveCamera{
id:camera
z:500
}
Battery{
id:battery
battery_materialEmissiveColor: "red"
PropertyAnimation on eulerRotation.x{
duration: 10000
loops:Animation.Infinite
from:0
to:360
running: true
}
PropertyAnimation on eulerRotation.y{
duration: 10000
loops:Animation.Infinite
from:0
to:360
running: true
}
}
}
// CarView{
// anchors.fill: parent
// }
// ControlPanel{
// }
// BlobTest{
// }
}
用上述代码测试的效果图如下:
qmlscene 2023-08-17 15-34-01