Inventif, l'idée est pas con est rend bien
Dites à propos de reflets spirit of half life n'avait pas une entité bloc qui gérait ça?
C'est possible, j'ai entendue parler d'un truc comme ca, mais c'est pas un reflet totale("ca tient plus d'une astuce"), mais en fait j'ai beau chercher un tuto pour sohl en francais je ne trouve pas !
La fameuse table de commandes dans le chapitre Tension en surface de Half-Life... Un truc assez impressionnant pour un débutant du mapping. Et pourtant pas si dur que ça.
Commencez par créer une zone à bombarder. Moi je vais travailler sur ce truc horrible :
Comme vous le voyez, j'ai mis un CLIP (pour ne pas faire tomber le joueur dans le champ de bombardement) et surtout une marge d'environ 64 unités autour de la zone à bombarder. C'est important car l'Air Force n'a pas une précision parfaite (vous pouvez tout de même la régler).
Placez près de la skybox une entité bloc AAATRIGGER. Faîtes attention à ce qu'elle soit bien au dessus de la zone à bombarder (voir la vue Top)
Transformez donc ce bloc en entité func_mortar_field et mettez-y les paramètres suivants :
Donnée (SmartEdit off)
Donnée (SmartEdit on)
Signification
Valeur
m_flSpread
Spread Radius
Précision de l'Air Force
64
m_iCount
Repeat Count
Nombre de bombes lâchées par attaque
6
m_fControl
Targeting
Comment l'Air Force choisira sa cible
2(Table)
m_iszXController
X Controller
Le levier (ou valve) contrôlant l'abscisse de l'endroit à bombarder
mortar_x_lever
m_iszYController
Y Controller
Le levier (ou valve) contrôlant l'ordonnée de l'endroit à bombarder
mortar_y_lever
targetname
Name
Nom de la zone (pour donner l'ordre de bombarder)
mortar
Placez ensuite la table de commandes. Pour des raisons d'optimisation, je vous conseille de placer les blocs comme ceci :
Mettez-y des barres avec la texture YELLOW qui représenteront l'abscisse et l'ordonnée pour l'Air Force. Retenez bien qu'au départ, le point est aux cordonnées 0;0 qui correspondent au coin inférieur-gauche de la zone à bombarder.
Changez séparément ces barres en momentary_door et appliquez les paramètres suivants :
Donnée (SmartEdit off)
Donnée (SmartEdit on)
Signification
Valeur
angles
Pitch Yaw Roll (Y Z X)
Indiquez la direction opposée à celle où va la barre
0 180 0
speed
Speed
La vitesse (en pouces par secondes) que met la barre à se déplacer
Lip/Temps = 16
lip
Lip
Distance que parcourt la barre (en pouces)
63
targetname
Name
Nom de l'entité appelée par le levier correspondant
mortar_x_bar
Donnée (SmartEdit off)
Donnée (SmartEdit on)
Signification
Valeur
angles
Pitch Yaw Roll (Y Z X)
Indiquez la direction opposée à celle où va la barre
0 270 0
speed
Speed
La vitesse (en pouces par secondes) que met la barre à se déplacer
Lip/Temps = 16
lip
Lip
Distance que parcourt la barre (en pouces)
63
targetname
Name
Nom de l'entité appelée par le levier correspondant
mortar_y_bar
Vos barres sont prêtes, mais pas vos leviers. Créez deux leviers qui contrôleront chacun une des deux barres. N'oubliez pas le bloc ORIGIN, transformez-les en momentary_rot_button, et appliquez les paramètres suivants :
Donnée (SmartEdit off)
Donnée (SmartEdit on)
Signification
Valeur
targetname
Name
Nom de l'entité dont a besoin la zone de bombardement
mortar_x_lever
target
Target
Nom de la barre indiquant l'abscisse du point à bombarder
mortar_x_bar
speed
Speed
La vitesse en degrés par seconde à laquelle le levier tourne
Distance/Temps = 22
distance
Distance (deg)
La mesure en degrés à laquelle le levier tourne pour un mouvement complet
90
Donnée (SmartEdit off)
Donnée (SmartEdit on)
Signification
Valeur
targetname
Name
Nom de l'entité dont a besoin la zone de bombardement
mortar_y_lever
target
Target
Nom de la barre indiquant l'ordonnée du point à bombarder
mortar_y_bar
speed
Speed
La vitesse en degrés par seconde à laquelle le levier tourne
Distance/Temps = 22
distance
Distance (deg)
La mesure en degrés à laquelle le levier tourne pour un mouvement complet
90
Pour ces deux leviers, rendez-vous à l'onglet Flags et cochez-y X Axis ou Y Axis selon l'angle autour duquel vos leviers tourneront. Dans mon cas ils tourneront autour de l'axe Y.
Il ne vous reste plus que le bouton pour donner l'ordre à l'Air Force de bombarder l'endroit sélectionné. Créez un bouton du type que vous souhaitez. Un button_target devrait suffire. Moi j'ai mis un func_button.
Donnée (SmartEdit off)
Donnée (SmartEdit on)
Signification
Valeur
angles
Pich Yaw Roll (Z Y X)
La direction à laquelle le bouton se dirigera
90 0 0
target
Target
Cible du bouton, en l'occurrence la zone de bombardement
mortar
speed
Speed
La vitesse en pouces par secondes à laquelle le bouton descend
5
lip
Lip
La distance à laquelle le bouton descend (valeur négative)
-1
wait
delay before reset (-1 stay)
La durée minimale entre deux bombardements
4
Si tout a bien été configuré, vous obtenez une magnifique table de commandes vous permettant de donner l'ordre à l'Air Force de démolir tous vos ennemis !
Amusez-vous bien à tout casser !
Compiler en mode expert
Le Batch Compiler, c'est bien. Mais il y a deux solutions encore meilleures : Écrire ses propres batchs avec Bloc-Notes ou bien compiler en mode Expert sur Hammer !
Donc pour ouvrir la fenêtre de compilation, cliquez sur l'icône Run Map , rendez-vous dans File\Run ou appuyez tout simplement sur F9.
Vous vous trouvez nez-à-nez avec cette fenêtre :
Or, vous devriez le savoir, le mode normal de la fenêtre de compilation n'offre que très peu de possibilités. Il vous permet juste de régler la quantité de travail que vous fourniront vos compilateurs.
Cliquez sur le bouton Expert. Maintenant on peut commencer à s'amuser !
Ça m'a l'air bien compliqué. Comment utilise-t-on ça ?
Tout d'abord, vous voyez que vous pouvez utiliser différentes configurations selon le jeu/mod pour lequel vous mappez. Libre à vous de créer, modifier ou supprimer des configurations.
À droite, vous constatez trois tickboxes. Use Long filenames vous permet d'activer les noms longs. Voici quelques exemples qui vous permettent de comprendre :
Exemple de nom court
Exemple de nom long
HALFLIFE.TXT
HalfLife.txt
PROGRA~1
Program Files
Les noms courts imposent donc une limite de 8 caractères avant le point, 3 après et tout en majuscule. Un ~X indique pour les noms trop longs la suite du nom du dossier/fichier en suivant l'ordre alphabétique. L'utilisation des noms longs vous simplifie donc la vie.
Pour Ensure file post-exists, je ne sais pas à quoi ça correspond.
Use Process window permet si vous désactivez la case de masquer la partie du log concernant cette commande, ce que je ne vous conseille pas de faire. Néanmoins ces trois tickboxes ne sont pas le centre de la compilation. Regardez plutôt à gauche !
Le champ Compile/run commands vous présente la suite des commandes exécutées pour compiler la map. Cliquez sur l'une d'entre elles pour les modifier juste en haut. Les tickboxes à gauche de chaque commande vous permettent de les désactiver. Juste à droite, les boutons New et Remove servent respectivement à ajouter ou supprimer des commandes.
Comment éditer ses commandes ? C'est très simple !
Vous avez deux champs : Command et Parameters. Dans le champ Command, cliquez sur le bouton Cmds pour accéder à une liste de commandes pré-faites. Vous pouvez lancer un programme comme le RipEnt pendant la compilation (Executable), vous déplacer dans les dossiers (Change Directory), vous pouvez copier des fichiers (Copy File), en supprimer (Delete File) ou bien les renommer (Rename File). Juste en dessous vous avez plusieurs commandes vous permettant de lancer les compilateurs CSG, BSP, <acronym title="Visibility">VIS</acronym>, LIGHT (ancien nom de <acronym title="Radiosity">RAD</acronym>) et lancer le jeu pour lequel vous mappez !
Mais qu'est une commande sans ses paramètres ? Par exemple, au début vous voyez un Change Directory permettant de se déplacer dans les dossiers. Mais où va-t-on !? Juste en dessous de Command, Parameters indique $exedir. Le bouton Parms à droite vous permet d'accéder à une liste de paramètres tels que le nom de la map sans son extension (Map Filename (no extension)) ou avec (Map Filename (with extension)), le dossier où se trouve votre map (Map Path (no filename)) ; et juste en dessous le dossier où se trouve l'exécutable de votre jeu (Game Executable Directory), le dossier des maps de votre jeu (BSP Directory), le dossier de votre jeu (Game Directory) et le dossier du mod (Mod Directory). Pour rappel le mod Half-Life correspond au dossier valve, Counter-Strike à cstrike, Opposing Force à gearbox. Mod Directory désigne ce dossier et Game Directory celui juste avant.
On peut aller encore plus loin. Vous voyez que j'ai ajouté des paramètres supplémentaires à mes compilateurs ! Eh bien c'est là que le mode avancé peut remplacer le Batch Compiler ! En fait, chaque champ de texte, liste de choix, tickbox etc du Batch Compiler correspond à un paramètre qu'on peut écrire dans le champ Parameters. Ainsi, pour faire un wadinclude par exemple, il me suffit d'envoyer le paramètre -wadinclude monwad.wad à la commande correspondant à CSG. Vous souhaitez avoir la liste des différents paramètres des ZHLT ? Pas de problème, la voici : http://zhlt.info/command-reference.html
Vous avez un descriptif des paramètres pour chaque compilateur. Shared correspond aux paramètres disponibles dans tous les compilateurs. Pour une compilation finale, voici les paramètres intéressants :
CSG
-cliptype precise : Améliore la disposition des clipnodes de façon à réduire leur nombre et à faire en sorte que le joueur se coince moins
-noskyclip : À utiliser seulement si le joueur ne peut pas toucher le ciel, permet de rendre le ciel non solide. Cela permet d'accélérer le travail de VIS et de réduire la consommation de mémoire de votre map
-wadautodetect : Désactive les wads inutilisés dans votre map de façon à ne pas avoir à déplacer cstrike.wad dans les dossiers de HL pour faire tourner une map qui n'utilise aucune texture de CS
-wadinclude fichier.wad : Pour inclure des wads à la map, à utiliser avec tous les wads non-officiels utilisés
VIS
-full : Permet à VIS de faire tout le travail
-maxdistance X : Change la distance maximale visible par le joueur
RAD
-extra : Adoucit les ombres pour enlever l'effet pixelisé
Ouais j'avais lu un tuto sur le sujet, c'est pas mal du tout pour mettre un peu de piment.
Le truc si tu veux un peu d'originalité, utilise des textures custom, fais un screen de ta map en top et
travaille le sur un soft de retouche, et un dernier truc moi je trouve qu'il vaut mieux virer les sons des
momentary ils font très "porte rouillé/hydraulique".
Et pour SoHL tu sais les tutos anglais sont pas si compliqués, t'es pas anglophobe si?
Ah oui dans ce cas. Essaie un petit peu tu vas voir c'est facile comme langue,
et puis dans le pire des cas tu peux traduire la page, mais bon ce sera crade.
Voici comment obtenir cette effet: Rendu
Faites une lampe normale de préférence en func_wall ou autre et appliquez une light.
Prenez la texture du mur de la lampe, puis assombrissez là, et faites un dégradé qui part de la lampe. Une fois la texture crée, créez un un func_illusionary collé au mur de la lampe d'une unité d'épaisseur en "V" et appliquer le texture sur la face principale: Comme ca
Appliquer ensuite en transparence le mode additive et c'est bon!
Pour une lampe qui s'éteint, il faut juste transformer le func_illusionary en func_wall_toggle avec le même nom que la lampe.
Si vous ne voulez pas créer de nouvelles textures, créez le bloc en forme de "V" avec la texture du mur, découpez ensuite en plusieurs bandes horizontales régulières (comme ca), transformez chaques bouts en func_illusionarymode:additive et la valeur du render:mode doit baisser jusqu'a un chiffre proche de 0 plus on s'éloigne de la lampe!
De jolies faisceaux!
Voilà diverses astuces pour créer des faisceaux lumineux!
Solution n°1
La première solution pour créer un faisceau lumineux est d'utiliser les blocs! Pour cela il faut une texture de dégradé qu'il existe déjà dans halflife.wad (tapez "fad" et la liste apparaitra) et créez votre faisceau avec la texture ainsi.
Transformez votre faisceau en func_illusionary et appliquez lui les attributs: Render Mode: Additive
FX Amount : 20 (plus ou moins, il faut ajuster en fonction des cas).
Recréez maintenant le même faisceau (copier-coller) au même endroit mais avec le Vertex Tool élargissez légèrement sa base (de l'ordre d'1 à 5 unités, ca dépend de la taille du faisceau) (ou son arrivé) comme ceci.
Diminuez ensuite son "render mode" de 5 environ.
Répétez cette action une fois par rapport au dernier faisceau créé.
Répétez cette action mais cette fois ci paramètrez le FX Amount à 2 à 4 et élargissez bien plus la base de l'ordre de 10 à 14 unités envirion.
Voilà le résultat!
Magnifique non ? Mais ca peut s'améliorer!
Comment? Il suffit de créer des env_sprite avec (ceci est un exemple, le sprite ainsi que les autres paramètres peuvent changer!) render mode: Additive
FX Amount : 15 (environ il faut ajuster selon les cas)
Scale : 0.3
Il faut en mettre quelques un un peu dispersé à l'intérieur du premier faisceau (le plus petit)! Aucun ne doit dépasser!
Ceci dit, vous pouvez en mettre dans le dernier faisceau(le plus grand) mais il ne devront pas toucher les autres faisceaux et avec comme FX Amount: celle du dernier faisceau.
Le rendu est mieux si le Render mode diminue en fonction de son éloignement par rapport au centre du faicseau!
Solution n°2
Voilà une solution bien plus lente et complexe, et de plus elle nécessite beaucoup d'entités. Mais le résultat est impréssionant!
Cette technique se joue grâce aux env_sprite. Créez en un sur votre source de lumière, là d'où votre faisceau partira. Comme ca
Encore une fois, les attributs et valeurs que je vais donner sont ajustables en fonction des cas: render mode: Additive
FX Amount : 20 (à ajuster en fonction de l'air de votre salle (si vous voulez simulez qu'il y ait beaucoup de poussière, mettez plus)
Scale : 0.3 ( à ajuster en fonction de la taille de la source de lumière)
Brightness: Mettez la couleur de votre lampe
Ensuite, il faudra procéder ainsi:
Copiez-coller votre env_sprite, mettez le nouveau exactement au même endroit de votre env_sprite, puis baissez son Scale de 2 et son FX: Amount de 2 aussi et éloignez de 2 unités de l'env_sprite par rapport à la source de lumière. Comme ceci
Continuez ainsi avec cette méthode jusqu'a ce qu'un env_sprite atteigne FX Amount: 0.
Comment ajuster son faisceau?
La valeur Scale du premier env_sprite le plus près de la source de lumière (le premier a avoir été crée) doit avoir celle de la source de lumière. Pour une grande lampe on doit avoir un grand Scale.
La valeur brigthness, plus elle sera clair, plus le faisceau sera visible. De cette façon au lieu de baisser le FX Amount vous pouvez assombrir le brightness.
La valeur FX Amount, plus elle sera elevé, plus votre faisceau sera visble. Plus le premier env_sprite en aura une valeur elevé plus le faisceau sera long.
Au lieu de baisser de 2 votre Fx Amount à chaques env_sprite, vous pouvez le baisser de 1 aussi, ce qui agrandira aussi le faisceau.
Plus le Scale augmente à chaques env_sprite, plus le faisceau s'élargira.
Cette technique peut s'utiliser aussi pour simuler de la vapeur ou autre chose.
Voilà diverses astuces pour créer des faisceaux lumineux!
Solution n°1
La première solution pour créer un faisceau lumineux est d'utiliser les blocs! Pour cela il faut une texture de dégradé qu'il existe déjà dans halflife.wad (tapez "fad" et la liste apparaitra) et créez votre faisceau avec la texture ainsi.
Transformez votre faisceau en func_illusionary et appliquez lui les attributs: Render Mode: Additive
FX Amount : 20 (plus ou moins, il faut ajuster en fonction des cas).
Recréez maintenant le même faisceau (copier-coller) au même endroit mais avec le Vertex Tool élargissez légèrement sa base (de l'ordre d'1 à 5 unités, ca dépend de la taille du faisceau) (ou son arrivé) comme ceci.
Diminuez ensuite son "render mode" de 5 environ.
Répétez cette action une fois par rapport au dernier faisceau créé.
Répétez cette action mais cette fois ci paramètrez le FX Amount à 2 à 4 et élargissez bien plus la base de l'ordre de 10 à 14 unités envirion.
Voilà le résultat!
Ca?
Citation : Loulimi
Magnifique non ? Mais ca peut s'améliorer!
Comment? Il suffit de créer des env_sprite avec (ceci est un exemple, le sprite ainsi que les autres paramètres peuvent changer!) render mode: Additive
FX Amount : 15 (environ il faut ajuster selon les cas)
Scale : 0.3
Il faut en mettre quelques un un peu dispersé à l'intérieur du premier faisceau (le plus petit)! Aucun ne doit dépasser!
Ceci dit, vous pouvez en mettre dans le dernier faisceau(le plus grand) mais il ne devront pas toucher les autres faisceaux et avec comme FX Amount: celle du dernier faisceau.
Le rendu est mieux si le Render mode diminue en fonction de son éloignement par rapport au centre du faicseau!
Ou ca?
Citation : Loulimi
Solution n°2
Voilà une solution bien plus lente et complexe, et de plus elle nécessite beaucoup d'entités. Mais le résultat est impréssionant!
Cette technique se joue grâce aux env_sprite. Créez en un sur votre source de lumière, là d'où votre faisceau partira. Comme ca
Encore une fois, les attributs et valeurs que je vais donner sont ajustables en fonction des cas: render mode: Additive
FX Amount : 20 (à ajuster en fonction de l'air de votre salle (si vous voulez simulez qu'il y ait beaucoup de poussière, mettez plus)
Scale : 0.3 ( à ajuster en fonction de la taille de la source de lumière)
Brightness: Mettez la couleur de votre lampe
Ensuite, il faudra procéder ainsi:
Copiez-coller votre env_sprite, mettez le nouveau exactement au même endroit de votre env_sprite, puis baissez son Scale de 2 et son FX: Amount de 2 aussi et éloignez de 2 unités de l'env_sprite par rapport à la source de lumière. Comme ceci
Continuez ainsi avec cette méthode jusqu'a ce qu'un env_sprite atteigne FX Amount: 0.
Comment ajuster son faisceau?
La valeur Scale du premier env_sprite le plus près de la source de lumière (le premier a avoir été crée) doit avoir celle de la source de lumière. Pour une grande lampe on doit avoir un grand Scale.
La valeur brigthness, plus elle sera clair, plus le faisceau sera visible. De cette façon au lieu de baisser le FX Amount vous pouvez assombrir le brightness.
La valeur FX Amount, plus elle sera elevé, plus votre faisceau sera visble. Plus le premier env_sprite en aura une valeur elevé plus le faisceau sera long.
Au lieu de baisser de 2 votre Fx Amount à chaques env_sprite, vous pouvez le baisser de 1 aussi, ce qui agrandira aussi le faisceau.
Plus le Scale augmente à chaques env_sprite, plus le faisceau s'élargira.
Cette technique peut s'utiliser aussi pour simuler de la vapeur ou autre chose.
Une astuce bien connu:
On le sait, le VIS indique au jeu quelles faces ou polygones il doit calculer en fonction de l'endroit où le joueur est et ce qu'il regarde.
Pour éviter de calculer tout en même temps, au risque de faire monter les wpolys il crée des portals. Ainsi théoriquement la map est divisé en plein de parties grace au découpage des polygones et il calcule seulement les faces qu'il a besoin ou presque sinon on peut en créer "manuellement" grâce aux Hint Brush. Sauf que quelques fois ca n'est pas suffisant!
Si par exemple le joueur est dans un couloir qui donne a l'extérieur par exemple, le jeu calculera tout ce qu'il voit! Pour remédier a ca il existe une astuce qui permet de séparer sa map par un certain bloc, c'est le TRANSLUCENT!
Hô, qu'est ce donc que cette chose bizarre?
C'est une technique qui va bloquer le calcul des polygones ou faces. Grâce à ceci le VIS ne calcule pas au delà d'une certaine zone délimité grâce a un certain bloc, sauf si l'on traverse la zone. Et quand on l'aura traverser il ne calculera pas ce qui se trouvera alors derriere de fameux bloc.
Exemple, lorque le joueur ici sera dans la salle 1, il ne verra pas la salle 2 et le VIS ne la calculera pas. Même chose lorsqu'il sera dans la salle 2, il ne verra pas et le VIS ne calculera pas la salle 1!
Maintenant la question qui vous brûle les lèvres c'est:
Comment faire ce fameux bloc?
Tout d'abord ce bloc sera visible, traversable et "creux"! C'est a dire que lorqu'on le traversera, on verra son interieur.
Il y aura donc en fait 3 parties!
Pour le faire: on veut que le jeu ne calcule pas au delà du couloir. De l'extérieur il ne calcule pas l'intérieur du couloir et de l'intérieur du couloir il ne calcule pas l'extérieur.
On va donc séparer le l'intérieur de l'extérieur par le fameux bloc!
Si vous avez bien suivi, vous devez devinez ce qui est calculé en fonction de la position et du regard du joueur.
Donc le bloc, comment le créer? Imaginons que notre cas ce soit de la végétation, un rideau, ou autre chose. Il faut donc créer ce bloc là comme n'importe quelle bloc précisément entre l'intérieur et l'extérieur le plus fin possible. Maintenant, que faut t'il faire? Lui appliquer la texture que l'on veut mais avec un @ devant (@rideau)! Ainsi c'est fait vous pouvez voir le résultat! Dans le couloir le couloir sera calculer. Dans le bloc spécial le bloc spéciale sera calculer et a l'extérieur l'extérieur sera calculer!
Mais ca ne fait pas très jolie de passez d'une partie à l'autre.
Donc couvrez le d'un func_illusionary, de devant et de derriere et sur les cotés, avec la meme texture sans la @ (rideau), avec une petite distance.
Comme ca:
Quand le joueur traversera le bloc, le jeu calculera la partie seulement dans lequel il est! Resultat? Des wpolys en moins!
PS; Désolé si il y a des erreurs j'ai juste copier ce que j'ai fait il y a longtemps!
Pour obtenir une ombre plus précise, il faut diminuer le scale de la texture sur laquelle s'appliquera l'ombre (outil "Toggle texture application" mode: Lift-Select).
Plus le scale sera bas, plus l'ombre sera précise.
La compilation se fera pour un meilleur résultat avec en paramètre "-extra".
On obtient ainsi une très joli ombre précise!
Cependant, il ne faut abuser trop abuser de cette méthode car elle peut faire bugger la compilation!
A l'inverse, on peut augmenter le "scale" des textures si la compilation bug!
Créer une ombre précise, solution 2
Une autre solution, c'est de créer son ombre avec des blocs!
Le bloc ombrageux (qui produira l'ombre) doit lui être en entité Func wall ou autre entité décalé d'une unité d'épaisseur par rapport à la/aux surface(s)(bloc) sur laquelle s’appliquera son ombre.
Pour l'ombre, il faut créer des blocs d'une unité d'épaisseur contre la surface ombragé en NULL en suivant les contours du bloc ombrageux en question.
À savoir qu'il faut éviter de dépasser les 240 pixels de côté pour sa texture. Autrement, il y aura un découpage des blocs qui au bout d'un certain nombre de faces peut sévir.
Il me semble que le découpage se fait quand la texture se répète (par exemple tous les 128 unités pour du 128*128). Perso je n'ai jamais eu de problème avec les 256*256.
Les textures doivent avoir un coté qui est un multiple de 16, tu veux dire qu'on n'utilisa pas de 256*256?
256 - 16 = 240
240 est donc une taille valide.
Citation : KillerMapper
Il me semble que le découpage se fait quand la texture se répète (par exemple tous les 128 unités pour du 128*128). Perso je n'ai jamais eu de problème avec les 256*256.
Données prises sur Sven Co-op. Et j'avais fait des tests avant. Si mes souvenirs (assez lointains donc je ne saurais être fiable) sont bons, j'utilisais une texture de 256 de côté et le découpage se faisait tous les 240 (mesuré via la commande status).
En fait je crois qu'il parle du flat.
Si on fait une texture d'une dimension multiple de 16 n'importe laquelle dimension (16*16 par exemple), les blocs portants cette texture seront découpés à chaques répétitions de texture (16*16).
Si on fait plus de 240 en revanche(256), la découpe se fera non pas toutes les 256 unités mais toutes les 240 unités.
Enfin c'est ce que j'ai compris, c'est juste?
En fait je crois qu'il parle du flat.
Si on fait une texture d'une dimension multiple de 16 n'importe laquelle dimension (16*16 par exemple), les blocs portants cette texture seront découpés à chaques répétitions de texture (16*16).
Si on fait plus de 240 en revanche(256), la découpe se fera non pas toutes les 256 unités mais toutes les 240 unités.
Enfin c'est ce que j'ai compris, c'est juste?
Wow j'apprends un truc là.
Du coup mieux optimiser une map consisterais à utiliser des textures de grandes dimensions, mais, pour éviter les découpages de blocs, ne pas utiliser des textures de plus de 240px de coté.
Du coup imaginons un mur qui répète 6 fois une texture de 80px de large, afin d’éviter le découpage en 6 blocs il vaudrait mieux aller sous Wally, se fabriquer une texture de 240px de large (répétant 3 fois la texture originale), et donc in-game avoir un bloc qui ne sera que découpé en 2.
pas forcement après a ce niveau sa dépend du miroir que ta aux niv du serveur si tu en possédé pas tu va mètre 40 sec environ pour 1.30mo mais en cas contraire sa sera 5 sec en moyenne pour 1.30mo mais après y'a d'autre variable qui joue
ces des chiffre que j'ai pue observer en mettant des map sur mon serv.
J'ai pour ma part l'impression que le flat est assez aléatoire, quelques fois je n'en vois pas l'effet.
Je ne sais pas si c'est pour cette raison (ou en plus) que dans Half-Life, Blue-Shift et beaucoup d'autres certaines textures sont très étirés, via le bouton "toggle texture application", par exemple la texture Black qui se trouve au fond des trous, sinon c'est juste pour les patchs?
En revanche, pour certaines textures, comme l'eau en entité, il suffit d'agrandir la texture pour éviter le flat.
Je crois que vous vous compliquez la tâche pour rien. Savoir que le moteur découpe les textures à 240px maximum c'est une info intéressante, mais chercher à tout prix à gagner trois petits wpolys en se cassant la tête sur les textures, pour moi ça en vaut pas la peine.