David9

Hi!

I'm programming a game and I have a problem when I try to install the exporter plugin in Maya 7. I follow the instructions to install the plugin correctly and in Maya when I go to plugin manager I check D3DExport.mll and then a messagebox appears and says:

error x3539: ps_1_x is not supported in this version of the compiler
memory(125,23): ID¡¤DXEffectCompiler::CompileEffect: there was an error compiling
expression ID3DXEffectCompiler: Compilation failed

And in directxViewer I have the same message when I try to load a 3d object

Please help
thanks a lot


Re: Game Technologies: General error directX plugin

Inaki Ayucar

Are you using the correct version of the plugin Take a look at this post:

http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=92270&SiteID=1

If you receive the same error in DirectXViewer, try re-installing the latest version of the SDK. What¡¯s your Graphics Hardware






Re: Game Technologies: General error directX plugin

David9

Hi

My graphic card is a winfast geforce 6800LE 128 MB.
No, I tried with the plugin version number 7: D3DMaya7ExportX.dll and I tried with the SDK of december 2006 and it didn't work, then I tried with feb2007 SDK with the same result. In fact, with version of december 2006, directxViewer raises and exception and it closes, it didn't show nothing. Feb2007 SDK gives me the error posted earlier.

I found this in internet:
http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=1022961&SiteID=1

but it doesn't work...

And I found this, at: http://www.himki.net/forum/blog/flexcreator/index.php &req=printentry&eid=9396

What is the purpose of the new shader compiler flag

Beginning with the December 2006 DirectX SDK, the new HLSL compiler that was developed for Direct3D 10 has been enabled for Direct3D 9 targets. The new compiler has no support for ps_1_x targets, and is now the default compiler for all Direct3D HLSL shaders. A flag for backwards compatibility can be used to force ps_1_x targets to compile as ps_2_0 targets.

The D3DXSHADER_USE_LEGACY_D3DX9_31_DLL flag is used to enable an application to compile HLSL shaders using the original Direct3D 9 compiler. Applications must make sure to include the D3DX9_31.DLL in their redistributable packages if they are planning on using this flag.


I don't know how to change this flag in maya exporter, this article talk about a compilation of a program but in my case I don't what I have to do


thanks a lot in advance one more time




Re: Game Technologies: General error directX plugin

David9

hi!


I think I have fixed the problem, I installed the dec2005 sdk and I try to load the plugin again, I have no problems with this sdk and the plugin was loaded correctly. I don't know the cause of this problem, but it works now... :)

Thanks!!




Re: Game Technologies: General error directX plugin

EinSof

I believe the HLSL shader is a problem for a people with video cards that do not have its functionalities.

December 2006+ SDKs have suffer from this problem. The way to solve this is to either use an older version, or grab a DirectXViewer or Maya Plugin from an older version. It works all the same for me.





Re: Game Technologies: General error directX plugin

areia

Hi,
I have the same problem after installing February's DirectX SDK on DirectX Viewer and Maya 6.5. I use a GeForce 7950GT so it doesn't have to do with card's capabilities. Both programs will try loading a ps_1_x effect and won't work. Any suggestions (Except reverting back the SDK version). Thank you.





Re: Game Technologies: General error directX plugin

EinSof

Well you can always use an older version of DirectXViewer or Maya 6.5 plugin compiled from August 2006 or earlier. I have the Februrary 2007 SDK but still use the DirectX Viewer and Maya 7.0 plugin from August 2006. If you are coding, however, you can remove a line of code that tells DirectX to use a certain DirectX feature that causes this problem. The line escapes me, as I have to double check, but it has to do with initializing a feature in DirectX corresponding to the shader.





Re: Game Technologies: General error directX plugin

areia

Thanks for your reply. I guess these two are the only solutions for now. I've found out that my code works okay at October's SDK so I will just revert back and wait till some future DirectX version that has it fixed.





Re: Game Technologies: General error directX plugin

Bob2unlimited

Here is a solution I applied based on what I found on the forums - didn't really see a step-by-step solution so this is for those that may need more explanation.

This is for Maya 6. Unlimited, but should work the same for 7, etc.

1 - In "C:\Program Files\Microsoft DirectX SDK (February 2007)\Utilities\Source\Maya" you will find a few projects for Maya 6,6.5, and 7.

2- Open the solution that has you Maya version, and search for D3DXCreateEffect in the MayaViewr.cpp file.

3- Include the flag D3DXSHADER_USE_LEGACY_D3DX9_31_DLL by logical or '|' with the flags variable: "dwShaderFlags | D3DXSHADER_USE_LEGACY_D3DX9_31_DLL"

4 - Compile the project, and go to Debug/Release folder to get the new D3DMaya6ExportX.mll file.

5 - Backup your current D3DMaya6ExportX.mll in "C:\Program Files\Microsoft DirectX SDK (February 2007)\Utilities\Bin\PlugIns\Maya\Binary(version)", and copy the new one in its place.

Now I am not sure if this works in all situations or if it will cause any problems in the future, but it solved my problem so I am assuming it is correct. Please feel free to correct me if I messed up anything.