Auf dieser Seite

Qt Quick 3D Physik-Cooking

Wenn ein Mesh als Kollisionsform verwendet wird, muss es verarbeitet und in ein Datenformat umgewandelt werden, um eine effiziente Kollisionserkennung zu ermöglichen. Dies wird als „Cooking“ bezeichnet. Es gibt drei Formtypen, die vor ihrer Verwendung „gekocht“ werden müssen, nämlich „ ConvexMeshShape “, „ TriangleMeshShape “ und „ HeightFieldShape “. Das „Cooking“ erfolgt automatisch im ersten Frame der Simulation, wenn eine dieser Formen verwendet wird. Dieses „Cooking“ kann zu merklichen Leistungseinbußen führen. Um schnellere Ladezeiten zu ermöglichen, ist es daher möglich, die Meshes vorab zu berechnen und direkt zu laden. Dazu gibt es zwei Möglichkeiten: die Verwendung eines Cache-Verzeichnisses oder des „Cooker“-Tools.

Cache-Verzeichnis

Um das Cache-Verzeichnis zu verwenden, setzen Sie die Umgebungsvariable „ QT_PHYSICS_CACHE_PATH “ auf ein Verzeichnis Ihrer Wahl. Beim ersten Start der Anwendung werden alle verwendeten Meshes „gekocht“ und in diesem Verzeichnis gespeichert. Bei den folgenden Ausführungen der Anwendung werden die bereits „gekochten“ Meshes von der Festplatte gelesen, anstatt erneut „gekocht“ zu werden.

Warnung: Die Dateien im Cache-Verzeichnis werden vor dem Laden nicht überprüft. Das Laden einer fehlerhaften oder nicht vertrauenswürdigen Cache-Datei kann Sicherheitsrisiken mit sich bringen. Anwendungsentwickler sollten dies sorgfältig abwägen, bevor sie „ QT_PHYSICS_CACHE_PATH “ auf ein Verzeichnis verweisen, auf das andere Benutzer oder Prozesse Schreibzugriff haben.

Cooker-Tool

Die andere Möglichkeit besteht darin, das Tool „ cooker “ zu verwenden. Erstellen Sie es und rufen Sie das Tool anschließend einfach mit dem Netz- oder Höhenfeldbild als Eingabeargument auf:

cooker input.mesh

oder

cooker input.png

Wenn die Eingabe ein Mesh ist, werden zwei Dateien generiert:

  • input.cooked.tri
  • input.cooked.cvx

Eine Datei ist ein „gekochtes“ Dreiecks-Mesh und die andere ein „gekochtes“ konvexes Mesh. Diese können dann einfach als Quellen für „ TriangleMeshShape::source “ und „ ConvexMeshShape::source “ verwendet werden, und die Meshes werden geladen, ohne dass ein „Cooking“-Vorgang erforderlich ist. Ähnlich wird, wenn die Eingabe eine Bilddatei ist, ein Höhenfeld namens „ input.cooked.hf “ generiert, das dann durch Verweis in der Eigenschaft „ HeightFieldShape::source “ geladen werden kann.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.