Commit e13c2cb6 authored by Tomi Korpipää's avatar Tomi Korpipää
Browse files

Initial version

parent 1a625c02
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
*~
*.autosave
*.a
*.bak
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
build-*
translations.db*
# qtcreator generated files
*.pro.user*
*.qtds
*.db
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Binaries
# --------
*.dll
*.exe
import QmlProject
Project {
mainFile: "content/App.qml"
/* Include .qml, .js, and image files from current directory and subdirectories */
QmlFiles {
directory: "content"
}
QmlFiles {
directory: "imports"
}
JavaScriptFiles {
directory: "content"
}
JavaScriptFiles {
directory: "imports"
}
ImageFiles {
directory: "content"
}
Files {
filter: "*.conf"
files: ["qtquickcontrols2.conf"]
}
Files {
filter: "qmldir"
directory: "."
}
Files {
filter: "*.ttf;*.otf"
}
Files {
filter: "*.wav;*.mp3"
}
Files {
filter: "*.mp4"
}
Files {
filter: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag"
}
Files {
filter: "*.mesh"
directory: "asset_imports"
}
Environment {
QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf"
QT_AUTO_SCREEN_SCALE_FACTOR: "1"
QT_LOGGING_RULES: "qt.qml.connections=false"
QT_ENABLE_HIGHDPI_SCALING: "0"
/* Useful for debugging
QSG_VISUALIZE=batches
QSG_VISUALIZE=clip
QSG_VISUALIZE=changes
QSG_VISUALIZE=overdraw
*/
}
qt6Project: true
/* List of plugin directories passed to QML runtime */
importPaths: [ "imports", "asset_imports", "backend" ]
/* Required for deployment */
targetDirectory: "/opt/AuroraADAS"
qdsVersion: "3.0"
/* If any modules the project imports require widgets (e.g. QtCharts), widgetApp must be true */
widgetApp: true
multilanguageSupport: true
supportedLanguages: ["en"]
primaryLanguage: "en"
}
# Aurora ADAS
A high-end ADAS demo project that demonstrates some of the new features in QtQuick3D in Qt 6.3, such as particle weather effects and realtime reflections.
\ No newline at end of file
A high-end ADAS demo project that demonstrates some of the new features in QtQuick3D in Qt 6.3, such as particle weather effects, realtime reflections, and skeletal animation.
## Requirements
Qt 6.3 is required due to the features used in the demo. The following modules are needed in addition to the basic set:
- Qt Quick 3D
- Qt Quick Timeline
- Qt 5 Compatibility Module
- Qt Shader Tools
- Qt WebSockets
- qtquickdesigner-components (https://codereview.qt-project.org/admin/repos/qt-labs/qtquickdesigner-components)
## Keyboard Controls
|Key|Effect|
|--|--|
|1|Dawn lighting|
|2|Day lighting|
|3|Dusk lighting|
|4|Clear weather|
|5|Mist weather|
|6|Rain weather|
|7|Snow weather|
|8|ADAS mode|
|9|Side mode|
|0|Startup animation|
|space|Twisting road animation|
|*|Restart the overtaking animation|
import QtQuick
import QtQuick3D
Node {
property int arrowCount: 4
PrincipledMaterial {
id: dangerArrow_material
baseColor: "#ffcc0100"
roughness: 0.5
emissiveFactor: Qt.vector3d(0.9, 0.00162438, 0)
alphaMode: PrincipledMaterial.Opaque
}
Model {
id: dangerArrow_1
scale.x: 1.5
source: "meshes/dangerArrow_1.mesh"
materials: [
dangerArrow_material
]
}
Model {
id: dangerArrow_2
source: "meshes/dangerArrow_2.mesh"
visible: arrowCount > 1
materials: [
dangerArrow_material
]
}
Model {
id: dangerArrow_3
source: "meshes/dangerArrow_3.mesh"
visible: arrowCount > 2
materials: [
dangerArrow_material
]
}
Model {
id: dangerArrow_4
source: "meshes/dangerArrow_4.mesh"
visible: arrowCount > 3
materials: [
dangerArrow_material
]
}
}
{
"import_options": {
"calculateTangentSpace": {
"description": "Calculates the tangents and bitangents for the imported meshes.",
"name": "Calculate Tangent Space",
"type": "Boolean",
"value": false
},
"dropNormals": {
"description": "Drops normals for all faces of all meshes.",
"name": "Drop Normals",
"type": "Boolean",
"value": false
},
"fbxPreservePivots": {
"description": "Set whether the fbx importer will preserve pivot points (as extra nodes)",
"name": "FBX: Preserve Pivot Points",
"type": "Boolean",
"value": false
},
"findDegenerates": {
"description": "This step searches all meshes for degenerate primitives and converts them to proper lines or points.",
"name": "Find Degenerates",
"type": "Boolean",
"value": true
},
"findInstances": {
"description": "This step searches for duplicate meshes and replaces them with references to the first mesh.",
"name": "Find Instances",
"type": "Boolean",
"value": false
},
"findInvalidData": {
"description": "This step searches all meshes for invalid data, such as zeroed normal vectors or invalid UV coords and removes/fixes them. This is intended to get rid of some common exporter errors.",
"name": "Find Invalid Data",
"type": "Boolean",
"value": true
},
"fixInfacingNormals": {
"description": "Tries to determine which meshes have normal vectors that are facing inwards and inverts them.",
"name": "Fix Infacing Normals",
"type": "Boolean",
"value": false
},
"generateLightmapUV": {
"description": "Unwrap mesh to generate lightmap UV channel",
"name": "Generate lightmap UV channel",
"type": "Boolean",
"value": false
},
"generateMipMaps": {
"description": "Force all imported texture components to generate mip maps for mip map texture filtering",
"name": "Generate Mip Maps",
"type": "Boolean",
"value": true
},
"generateNormals": {
"description": "Generates normals for all faces of all meshes",
"name": "Generate Normals",
"type": "Boolean",
"value": false
},
"generateSmoothNormals": {
"description": "Generates smooth normals for all vertices in the mesh.",
"name": "Generate Smooth Normals",
"type": "Boolean",
"value": true
},
"globalScale": {
"description": "This step will perform a global scale of the model.",
"name": "Enable Global Scale",
"type": "Boolean",
"value": false
},
"globalScaleValue": {
"conditions": [
{
"mode": "Equals",
"property": "globalScale",
"value": true
}
],
"description": "Global Scale factor.",
"name": "Global Scale Value",
"type": "Real",
"value": 1
},
"improveCacheLocality": {
"description": "Reorders triangles for better vertex cache locality.",
"name": "Improve Cache Locality",
"type": "Boolean",
"value": true
},
"joinIdenticalVertices": {
"description": "Identifies and joins identical vertex data sets within all imported meshes.",
"name": "Join Identical Vertices",
"type": "Boolean",
"value": true
},
"optimizeGraph": {
"description": "A postprocessing step to optimize the scene hierarchy.",
"name": "Optimize Graph",
"type": "Boolean",
"value": false
},
"optimizeMeshes": {
"description": "A postprocessing step to reduce the number of meshes.",
"name": "Optimize Meshes",
"type": "Boolean",
"value": false
},
"preTransformVertices": {
"description": "Removes the node graph and pre-transforms all vertices with the local transformation matrices of their nodes.",
"name": "Pre-transform Vertices",
"type": "Boolean",
"value": false
},
"removeComponentAnimations": {
"description": "Removes any animation components from meshes.",
"name": "Remove Animation Components",
"type": "Boolean",
"value": false
},
"removeComponentBoneWeights": {
"description": "Removes any bone weights from meshes.",
"name": "Remove Bone Weight components",
"type": "Boolean",
"value": false
},
"removeComponentColors": {
"description": "Removes any Color components from meshes.",
"name": "Remove Color Components",
"type": "Boolean",
"value": false
},
"removeComponentNormals": {
"description": "Removes Normal component from meshes.",
"name": "Remove Normal Components",
"type": "Boolean",
"value": false
},
"removeComponentTangentsAndBitangents": {
"description": "Removes Tangents and Bitangents components from meshes.",
"name": "Remove Tangent Components",
"type": "Boolean",
"value": false
},
"removeComponentTextures": {
"description": "Removes any embedded texture components from meshes.",
"name": "Remove Texture Components",
"type": "Boolean",
"value": false
},
"removeComponentUVs": {
"description": "Removes any UV components from meshes.",
"name": "Remove UV Components",
"type": "Boolean",
"value": false
},
"removeRedundantMaterials": {
"description": "Searches for redundant/unreferenced materials and removes them.",
"name": "Remove Redundant Materials",
"type": "Boolean",
"value": false
},
"splitLargeMeshes": {
"description": "Splits large meshes into smaller sub-meshes.",
"name": "Split Large Meshes",
"type": "Boolean",
"value": true
},
"transformUVCoordinates": {
"description": "This step applies per-texture UV transformations and bakes them into stand-alone vtexture coordinate channels.",
"name": "Transform UV Coordinates",
"type": "Boolean",
"value": false
},
"useBinaryKeyframes": {
"description": "Record keyframe data as binary files",
"name": "Use Binary Keyframes",
"type": "Boolean",
"value": true
},
"useFloatJointIndices": {
"description": "Stores joint indices as floating point numbers for GLES 2.0.",
"name": "Use Float Joint Indices",
"type": "Boolean",
"value": false
}
},
"source_scene": "/home/tomi/Downloads/DangerArrow.gltf"
}
module Quick3DAssets.DangerArrow
DangerArrow 1.0 DangerArrow.qml
This source diff could not be displayed because it is too large. You can view the blob instead.
visibleInNavigator: true
canBeDroppedInFormEditor: false
canBeDroppedInView3D: true
import QtQuick
import QtQuick3D
Node {
eulerRotation.y: -90
// Materials
Texture {
id: albedo
source: "maps/Generic_SUV_2019_albedo.png"
}
Texture {
id: normal
source: "maps/Generic_SUV_2019_normal.png"
}
Texture {
id: specular
source: "maps/Generic_SUV_2019_specular.png"
}
DefaultMaterial {
id: bodypaint_material
specularRoughness: 0.5
specularAmount: 1.0
bumpAmount: 1.0
diffuseMap: albedo
normalMap: normal
specularMap: specular
}
// end of Materials
Model {
id: generic_SUV_2019_game_low
scale: Qt.vector3d(0.08, 0.08, 0.08)
source: "meshes/generic_SUV_2019_game_low.mesh"
materials: [
bodypaint_material
]
}
}
{
"import_options": {
"calculateTangentSpace": {
"description": "Calculates the tangents and bitangents for the imported meshes.",
"name": "Calculate Tangent Space",
"type": "Boolean",
"value": false
},
"dropNormals": {
"description": "Drops normals for all faces of all meshes.",
"name": "Drop Normals",
"type": "Boolean",
"value": false
},
"fbxPreservePivots": {
"description": "Set whether the fbx importer will preserve pivot points (as extra nodes)",
"name": "FBX: Preserve Pivot Points",
"type": "Boolean",
"value": false
},
"findDegenerates": {
"description": "This step searches all meshes for degenerate primitives and converts them to proper lines or points.",
"name": "Find Degenerates",
"type": "Boolean",
"value": true
},
"findInstances": {
"description": "This step searches for duplicate meshes and replaces them with references to the first mesh.",
"name": "Find Instances",
"type": "Boolean",
"value": false
},
"findInvalidData": {
"description": "This step searches all meshes for invalid data, such as zeroed normal vectors or invalid UV coords and removes/fixes them. This is intended to get rid of some common exporter errors.",
"name": "Find Invalid Data",
"type": "Boolean",
"value": true
},
"fixInfacingNormals": {
"description": "Tries to determine which meshes have normal vectors that are facing inwards and inverts them.",
"name": "Fix Infacing Normals",
"type": "Boolean",
"value": false
},
"generateLightmapUV": {
"description": "Unwrap mesh to generate lightmap UV channel",
"name": "Generate lightmap UV channel",
"type": "Boolean",
"value": false
},
"generateMipMaps": {
"description": "Force all imported texture components to generate mip maps for mip map texture filtering",
"name": "Generate Mip Maps",
"type": "Boolean",
"value": true
},
"generateNormals": {
"description": "Generates normals for all faces of all meshes",
"name": "Generate Normals",
"type": "Boolean",
"value": false
},
"generateSmoothNormals": {
"description": "Generates smooth normals for all vertices in the mesh.",
"name": "Generate Smooth Normals",
"type": "Boolean",
"value": true
},
"globalScale": {
"description": "This step will perform a global scale of the model.",
"name": "Enable Global Scale",
"type": "Boolean",
"value": false
},
"globalScaleValue": {
"conditions": [
{
"mode": "Equals",
"property": "globalScale",
"value": true
}
],
"description": "Global Scale factor.",
"name": "Global Scale Value",
"type": "Real",
"value": 1
},
"improveCacheLocality": {
"description": "Reorders triangles for better vertex cache locality.",
"name": "Improve Cache Locality",
"type": "Boolean",
"value": true
},
"joinIdenticalVertices": {
"description": "Identifies and joins identical vertex data sets within all imported meshes.",
"name": "Join Identical Vertices",
"type": "Boolean",
"value": true
},