Qt 5.4 : vérification de la syntaxe QML

En QML, une erreur des plus fréquentes concerne la syntaxe des fichiers QML et JavaScript — y compris dans des applications en production, principalement pour des composants chargés de manière asynchrone. La plupart de ces erreurs ne sont que des typos, mais elles restent fort ennuyantes et facilement évitables.

Pour éviter ce genre d’erreurs, Qt 5.4 proposera un outil en ligne de commande pour vérifier la syntaxe des fichiers QML. Il est prévu notamment pour s’intégrer facilement aux outils d’intégration continue, tout comme xmllint et json_verify sont utilisés pour les fichiers XML et JSON, respectivement :

$ qmllint ClickableImage.qml
ClickableImage.qml:17 : Expected token `numeric literal'

$ find -type f -name \*qml -exec qmllint \{\} +
./qml/SettingsPage.qml:35: Unexpected token `if'
./qml/AboutPage.qml:35: Expected a qualified name id

Cet outil ne fait que de la vérification syntaxique, pas sémantique : en cas d’erreur dans un nom de variable, par exemple, l’outil sera incapable de le détecter. La vérification de ce genre d’erreur est bien plus difficile, car la sémantique dépend également du contexte de l’application en cours d’exécution.

Bar.qml:1 TypeFoo is not a type
Bar.qml:2 module "QtQuickControls" is not installed
Bar.qml:6:9: QML Rectangle: Cannot anchor to an item that isn't a parent or
sibling.

Source : KDAB contributions to Qt 5.4: qmllint

Sortie de PhysX 3.3.2 et d’APEX 1.3.2

De nouvelles versions de PhysX et APEX sont sorties (respectivement le moteur physique de NVIDIA, notamment utilisé dans l’Unreal Engine, et une série d’extensions adaptées aux artistes, utilisables indépendamment de PhysX). Outre les habituelles améliorations de performances et corrections de défauts, parmi les principales nouveautés côté PhysX, de nouvelles plateformes sont prises en charge : l’accélération GPU est désormais disponible pour Linux, tandis que le moteur fonctionnera sur les périphériques Android avec un processeur x86 (les processeurs ARM étant déjà gérés depuis la 3.3.0). Également, la documentation a été fortement restructurée et modifiée.

Le module APEX Destruction, qui gère la destruction d’objets, peut désormais employer la fracturation de Voronoï en temps réel (il fallait précédemment utiliser un modul de précalcul). Par contre, la simulation des corps rigides n’est plus possible sur le GPU (il semblerait que ce solveur avait des limitations et que ce mouvement est la première étape d’une migration vers FLEX, l’architecture unifiée de solveur GPU prévue pour PhysX 3.4).

Pour la simulation de tissus de APEX Clothing, le niveau de détail sera, dès la prochaine version, entièrement géré par l’utilisateur : le niveau de détail physique, qui utilisait un budget maximal pour tous les tissus afin d’adapter le niveau de détail de la simulation à l’impact sur l’image affichée, est désormais déprécié, le moteur de jeu sera chargé de ces détails.

Côté APEX Particles et Turbulence, la principale modification est que les GPU de génération antérieure à Fermi ne permettront plus l’accélération.

En plus de ces modifications, les ingénieurs de NVIDIA ont également travaillé sur la simulation de brins d’herbe avec NVIDIA Turf Effects, une technologie prévue pour la simulation de grandes étendues d’herbe avec des interactions physiques (avec des formes aussi simples que des cubes ou bien nettement plus complexes). Les brins peuvent être représentés avec trois triangles chacun, jusqu’à plusieurs centaines pour un plus haut niveau de détail, ce qui permet de gérer plusieurs millions de brins avec une haute fidélité (y compris pour l’éclairage et les ombres). L’intérêt pourrait être de visualiser, dans un jeu vidéo, les emplacements où une bataille a eu lieu. Ce module devrait être disponible début 2015 pour PC (DirectX 11).

Sources : PhysX SDK 3.3.2 arrives, adds GPU acceleration support on Linux, APEX SDK 1.3.2 is available, NVIDIA Turf Effects.

Mise à jour (3 novembre) : les extensions pour Autodesk Maya et 3ds Max sont également mises à jour, avec principalement des corrections de défauts. Téléchargement : GameWorks Download Center. Source : New PhysX plug-ins offer support for 3ds Max and Maya 2015.