Some .fx aren't output in DAE.(3dsMAX)


There are some .fx files which aren’t output in the <library_effects>.
You can confirm this by using the ‘3dsMax8\maps\fx\blend_dxsas.fx’.
(This .fx file is distributed with the MAX.)
In fact, One of my .fx file isn’t output, either. :cry:

Why isn’t this .fx file output ?


I am not a developer of the 3dsmax plugin but I do have an idea of whats going on.

COLLADA does not have a profile for hlsl. so the plugin probably just drops the .fx files when it exports.

There are plans for a hlsl profile in the future.


Check that the DirectX9 shader is pointing to the correct location of your .fx file. If Max can’t find it then the exporter will fail to output it.
Max will not tell you when you open the scene that the .fx file can’t be found!


Unfortunately, the HLSL that you wrote isn’t accepted by the ASHLI parser used within IGame/3DXI. That’s the main reason your .FX files won’t export.

I’m not sure if this will work on release versions of the plug-in, but since we all use the same version of the IGame plug-in, it may be worth a try: Attach a debugger unto 3dsMax. Export your mesh that uses the DX9 material that doesn’t export correctly. Check in the Output->Debug window for more information. If ASHLI complained, it should be there.

I have personally verified quite a few of the sample HLSL effects given with 3dsMax and the main issue is often case-sensitivity and over-definitions of terms like “sampler2D” [should be “sampler”].


Thank you for very useful advice.
I could observe the error message in the debugging window.
The message is useful because a line number with the problem is indicated.

In blend_dxsas.fx case,
Texture TextureTop
< …

texture TextureTop
< …

In my case, it was a cause that there was no input in the pixel shader.
struct PIN

float4 pmain(PIN i) : COLOR
{ …

Now, I could be made to output a my .fx.