<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - DirectX</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur le développement avec DirectX. Avant de poster -> FAQ DirectX]]></description>
		<language>fr</language>
		<lastBuildDate>Tue, 14 Apr 2026 08:07:45 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - DirectX</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title><![CDATA[Besoin d'aide pour convertir un vieux Shader ecrit en Shader Assembly (Direct X)]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177252&amp;goto=newpost</link>
			<pubDate>Sat, 31 May 2025 15:35:30 GMT</pubDate>
			<description>Bonjour, 
 
Telle une...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Telle une bouteille jetée dans la mer, j'espère avoir une réponse mais j'en doute un peu.<br />
<br />
Je suis entrain de refaire entièrement le client d'un assez vieux MMORPG sous Unity et tout se passe très bien jusqu'ici. Cependant il y a un shader que je n'arrive pas vraiment à refaire sous Unity et comme ce n'est pas vraiment ma spécialité, j'aimerai bien avoir un petit coup de main là-dessus. Surtout que je suis sûr que c'est juste un shader pour simuler de l'<b>Emissive</b> (grosso-modo), chose qui ne devait pas être courant à l'époque j'imagine.<br />
<br />
J'ai bidouillé un peu un shader Emissive classique, avec les paramètres que je peux discerner dans le shader et disons que ça peut passer mais ça n'a pas vraiment le look original qu'il y avait dans le jeu : <br />
<br />

<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/cEJt68Svzkg?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
<br />
<br />
Voici le rendu qu'il y a dans le client d'origine :<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p667785d1748705563/applications/developpement-2d-3d-jeux/api-graphiques/directx/besoin-daide-convertir-vieux-shader-ecrit-shader-assembly-direct-x/screen141.jpg/" border="0" alt="Nom : screen141.jpg
Affichages : 95
Taille : 543,8 Ko"  style="float: CONFIG" /><br />
<br />
On peut voir que c'est de l'Emissive, mais avec quelques élements en + et j'aimerai bien au moins essayer de recréer le même rendu. Voici le code :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
vs.<span style="color: #cc66cc;">1.1</span>
<span style="color: #808080;">//---------------------------------------------------------------</span>
<span style="color: #808080;">// c0  = world-view matrix</span>
<span style="color: #808080;">// c4  = projection matrix</span>
<span style="color: #808080;">// c8  = light texture tm</span>
<span style="color: #808080;">// c12 = light diffuse</span>
<span style="color: #808080;">// c13 = light ambient</span>
<span style="color: #808080;">// c14 = light direction (or position)</span>
<span style="color: #808080;">// c15 = camera position (world)</span>
<span style="color: #808080;">// c16 = [1.0, .5, 0.0, 127.9961]</span>
<span style="color: #808080;">// c17 = C_ALPHA_FOG_START_END_FACTOR = [fog_start, fog_end, 1/(fog_end - fog_start), 0]</span>
<span style="color: #808080;">// ...</span>
<span style="color: #808080;">// c30-95 = bone matrix (max 22( 3x22 = 66) bone's modelview + world matrix)</span>
<span style="color: #808080;">//---------------------------------------------------------------</span>
dcl_position      V_POSITION
dcl_normal        V_NORMAL
dcl_blendindices  V_BLENDINDICES
dcl_blendweight   V_BLENDWEIGHT
dcl_texcoord0     V_TEXCOORD0
&nbsp;
<span style="color: #808080;">//-------------------------------------------------</span>
<span style="color: #808080;">// Set 1</span>
<span style="color: #808080;">//-------------------------------------------------</span>
mov a0.x, V_BLENDINDICES.x
m4x3 r4.xyz, V_POSITION, c<span style="color: black;">&#91;</span>a0.x + C_BONESTART<span style="color: black;">&#93;</span> <span style="color: #808080;">// r4 = vertex transform</span>
m3x3 r5.xyz, V_NORMAL, c<span style="color: black;">&#91;</span>a0.x + C_BONESTART<span style="color: black;">&#93;</span> <span style="color: #808080;">// r5 = normal transform</span>
&nbsp;
<span style="color: #808080;">//blend them</span>
mul r4.xyz, r4.xyz, V_BLENDWEIGHT.xxxx
mul r5.xyz, r5.xyz, V_BLENDWEIGHT.xxxx
&nbsp;
<span style="color: #808080;">//-------------------------------------------------</span>
<span style="color: #808080;">// Set 2</span>
<span style="color: #808080;">//-------------------------------------------------</span>
mov a0.x, V_BLENDINDICES.y
m4x3 r2.xyz, V_POSITION, c<span style="color: black;">&#91;</span>a0.x + C_BONESTART<span style="color: black;">&#93;</span>
m3x3 r3, V_NORMAL, c<span style="color: black;">&#91;</span>a0.x + C_BONESTART<span style="color: black;">&#93;</span>
&nbsp;
<span style="color: #808080;">//add them in</span>
mad r4.xyz, r2.xyz, V_BLENDWEIGHT.yyyy, r4
mad r5.xyz, r3.xyz, V_BLENDWEIGHT.yyyy, r5
&nbsp;
<span style="color: #808080;">//-------------------------------------------------</span>
<span style="color: #808080;">// compute position (oPos)</span>
<span style="color: #808080;">//-------------------------------------------------</span>
mov r4.w, C_ONE_HALF_ZERO_MAXPOWER.x
m4x4 oPos, r4, C_PROJECTION_TM <span style="color: #808080;">// apply projection matrix</span>
&nbsp;
<span style="color: #808080;">//-------------------------------------------------</span>
<span style="color: #808080;">// transform light vector to world space</span>
<span style="color: #808080;">//-------------------------------------------------</span>
mov r7, C_LIGHT_DIRECTION
&nbsp;
<span style="color: #808080;">//-------------------------------------------------</span>
<span style="color: #808080;">// oD0 = ambient term</span>
<span style="color: #808080;">//-------------------------------------------------</span>
dp3 r0, r5, r7       <span style="color: #808080;">// N dot L in world space  </span>
max r0.w, r0.w, C_ONE_HALF_ZERO_MAXPOWER.z  <span style="color: #808080;">// clamp to [0..w]</span>
add oD0, r0.wwww, C_ONE_HALF_ZERO_MAXPOWER.yyyy
&nbsp;
<span style="color: #808080;">//-------------------------------------------------</span>
<span style="color: #808080;">//tex coords</span>
<span style="color: #808080;">//-------------------------------------------------</span>
mov oT0.xy, V_TEXCOORD0.xy       <span style="color: #808080;">// color map</span></pre></td></tr></table></code><hr />
</div>J'aimerai au moins le convertir en HLSL ou savoir comment le reproduire sous Shader Graph, peut importe, tant que je peux le reproduire ça me va.<br />
<br />
Merci d'avance a ceux qui prendrons le temps de répondre à cette requête un peu spéciale !</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p667785d1748705563/applications/developpement-2d-3d-jeux/api-graphiques/directx/besoin-daide-convertir-vieux-shader-ecrit-shader-assembly-direct-x/screen141.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f52/applications/developpement-2d-3d-jeux/api-graphiques/directx/">DirectX</category>
			<dc:creator>PixelJuice</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177252/applications/developpement-2d-3d-jeux/api-graphiques/directx/besoin-d-aide-convertir-vieux-shader-ecrit-shader-assembly-direct-x/</guid>
		</item>
	</channel>
</rss>
