L'ensemble de données Caldera est une scène OpenUSD contenant la plupart de la géométrie trouvée dans la carte Call of Duty®: Warzone™ du même nom. Il ne s'agit pas des données de production réelles, mais plutôt d'une conversion de parties de celles-ci au format de fichier USD open source.
Les données incluses sont en grande partie celles qui sont facilement représentées sous forme géométrique. Cela inclut la géométrie rendue mais également certaines représentations alternatives, généralement invisibles, utilisées dans d'autres calculs. Par exemple, nous incluons des volumes pour faciliter les calculs d'éclairage ou des formes simples pour la détection de collisions. Sont exclues de nombreuses entités ponctuelles telles que l'endroit où apparaître les personnages ou les modèles complexes basés sur des scripts. Nous avons également choisi de ne pas inclure de textures et de matériaux dans cette version. Cela ajouterait de la complexité et de la taille à une scène déjà lourde. Nous nous concentrons sur les nombreuses relations entre les éléments spatiaux à découvrir dans cet ensemble plutôt que sur une représentation visuelle précise.
Nous espérons que la publication de cet ensemble de données stimulera la recherche universitaire dans des domaines liés à la construction et à l’analyse de la géométrie environnementale pour lesquels il n’existait auparavant aucune réplique de données de production à cette taille et à cette échelle. Il y a eu de nombreuses recherches dans le domaine de la génération d'images et des travaux naissants sur la génération géométrique, mais ils s'inscrivent généralement dans le cadre d'un seul actif et non sur une grande scène interconnectée avec une parentalité complexe et d'autres aspects sémantiques, souvent implicites. relations. De plus, bien qu'il y ait eu un certain intérêt pour la génération d'espaces environnementaux, par exemple pour une utilisation dans le rendu de scènes de catalogue statiques, il n'y a pas eu autant de travail consacré à l'édition et à la mise à jour de ces environnements une fois qu'ils ont été créés. Des améliorations dans ce domaine pourraient permettre aux artistes et aux créateurs de contenu travaillant sur des jeux de se concentrer davantage sur le travail créatif consistant à donner vie à leurs idées et moins sur les opérations mécaniques des instances en mouvement répétées, le réajustement des objets adjacents au repos, le placement manuel des nœuds pour la prise en charge du gameplay, et bientôt.
Cet ensemble de données est publié selon les termes du contrat de licence d'utilisation non commerciale d'Activision. Veuillez consulter LICENSE.md pour plus de détails.
La carte originale de Caldera a été principalement créée par l'équipe de Raven Software, avec l'aide de Beenox, High Moon Studios et des équipes plus larges de Call of Duty d'Activision.
La publication de l'ensemble de données Caldera est soutenue par Koen Vroeijenstijn, Mathew Varghese, Xav de Matos, Senwhaa Lim, Michael Vance et Natasha Tatarchuk.
Merci aux membres du personnel et des professeurs de Pixar, NVIDIA, SideFX et Stanford pour leurs premiers commentaires sur l'ensemble de données.
Veuillez utiliser le système de suivi des problèmes associé pour soumettre une demande.
Axe haut : Z
Unités : pouces
La partie pertinente de la scène couvre environ 2 miles sur 2 et contient environ 17,5 millions de primitives avec plus de 2 milliards de points au total.
Voici quelques étapes rapides pour commencer à explorer les données. Ces étapes sont affichées dans USDView, mais devraient être transposées dans d'autres outils.
À partir du répertoire dans lequel vous avez cloné le référentiel ou extrait l'archive de version, exécutez :
usdview caldera.usda
Ce point de départ devrait se charger presque instantanément, car il charge par défaut une représentation très légère de la scène. Cela devrait faire apparaître une fenêtre USDView similaire à celle ci-dessous :
Les cases grises au centre font partie des annotations de scène, elles ne sont pas utilisées lors du rendu de la carte. Cachons-les. Dans USDView, cela se fait en basculant les objectifs d'affichage "guide" dans le menu d'affichage Affichage, Objectifs d'affichage :
Vous devriez maintenant voir la scène entière représentée sous forme de proxys et une collection de points. Nous reviendrons sur ces points plus tard, en explorant d'abord la géométrie. Trouvons une section et chargeons une représentation plus détaillée. Pour modifier le point de vue, utilisez la touche Alt et les boutons de la souris pour parcourir la vue. La scène USD définit également plusieurs caméras pour avoir une meilleure vue. Commencez par parcourir /cameras/map_capital_square
. Dans le menu de la vue, choisissez Caméra, Sélectionnez la caméra, map_capital_square. Cela devrait vous montrer une version très approximative de la géométrie dans la section « capitale ».
La chose suivante est de sélectionner une "primitive" dans la vue schématique. Les primitives ne sont que des nœuds adressés par un chemin. Sélectionnez la prim /world/mp_wz_island/mp_wz_island_paths/mp_wz_island_geo/map_capital
. Vous pouvez le faire en parcourant l'arborescence pour trouver ce chemin. , ou collez le chemin complet dans la barre d'adresse en haut.
Si vous regardez le volet de métadonnées d'USDView avec cette prim sélectionnée, vous verrez un champ de variante « district LOD ». Ici, vous pouvez choisir comment cette partie de la scène est représentée. Actuellement, celui-ci est défini sur "proxy", qui est une soupe de polygones brute que nous avons créée en tant que proxy. Allez-y et passez à "complet" :
Cela prendra un certain temps car il charge toute la géométrie dans cette branche du graphe de scène et remplace la primitive poly-soupe par la géométrie réelle et toutes les primitives représentant la scène. Si vous effectuez un zoom arrière, vous remarquerez que le sol (la géométrie violette) est encore assez accidenté. Le terrain est défini dans une partie différente de la scène.
Pour charger le terrain, sélectionnez :
/world/mp_wz_island/mp_wz_island_paths/mp_wz_island_geo/st_main/st_o
Et sélectionnez « complet » pour la variante LOD ici également :
Cela passe à la représentation la plus élevée du terrain. Cela inclut le fouillis (tous les petits objets comme l'herbe placés sur le terrain, représentés par une instance ponctuelle). Si les petits détails comme l'herbe et les arbres n'apparaissent pas à ce stade, c'est peut-être parce que l'objectif de « rendu » est masqué. Le fouillis est marqué dans ce but pour faciliter son masquage lorsqu'il ralentit trop le rendu de la scène. Pour les afficher, assurez-vous d'avoir coché Affichage, Objectif, Rendu.
Nous avons maintenant chargé tous les détails dont nous disposons pour cette section de la carte. L'ensemble de données comprend également un fichier Python ( caldera.py
) contenant un exemple de la façon de réaliser plusieurs de ces choses dans un script. C'est ainsi que le caldera.usd a été généré à partir de map_source/mp_wz_island.usd
. Pour simplement inspecter les données via Python, vous pouvez installer les liaisons Python OpenUsd via Pip.
Revenons aux données ponctuelles que nous avons vues plus tôt. En plus de la géométrie de la scène, nous avons inclus deux types de données de joueur. Ceux-ci sont représentés sous forme de nuages de points lors du chargement du fichier Caldera USD. Masquons la géométrie de la scène pour les explorer plus facilement. Dans le plan, réduisez l'arborescence jusqu'à ce que seuls les joueurs, les caméras et les primitives du monde soient visibles. Basculez maintenant la visibilité de la branche mondiale. Cela masquera toute la géométrie et ne laissera que les points.
Le premier ensemble de données à examiner se trouve sous /players/endpoints/points_0
. Cette primitive contient un million de points représentant l'endroit où les joueurs ont terminé un match. Les points stockent une position, mais aussi une couleur et un attribut temporel. L'exemple caldera.py
montre comment y accéder par programmation.
L'attribut time a été capturé à partir des matchs réels et représente le temps écoulé entre le début du match et la fin du match pour chaque joueur (la valeur varie selon le point).
La couleur est générée par post-traitement, à titre d'exemple de la façon dont vous pouvez visualiser ces données. La couleur représente la densité du nuage de points, le rouge représentant les zones où de nombreux joueurs ont terminé le match et le bleu représentant les emplacements les plus rares.
Il y a un autre nuage de points dans l'ensemble, sous la primitive du fil d'Ariane. Vous pouvez masquer les points de terminaison, mais rien n'apparaîtra. Le fil d'Ariane stocke des échantillons variant dans le temps et l'un des attributs animés est l'opacité. Ils sont tous entièrement transparents tant que le joueur n'est pas encore apparu dans le match. Vous pouvez afficher des points en parcourant la chronologie en bas de la fenêtre. Les petites sphères sont plus faciles à voir en mode d'ombrage Points :
Chaque sphère est un seul joueur dans un seul match. La position de ce joueur pendant le match est échantillonnée environ une fois toutes les deux secondes et stockée dans l'attribut position. La couleur provient à nouveau d'un post-traitement, où le bleu représente les joueurs au début de leur match, et le rouge signifie qu'ils sont proches de la fin du match. Ceci est également stocké dans l'attribut "vie" qui représente le début à la fin sous forme de nombre de zéro à un, avec des valeurs négatives signifiant que le joueur n'est pas encore dans le jeu, et des valeurs supérieures à un signifient également que le joueur n'est plus en jeu. . Non inclus dans la version, mais montré à des fins d'illustration, vous pouvez « relier les points » pour montrer les chemins des joueurs. Voici tous les joueurs d'un même match :
Une autre façon de réduire la charge immédiate sur le système lors du chargement de la carte est de ne pas charger les « charges utiles ». Nous avons marqué de nombreux nœuds feuilles coûteux comme charge utile tout en laissant suffisamment de géométrie pour donner une représentation décente. Par exemple:
usdview –unloaded map_source/mp_wz_island.usd
Veuillez noter que cela prend encore beaucoup plus de temps que la méthode décrite précédemment. N'oubliez pas de redéfinir l'ombrage sur autre chose que les points :
Une troisième façon de gérer la complexité consiste à charger une sous-section de la carte. Au total, plusieurs milliers de fichiers USD composent cet ensemble.
L’hôtel est un bâtiment de la carte qu’il est amusant d’explorer seul. Vous pouvez charger uniquement cette partie de la carte en commençant par :
usdview map_source/prefabs/br/wz_vg/mp_wz_island/commercial/hotel_01.usd
Tout le terrain vit dans une branche distincte de l’arbre. Pour la plupart des autres préfabriqués, le chargement d’une sous-section du terrain est nécessaire pour obtenir une image complète. Par défaut, caldera.usda
chargera une version simplifiée du terrain pour toute la carte. Tous les enfants sous la prim "st_main" ont un ensemble de variantes appelé "district_lod" pour basculer entre la représentation simple et complète. Le fouillis (petits objets dispersés sur le terrain) a pour "but" le rendu, il peut donc être activé et désactivé avec un paramètre global.
L'intégralité du terrain est accessible à travers cette scène :
map_source/prefabs/br/wz_vg/mp_wz_island/superterrrain/st_main.usd
Les images ci-dessous montrent des exemples de la représentation simple et de la représentation complète montrant le fouillis sous la forme d'un nuage de points d'instance.
Le terrain lui-même est divisé en sections, en charger une seule facilite l'exploration, par exemple :
map_source/prefabs/br/wz_vg/mp_wz_island/superterrrain/season_4/st_e.terrain.usd
Ce sont quelques points de départ amusants pour explorer davantage la Caldera.
map_source/prefabs/br/wz_vg/mp_wz_island/commercial/hotel_01.usd
map_source/prefabs/br/wz_vg/mp_wz_island/commercial/restaurant_01.usd
map_source/prefabs/br/wz_vg/mp_wz_island/season_4/map_capital.usd
map_source/prefabs/br/wz_vg/mp_wz_island/season_4/map_airfield.usd
map_source/prefabs/br/wz_vg/mp_wz_island/season_4/map_phosphate_mine.usd
map_source/prefabs/br/wz_vg/mp_wz_island/season_4/map_beachhead.usd
map_source/prefabs/br/wz_vg/mp_wz_island/map_tile_n/power_station_01.usd
Copyright © 2024 Activision Publishing, Inc.