Jump to content

Les repaints et modifications d'ES64F4 | Sujet actuel : Des BB 26000 Fantôme un peu différentes...


ES64F4

Recommended Posts

Et voici maintenant (enfin) le résultat final ! Des compositions avec une locomotive nez cassé en livrée coup de soleil avec des voitures grand confort quasi parfaitement assorties au niveau de la teinte. 

Screenshot_Seebergbahn_46.68532-7.68037_13-04-08.jpg

Screenshot_Seebergbahn_46.68549-7.68048_13-01-40.jpg

Screenshot_Seebergbahn_46.68548-7.68019_13-01-10.jpg

Avec augmentation de la saturation des couleurs (CRTL + SHIFT + F1), c'est bien la première fois que j'aime ce rendu plus soutenu. 

Screenshot_Seebergbahn_46.68547-7.68024_13-00-44.jpg

Edited by ES64F4
  • Like 8
Link to comment
Share on other sites

Pack de textures qui REMPLACE les textures d'origine des CC 6500 pour obtenir le rendu des captures précédentes. Le logo à l'avant a toujours les lettres SNCF en blanc cassé, ce n'est pas un bug, je préfère le logo ainsi. 

Installation : Décompresser dans un dossier temporaire et copier les 4 fichiers .TgPcDx dans Assets\SimExpress\CC 6500\W_versions\Textures en écrasant les fichiers d'origine.  

CC 6500 Arzens.7z

  • Like 8
Link to comment
Share on other sites

Pack de textures qui REMPLACE les textures d'origine des CC 21000 pour obtenir le rendu des captures précédentes. La plaque avec le numéro de la locomotive à l'avant est toujours en fond noirs avec pourtour gris, je préfère ainsi. 

Installation : Décompresser dans un dossier temporaire et copier les 4 fichiers .TgPcDx dans Assets\SimExpress\CC 21000\W_versions\Textures en écrasant les fichiers d'origine. 

CC 21000 Arzens.7z

Edited by ES64F4
  • Like 4
Link to comment
Share on other sites

Texture qui REMPLACE la texture d'origine des BB 15000 Arzens pour obtenir le rendu des captures précédentes. 

Installation : Décompresser dans un dossier temporaire et copier le fichier .TgPcDx dans Assets\SimExpress\BB 4400 kW\W_versions\Textures en écrasant le fichier d'origine. 

BB 15000Arzens.7z

  • Like 6
Link to comment
Share on other sites

Si tout s'est bien passé, vous pouvez maintenant profiter des compositions nez cassé avec voitures grand confort assorties. 

N'oubliez pas la crème solaire ! 🤣

 

PS : Merci à tous ceux qui font contribuent à du contenu français pour TS; en l'occurrence TrenoNote et Wenel pour ces compositions-ci. Je n'aurais jamais pensé passer tant de temps à rouler en France ! 

Edited by ES64F4
  • Like 2
Link to comment
Share on other sites

  • ES64F4 changed the title to Les repaints et modifications d'ES64F4 | Sujet actuel : Coup de soleil, nez cassé et grand confort.

Et une dernière petite chose, en ce qui concerne les teintes et les livrées, les voitures grand confort qui circulaient sur l'est (Stanislas, Kleber, PE-Luxembourg) dans les années 90 n'étaient plus "gris métallisée"..... mais blanche. 😅

125600384-o.jpg

 

Edited by CC21000
  • Like 2
Link to comment
Share on other sites

  • ES64F4 changed the title to Les repaints et modifications d'ES64F4 | Sujet actuel : Des BB 26000 Fantôme un peu différentes...
  • 2 weeks later...

Avec plaisir pour les explications @Treno Notte. C'est vraiment du bricolage basé sur un apprentissage empirique et pas mal de tests. Les GeoPcDx peuvent être ouverts avec RW_Tools. Ils ont une structure +/- intelligible. Le plus simple à comprendre sont les textures attachées (il est facile de changer le chemin) et les shaders (changer le type est aussi facile).

Dans le bout de code un peu plus bas tiré de la CC 21001 ont voit un appel à la texture 

textures\[00]CC6500_caisse_maurienne_repeinte_old

On voit aussi le shader TrainBasicObjectDiffuse.fx.

Pour mettre une autre texture, il suffit de pointer vers un autre nom (qui peut être dans un autre dossier). Le shader peut aussi être remplacé et des paramètres comme son comportement avec la lumière peuvent être changés. Attention, certains shaders ont besoin de plusieurs textures. Les modifs peuvent rendre le GeoPcDx plantogène. Avec ce genre de modifications, j'ai fait disparaitre le block ZZA des BR 143 alors que les gens de vR me disaient que ce serait impossible (astuce : texture transparente sur l'objet et shader de transparence). 

<cHcEffectMaterialDx d:id="1355916264">
	<ShaderName d:type="cDeltaString">TrainBasicObjectDiffuse.fx</ShaderName>
	<TextureByName>
		<e d:type="cDeltaString">textures\[00]CC6500_caisse_maurienne_repeinte_old</e>
	</TextureByName>
	<Name d:type="cDeltaString">CC6500_caisse_MR</Name>
	<CollisionSurface d:type="cDeltaString">METAL</CollisionSurface>
	<VertexType d:type="ref">20443040</VertexType>
	<FrameAlphaMode d:type="cDeltaString">ALPHA_MODE_NONE</FrameAlphaMode>
	<PassPlatformData/>
	<FloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916468">
			<Name d:type="cDeltaString">SPECULARPOWER</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000003940" d:precision="string">25</Value>
		</cHcEffectMaterialDx-cFloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916480">
			<Name d:type="cDeltaString">CUSTOMPARAM0</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
		</cHcEffectMaterialDx-cFloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916492">
			<Name d:type="cDeltaString">CUSTOMPARAM1</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
		</cHcEffectMaterialDx-cFloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916504">
			<Name d:type="cDeltaString">CUSTOMPARAM2</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
		</cHcEffectMaterialDx-cFloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916516">
			<Name d:type="cDeltaString">CUSTOMPARAM3</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
		</cHcEffectMaterialDx-cFloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916528">
			<Name d:type="cDeltaString">CUSTOMPARAM4</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
		</cHcEffectMaterialDx-cFloatParam>
		<cHcEffectMaterialDx-cFloatParam d:id="1355916540">
			<Name d:type="cDeltaString">CUSTOMPARAM5</Name>
			<Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
		</cHcEffectMaterialDx-cFloatParam>
	</FloatParam>
	<VectorParam>
		<cHcEffectMaterialDx-cVectorParam d:id="1355916664">
			<Name d:type="cDeltaString">AMBIENT</Name>
			<Value d:numElements="4" d:elementType="sFloat32" d:precision="string">1.0000000 1.0000000 1.0000000 1.0000000</Value>
		</cHcEffectMaterialDx-cVectorParam>
		<cHcEffectMaterialDx-cVectorParam d:id="1355916688">
			<Name d:type="cDeltaString">EMISSIVE</Name>
			<Value d:numElements="4" d:elementType="sFloat32" d:precision="string">1.0000000 1.0000000 1.0000000 1.0000000</Value>
		</cHcEffectMaterialDx-cVectorParam>
		<cHcEffectMaterialDx-cVectorParam d:id="1355916712">
			<Name d:type="cDeltaString">SPECULARCOLOR</Name>
			<Value d:numElements="4" d:elementType="sFloat32" d:precision="string">1.0000000 1.0000000 1.0000000 1.0000000</Value>
		</cHcEffectMaterialDx-cVectorParam>
		<cHcEffectMaterialDx-cVectorParam d:id="1355916736">
			<Name d:type="cDeltaString">DIFFUSECOLOR</Name>
			<Value d:numElements="4" d:elementType="sFloat32" d:precision="string">0.8000000 0.8000000 0.8000000 1.0000000</Value>
		</cHcEffectMaterialDx-cVectorParam>
	</VectorParam>
	<AlphaTestType d:type="cDeltaString">HC_ALPHATEST_ALWAYS</AlphaTestType>
	<AlphaRef d:type="sUInt32">127</AlphaRef>
	<TwoSided d:type="bool">0</TwoSided>
	<MipLodBias>
		<e d:type="sFloat32" d:alt_encoding="00000000000000C0" d:precision="string">-2</e>
	</MipLodBias>
	<TextureAddrModeU>
		<e d:type="cDeltaString">HC_TEXTURE_ADDR_MODE_WRAP</e>
	</TextureAddrModeU>
	<TextureAddrModeV>
		<e d:type="cDeltaString">HC_TEXTURE_ADDR_MODE_WRAP</e>
	</TextureAddrModeV>
	<TextureAddrModeW>
		<e d:type="cDeltaString">HC_TEXTURE_ADDR_MODE_WRAP</e>
	</TextureAddrModeW>
	<BorderColour>
		<e d:type="sUInt32">3</e>
	</BorderColour>
</cHcEffectMaterialDx>

Pour les CC 21000, je ne pouvais pas prendre la même technique car la texture est appliquée sur la loco entière et les prises (c'était séparé sur la BR 143). J'ai donc cherché à trouver le block de code qui crée les prises. 

Pour la partie purement 3D, il y a une partie qui s'appelle TransformName qui donne une idée des groupes d'objets 3D et une section Root avec une structure. On retrouve des blocks qui commencent par cHcSGNodeLODSelector avec un iD et qui se referment avec /cHcSGNodeLODSelector. C'est une syntaxe proche du XLM, JSON, etc. 

Comme dans <TransformName> le premier objet est <e d:type="cDeltaString">prises_keops.000</e>, je me suis dit que dans Root, le premier cHcSGNodeLODSelector devrait être les prises. Et bingo ! 

Les deux blocs suivant représentent les 3 prises et le bloc lui-même dans la CC 21002. Il suffit de les effacer, sauver dans RW_Tools et c'est fait. 

PS : Pour trouver le bon block, c'est du click and try. On supprime au fur et à mesure des blocs, on sauve, on recharge un scénario et on voit ce qui a disparu.  Parfois, le GeoPcDX se corrompt quand on enlève un bout.  

<cHcSGNodeLODSelector d:id="1351430232">
	<Child>
		<cHcSGBoundingSphere d:id="1351429976">
			<Child>
				<cHcSGNodeMaterial d:id="1349395168">
					<Child>
						<cHcGeometryNodeSameState d:id="1356164112">
							<Child/>
							<PrimitiveSetByDesc>
								<cHcPrimitiveSetDescDx d:id="20842752">
									<NumPrimitives d:type="sUInt32">2755</NumPrimitives>
									<PrimitiveType d:type="cDeltaString">PRIMTYPE_TRIANGLESTRIP</PrimitiveType>
									<VertexIndexMin d:type="sUInt32">0</VertexIndexMin>
									<VertexIndexRange d:type="sUInt32">736</VertexIndexRange>
									<VertexIndexBase d:type="sInt32">5468</VertexIndexBase>
									<IndexArrayStart d:type="sInt32">155253</IndexArrayStart>
									<NumOriginalTriangles d:type="sUInt32">460</NumOriginalTriangles>
								</cHcPrimitiveSetDescDx>
							</PrimitiveSetByDesc>
							<PrimaryTransformID d:type="sInt32">13</PrimaryTransformID>
						</cHcGeometryNodeSameState>
					</Child>
					<Material d:type="ref">1248941648</Material>
				</cHcSGNodeMaterial>
				<cHcSGNodeZSorter d:id="1351428696">
					<Child/>
					<SortPoint d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.0000007 2.0749538 0.0000000 1.0000000</SortPoint>
					<TransformID d:type="sInt32">13</TransformID>
					<SingleChildTransform d:type="bool">0</SingleChildTransform>
					<ChildTransformID d:type="sInt32">-1</ChildTransformID>
				</cHcSGNodeZSorter>
			</Child>
			<Centre d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.0000007 2.0749538 0.0000000 1.0000000</Centre>
			<Radius d:type="sFloat32" d:alt_encoding="00000040EC8E2440" d:precision="string">10.2791</Radius>
			<TransformID d:type="sInt32">13</TransformID>
		</cHcSGBoundingSphere>
	</Child>
	<LODController d:type="ref">1339046456</LODController>
	<TransformID d:type="sInt32">13</TransformID>
	<Point d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.0000007 2.0749538 0.0000000 1.0000000</Point>
</cHcSGNodeLODSelector>

 

<cHcSGNodeLODSelector d:id="1351426008">
	<Child>
		<cHcSGBoundingSphere d:id="1351426136">
			<Child>
				<cHcSGNodeMaterial d:id="1254154952">
					<Child>
						<cHcGeometryNodeSameState d:id="1356162880">
							<Child/>
							<PrimitiveSetByDesc>
								<cHcPrimitiveSetDescDx d:id="20841648">
									<NumPrimitives d:type="sUInt32">3667</NumPrimitives>
									<PrimitiveType d:type="cDeltaString">PRIMTYPE_TRIANGLESTRIP</PrimitiveType>
									<VertexIndexMin d:type="sUInt32">0</VertexIndexMin>
									<VertexIndexRange d:type="sUInt32">684</VertexIndexRange>
									<VertexIndexBase d:type="sInt32">0</VertexIndexBase>
									<IndexArrayStart d:type="sInt32">0</IndexArrayStart>
									<NumOriginalTriangles d:type="sUInt32">610</NumOriginalTriangles>
								</cHcPrimitiveSetDescDx>
							</PrimitiveSetByDesc>
						</cHcGeometryNodeSameState>
					</Child>
					<Material d:type="ref">1358093112</Material>
				</cHcSGNodeMaterial>
				<cHcSGNodeZSorter d:id="1351424472">
					<Child/>
					<SortPoint d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.0000007 2.0848927 0.0000005 1.0000000</SortPoint>
					<TransformID d:type="sInt32">0</TransformID>
					<SingleChildTransform d:type="bool">0</SingleChildTransform>
					<ChildTransformID d:type="sInt32">-1</ChildTransformID>
				</cHcSGNodeZSorter>
			</Child>
			<Centre d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.0000007 2.0848927 0.0000005 1.0000000</Centre>
			<Radius d:type="sFloat32" d:alt_encoding="000000007BAB2440" d:precision="string">10.3349</Radius>
			<TransformID d:type="sInt32">0</TransformID>
		</cHcSGBoundingSphere>
	</Child>
	<LODController d:type="ref">1339046336</LODController>
	<TransformID d:type="sInt32">0</TransformID>
	<Point d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.0000007 2.0848927 0.0000005 1.0000000</Point>
</cHcSGNodeLODSelector>

Pour supprimer dans la CC 21001, je me suis dit que l'ID ne serait pas le même et l'ordre des <TransformName> ne l'est pas non plus. La prise <e d:type="cDeltaString">prises_keops.000</e> se retrouve en 21 ième position (ou qqc de cet ordre) et j'ai retrouve dans Root le 21 ième block et il comptait au de primitives. Je l'ai effacé et tout s'est passé comme prévu. J'ai recherché sur la valeur <NumPrimitives d:type="sUInt32"></NumPrimitives> pour effacer l'autre élément. Tout s'est à nouveau passé comme prévu. 

Voilà le block des gicleurs de lave glace 'ancien modèle' autour des vitres et attaché au montant central. Effacer ce block et ils ne sont plus là. 

<cHcSGNodeLODSelector d:id="1349408400">
	<Child>
		<cHcSGBoundingSphere d:id="1349408336">
			<Child>
				<cHcSGNodeMaterial d:id="1342683096">
					<Child>
						<cHcGeometryNodeSameState d:id="18374680">
							<Child/>
							<PrimitiveSetByDesc>
								<cHcPrimitiveSetDescDx d:id="19340544">
									<NumPrimitives d:type="sUInt32">6307</NumPrimitives>
									<PrimitiveType d:type="cDeltaString">PRIMTYPE_TRIANGLESTRIP</PrimitiveType>
									<VertexIndexMin d:type="sUInt32">0</VertexIndexMin>
									<VertexIndexRange d:type="sUInt32">1620</VertexIndexRange>
									<VertexIndexBase d:type="sInt32">28046</VertexIndexBase>
									<IndexArrayStart d:type="sInt32">180573</IndexArrayStart>
									<NumOriginalTriangles d:type="sUInt32">1052</NumOriginalTriangles>
								</cHcPrimitiveSetDescDx>
							</PrimitiveSetByDesc>
							<PrimaryTransformID d:type="sInt32">21</PrimaryTransformID>
						</cHcGeometryNodeSameState>
					</Child>
					<Material d:type="ref">1341026696</Material>
				</cHcSGNodeMaterial>
				<cHcSGNodeZSorter d:id="1349408208">
					<Child/>
					<SortPoint d:numElements="4" d:elementType="sFloat32" d:precision="string">0.0000000 3.0246401 0.0000005 1.0000000</SortPoint>
					<TransformID d:type="sInt32">21</TransformID>
					<SingleChildTransform d:type="bool">0</SingleChildTransform>
					<ChildTransformID d:type="sInt32">-1</ChildTransformID>
				</cHcSGNodeZSorter>
			</Child>
			<Centre d:numElements="4" d:elementType="sFloat32" d:precision="string">0.0000000 3.0246401 0.0000005 1.0000000</Centre>
			<Radius d:type="sFloat32" d:alt_encoding="000000E050812340" d:precision="string">9.75257</Radius>
			<TransformID d:type="sInt32">21</TransformID>
		</cHcSGBoundingSphere>
	</Child>
	<LODController d:type="ref">29814376</LODController>
	<TransformID d:type="sInt32">21</TransformID>
	<Point d:numElements="4" d:elementType="sFloat32" d:precision="string">0.0000000 3.0246401 0.0000005 1.0000000</Point>
</cHcSGNodeLODSelector>

 

Edited by ES64F4
  • Like 3
Link to comment
Share on other sites

😆 Je n'irais certainement pas jusque là. Les bidouilles de ce genre peuvent toujours servir pour faire des variantes. Tout n'est cependant pas toujours possible... L'intérêt est de partager ce genre de connaissance. 🙂

Le post qui explique comment faire disparaitre le ZZA de la BR 111 2020. J'ai appliqué la même technique sur d'autres modèles de vR. 

[vR] DB Bnrbdzf Regio Elektro / BR111 2020 Version - Page 20 - vR - virtualRailroads - Rail-Sim.de - Die deutsche Train Simulator Community

Il n'y a aucun problème de réflexion ou autre, même en plein soleil.

Je retourne à ma conduite de pur bonheur. 😄

Screenshot_77-91-45 Sud de Paris_48.57583-2.47875_11-06-33.jpg

Screenshot_La ligne de la Bresse_46.20681-5.21320_11-03-11.jpg

Edited by ES64F4
  • Like 7
Link to comment
Share on other sites

Excellent ! Je bidouille pas mal moi-même, y compris les GeoPcDx surtout pour changer le chemin des textures, mais je ne suis pas encore allé aussi loin que toi. J'ai quelques idées qui me travaillent depuis longtemps, je vais voir si tes trucs peuvent m'ouvrir plus de perspectives. En tout cas merci pour les partages ! 👍

  • Like 2
Link to comment
Share on other sites

On 10/09/2023 at 18:57, Treno Notte a dit:

@ES64F4 Là c'est du reverse ingeneering de haut vol ! Je suis très impressionné. Merci pour tes explications !

Merci. C'est un compliment qui fait très plaisir. 

Dans la catégorie des bidouilles, quelqu'un a-t-il déjà réussi à inverser le poste de conduite par défaut ? Par exemple dans le cas de CC 21000, être directement dans la cabine du côté avec un seul pantographe. Je n'ai aucune idée d'où se trouve ce paramètre. Dans le .bin de la locomotive, je ne pense pas car j'ai déjà quasi tout essayé. Je pense que c'est dans le GeoPcDx.

Edited by ES64F4
  • Like 1
Link to comment
Share on other sites

J'ai un peu ravivé l'orange de la livrée d'origine des BB 26000. La texture est disponible en téléchargement. 

Au passage, quand on édite une texture compressée (DXT5, DXT3 ou DXT1), elle perd de la qualité si on la sauve puis qu'on la réouvre. Il y a une compression destructrice d'informations à l'enregistrement. Pour palier ce comportement, après avoir ouvert une texture compressée, il faut en faire une sauvegarde non compressée (en ARGB par exemple). Il faut ensuite l'utiliser comme référence pour les modifications. C'est utile quand des modifications doivent se faire par étapes. 
Ah oui, si un modèle a une texture en DXT5, on peut dans 95% (si pas plus) des cas, la remplacer par une ARGB plus grosse mais qui ne sera pas dégradée. La texture jointe est en ARGB (21 Mo) car en DXT5 (5 Mo), on voit trop les effets de (re)compression sur certaines zones. Les textures ARGB 32bits ne perdent pas de qualité quand elles sont rééditées plusieurs fois de suite. 

Installation : décompresser et copier dans Assets\SimExpress\BB 26000\W_versions\Textures. Faire préalablement une copie de BB26000_caisse_classique.TgPcDx. 

Screenshot_Seebergbahn_46.68559-7.68062_13-00-55.jpg

BB26000_caisse_classique.7z

  • Like 9
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...