Fichier include de génération de ville

pour Persistence of Vision 3.1

Créé par Chris Colefax, 1er février 1999


Table des matières

  • Installation
  • Démarrage rapide
  • Informations sur les options
  • Options du fichier City Include
  • Options du fichier de macros de City
  • Options du fichier d'objets de City
  • Informations sur le copyright
  • Contacter l'auteur

  • Installation

    Le fichier Include de génération de ville City se compose de plusieurs fichiers: le fichier include en lui-même, City.inc, et les fichiers de macros et d'objets (City.mcr, Default.obj, Vehicles.obj, Offices.obj, Hotels.obj, et Flats.obj). Pour créer vos propres villes en utilisant ces fichiers, vous devez copier ces sept fichiers dans les répertoires appartenant au PATH de POV-Ray. Normalement, c'est le sous-répertoire INCLUDE du répertoire où vous avez installé POV-Ray, apr exemple (sur un système Windows 9x):

    C:\Program Files\POV-Ray for Windows v3.1\Include

    Si vous ne voulez pas installer les fichiers directement dans les répertoires de POV-Ray, vous pouvez créer u nrépertoire séparé pour installer vos fichiers, vous devrez alors ajouter ce répertoire dans le fichier INI de POV-Ray, par exemple, si vous installez les fichiers *.MCR dans D:\POVFILES\CITY, vous ajouterez la ligne suivante à POVRAY.INI:

    Library_Path=D:\POVFILES\CITY

    Notez qu'il est possible de bouger quelques uns voire tous les fichiers dans un sous-répertoire des répertoires de bibliothèques de POV-Ray. S vous choisissez de faire ça, vous devrez changer tous les #include "..." dans les fichiers include, de macros, d'objets, et dans les fichiers POV pour indiquer le chemin correct, par exemple, si vous avez installé les fichiers d'objets City dans un sous-répertoire (appelé OBJFILES) du répertoire principal INCLUDE, alors:

    #include "DEFAULT.OBJ" devra être changé en #include "OBJFILES\DEFAULT.OBJ" où qu'il apparaisse, et
    #include "HOTELS.OBJ" devra être changé en #include "OBJFILES\HOTELS.OBJ", etc.


    Démarrage rapide

    Le Fichier Include de génération de ville City contruit des villes en utilisant une combinaison des fichiers include, de macros et d'objets. Chacun de ces fichiers comprend différentes options pour changer le type de ville qui sera créée, vous pouvez aussi créer votre propre macro et/ou fichier d'objets pour créer des villes entièrement nouvelles et différentes.

    Le fichier include principal, City.inc orchestre la ville, et les options des fichiers inclus pour contrôler le positinnement des rues et des blocs de la ville. Le fichier de macro par défaut, City.mcr, construit ensuite la ville en plaçant les objets pour créer les rues, les trottoirs et les bâtiments. Ces objets sont définis dans les fichiers d'objets de City, qui contiennent des simples véhicules, des lampadaires, des arrêts de bus, des phares, ainsi qu'une sélection d'hôtels et d'immeubles d'habitation. Les bâtiments sont créés par empilage d'étages les uns sur les autres, ainsi tout, depuis d'immeuble à un étage jusqu'au gratte-ciel peut être généré.

    Pour créer une ville en utilisant les fichiers de macros et d'objets, vous devez juste déclarer toutes les options que vous voulez utliser, en ensuite inclure le fichier City.inc, par exemple:

    #declare traffic_spacing = 4;
    #declare traffic_lanes = 2;
    #declare city_block_count = <10, 5, 0>;
    #include "CITY.INC"

    Si vous voulez utiliser des fichiers d'objets personnalisés, vous devez les inclure avant d'inlure City.inc, par exemple:

    #include "Future.obj"
    #include "HoverVehicles.obj"
    #include "CITY.INC"

    Ceci créera une ville en utilisant les bâtiments et les véhicules définis dans les deux fichiers *.OBJ, plutôt qu'à partir des fichiers d'objets par défaut. Pour utiliser des fichiers de macros personnalisées, vous devez utiliser l'option city_macro_file.

    Notez que les objets personnalisés et les fichiers de macros peuvent avoir leurs propres options pour changer les caractéristiques de la ville, et ne doivent pas nécessairement intégrer toutes les options utilisées dans les fichiers par défaut (décrites dans les sections suivantes). Vous devriez consulter la documentation à propos des fichiers personnalisés pour être sûr que leurs options sont supportées.


    Informations sur les options

    Options du fichier City Include

    Les options suivantes s'utilisent avec City.inc, et vont modifier la ville sans tenir compte des macros personnalisées ni des fichiers d'objets (voir plus bas). Le générateur de ville crée les villes sur le plan x-z (l'axe y pointant vers le ciel). La ville est construite à partir d'une grille de blocs (contenant les bâtiments), séparés par des rues suivant les directions x et z. La ville est centrée sur l'origine, sa taille est déterminée par les diverses options décrites plus bas (voir city_corners). L'échelle utilisée est arbitraire, et sera généralement déterminée par les fichiers d'objets que vous utilisez. Dans le cas des fichiers d'objets par défaut, une unité correspond approximativement à un mètre.

    debug_progress
    Mettre cette option à true vous permettra de voir l'activité du Fichier Include de génération de ville lorsqu'il crée la cille. Les informations envoyées au flux de débuggage de POV-Ray contiennent la taille de la ville (dans le plan x-z). Cela peut être utile lors du calcul de grandes scènes, ou pour une utilisation avancée lorsque vous créez une macro personnalisée et/ou un fichier d'objets.
    city_macro_file
    Cette option correspond au nom du fichier qui contient la macro avec laquelle vous voulez que City.inc contruise votre ville. Par défaut, le fichier City.mcr est utilisé. Notez que vous n'êtes pas obligé de déclarer cette option si les macros sont définies directement dans votre scène POV (voir les scènes d'exemples réalisées avec le générateur de ville).
    city_block_count
    Cette option détermine le nombre de blocs urbains qui seront générés, chaque bloc étant entouré de trottoir et de rues. L'option peut être déclarée comme un vecteur, avec la composante x qui représente le nombre de blocs le long de l'axe x, et la composante y rerésentant le nombre de blocs le loong de l'axe z, apr exemple:

    #declare city_block_count = <6, 0, 4>;

    Ceci crée une ville faite de 6 x 4 blocs (soit un total de 24 bloc urbains). Vous pouvez aussi mettre cette option à un seul nombre, ce qui conduira à la génération du même nombre de blocs suivant les directions x et z, par exemple:

    #declare city_block_count = 6;

    Ceci crée 36 blocs urbains. La valeur par défaut pour city_block_count est 2 x 2 blocs.

    buildings_per_block
    Cette option détermine le nombre de buildings créés pour chaque bloc urbain. Comme l'option city_block_count, la valeur peut être un vecteur ou un nombre, par exemple:

    #declare buildings_per_block = 3;

    va créer neuf buildings dans chaque bloc (3 dans la direction x par 3 dans la durection z). La valeur par défaut de buildings_per_block est 3 x 2 buildings.

    street_width
    Cette option définit la largeur des rues séparant chaque bloc. Notez que si le fichier City.mcr est utilisé, cette valeur sera écrasée par les paramètres de trafic (que vous devriez utiliser à la place de l'option street_width). La valeur par défaut (quand City.mcr n'est pas utilisé) est 10 unités.
    pavement_width
    Cette option définit la largeur du trottoir entourant chaque bloc (sur les quatre côtés). La valeur par défaut est 4 unités.
    building_width
    Cette option définit la largeur et profondeur de chaque bâtiment de la ville. La valeur par défaut est 25 unités.
    building_gap
    Cette option détermine l'espacement entre deux buildings adjacents (c'est-à-dire la largeur des ruelles). La valeur par défaut est 2 unités.
    city_tileable
    Normalement toute la ville est entourée de rues (autour du rectangle qui borde la ville). Mettre cette option à true arrêtera la création de rues sur les côtés de la ville le long des axes +x et +z, ainsi plusieurs copies de la ville peuvent être mises bout à bout, par exemple:

    #declare city_tileable = true;
    #declare CityTile = #include "CITY.INC"
    
    object {CityTile} #declare CitySize = city_corner2 - city_corner1;
    object {CityTile translate x*CitySize} object {CityTile translate -x*CitySize} 
    object {CityTile translate z*CitySize} object {CityTile translate -z*CitySize}
    city_transform
    Cette option définit la transformation que vous souhaitez appliquer à toute la ville, par exemple pour convertir la ville dans un système de coordonnées direct:

    #declare city_transform = transform {rotate x*90 scale <-1, 1, 1>}

    city_corners
    Bien que ça ne sit pas une option que vous pouvez modifier, les vecteurs city_corner1 et city_corner2 seront déclarés lorsque vous inclurez City.inc. Les deux vecteurs se situent dans le plan x-z (les valeurs de hauteur ne sont pas incluses), et ils sont particulièrement utiles pour la création de villes en damier (voir city_tileable). Vous pouvez aussi utiliser les valeurs city_corner pour placer d'autres objets, des sources de lumière, la caméra, etc. Notez que cette valeur n'est affectée par aucun city_transform que vous pourriez avoir déclaré, donc vous devriez le prendre en compte si vous avez appliqué une transformation à votre ville.

    Options du fichier de macros de City

    Les options de cette section s'utilisent avec City.mcr, le fichier de macros par défaut utilisé par City.inc.

    city_seed
    Cette option initialise le générateur de nombres aléatoires utilisé pour créer la ville, et sa valeur peut être changée pour générer un autre arragement de véhicules et de bâtiments. La valeur par défaut de city_seed est 0, les nombres positifs et négatifs peuvent être utilisés (dans les limites des possibilités de POV-Ray).
    min_building_height et max_building_height
    Ces options définissent les hauteurs minimales et maximales (en unités) des bâtiments de la ville. Les valeurs par défaut sont la moitié de building_width, et le double de building_width (c'est-à-dire que les bâtiments sont entre 0.5 et 2 fois aussi hauts que larges). Normalement, les bâtiments les plus hauts sont au centre de la ville, et les plus petits sont sur les côtés (bien que l'option building_height_turb le change un peu).
    building_height_falloff
    Cette option contrôle la manière dont la taille des bâtiments change ente le centre et la périphérie. une valeur de 1 indique que la décroissance sera linéaire donc une ligne droite sera dessinée depuis le sommet des hauts buildings au milieu de la ville jusqu'aux petits bâtiments sur les côtés. de grandes valeurs donnent plus de petits que de grands bâtiments, tandis que de faibles valeurs donnent plus de grands buildings que de petits. La valeur par défaut de building_height_falloff est 2
    building_height_turb
    Cette option détermine le niveau d'aléas dans la hauteur des bâtiments. Lorsqu'elle vaut 0, la hateur des bâtiments n'est contrôlée que par la valeur de building_height_falloff, qui donne une allure très réguilère à la ville. De bonnes valeurs se situent entre 0 et 1, la valeur par défaut de building_height_turb est 0.5
    pavement_height
    Cette option détermine la hauteur des trottoirs (dans la direction +y, les rues sont au niveau y = 0). La valeur par défaut de pavement_height est 0.15 unités.
    traffic_spacing
    Cette valeur détermine la distance minimale entre les véhicules dans les rues. Mettre cette option à zéro stoppe la création de véhicules.
    traffic_lanes
    Cette option détermine le nombre de files de circulation créées dans les rues, dans une direction (par exemple, une valeur de 3 créera six files, trois dans chaque direction). La valeur par défaut de traffic_lanes est 1.
    traffic_width
    Cette valeur détermine la largeur d'une voie de circulation. Cette option est utilisée avec traffic_lanes pour calculer la largeur des rues (qui écrase la valeur de street_width que vous pourriez avoir déclarée). La valeur par défaut de traffic_width est 3 unités (qui donne une valeur par défaut pour street_width de 9 unités, suffisante pour une large voie avec un caniveau).

    Options du fichier d'objets de City

    Les options de cette section contrôlent les objets définis dans les fichiers par défaut de City (voir Installation). Les autres fichiers d'objets ne doivent pas nécessairement supporter toutes ces options.

    city_night
    Mettre cette optionà true active les caractéristiques de nuit des fichiers par défaut du générateur d'objets de City, incluant les fenêtres éclairées des bâtiments, les lumières sur les rues.
    windows_lit
    Si city_night est activé, vous pouvez utiliser cette option pour déterminer la proportion de fenêtres qui seront éclairées. Une valeur de zero indique qu'aucune fenêtre n'est éclairée, tandis qu'une valeur de 1 indique que toutes les fenêtres sont éclairées. La valeur par défaut de windows_lit est 0.33 (c'est-à-dire qu'un tiers des fenêtres est éclairé).
    windows_blend
    Cette option contrôle la transition entre les fenêtres éclairées et celles non éclairées. Une valeur de 0 n'indique aucun mélange, donc les fenêtres sont soit entièrement éclairées soit pas du tout. Une valeur de 1 indique que les fenêtres sont quelque part entre les deux extrèmes. La valeur par défaut de windows_blend est 0.25
    city_right_hand_drive
    Si l'option traffic_spacing est utilisée pour générer des véhicules dans les rues, vous pouvez mettre cette option à true pour faire rouler les véhicules du côté droit de la rue.
    max_building_types
    Comme expliqué ci-dessus, vous pouvez utiliser les fichiers d'objets personnalisés juste en les incluant avant d'inclure City.inc. Cette option détermine le nombre maximum de types de bâtiments que vous pourrez générer, soit en incluant le fichier d'objet, soit en définissant directement le bâtiment dans le fichier POV. La valeur par défaut est 100 signifie que vous n'aurez probablement jamais à vous occuper de cette option, mais vous pouvez augmenter ce nombre si nécessaire (ou le diminuer pour gagner un peu de mémoire).


    Informations sur le copyright

    Le fichier include du générateur de ville City, comprenant CITY.INC, CITY.MCR, toute la documentation, les exemples *.OBJ et *POV sont protégés par copyright par Chris Colefax. Pleine permission est accorée à l'utilisateur de modifier quelques ou tous les fichiers pour sa propre utilisation. Si des versions modifiées sont distribuées, l'utilisateur doit clairement y faire mension de ses modifications.

    Le fichier include du générateur de ville City, peut être distribué avec ou sans autre logiciel, sur CD-ROM, par voie d'affichage, par fichiers d'archive, du moment qu'il contient tous les fichiers associés, incluant toute la documentatione et les exemples. Je demande également que les personnes souhaitant distribuer le Paquetage City de cette manière ou autrement me contactent pour s'assurer qu'elles possèdent bien la denière version disponible.

    De plus, aucune restriction d'aucune sorte n'est fixée quant à l'usage des fichiers include en eux-mêmes, et les fichiers et les images créés en utilisant les fichiers include restent propriété de l'utilisateur ou des utilisateurs qui les ont créés. Je décine toute responsabilité pour les dommages et les pertes éventuelles résultant de l'utilisation des fichiers include ou de n'importe quelle partie du paquetage.


    Contacter l'auteur

    Si vous souhaitez me contacter pour me signaler des bugs, des bugs réparés, des critiques, des commentaires, des suggestions d'améliorations, des questions, etc. vous pouvez me joindre par email à:

    ccolefax@geocities.com

    ou par courrier à l'adresse:

    Chris Colefax
    PO Box 110
    Kuranda, Queensland
    Australia 4872


    Traduit de l'anglais par Pierre Schwartz

    POV-RayTM et Persistence of VisionTM sont des noms déposés par POV-Ray TeamTM