Announcement

Collapse
No announcement yet.

NeoFur : user maintenance thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [PLUGIN] NeoFur : user maintenance thread

    Hello everybody !

    The NeoFur plugin is out of official maintenance since the 4.15 version of the engine.
    Since the owner of the plugin are missing, you can't buy it anymore but before to be taken by aliens, they release the source code to all licencies.

    The source code of NeoFur is not free and we can't give it to anyone.
    We can only share the modification we make in the source between person who already owns the sources...

    This thread is for maintenance only. If you want to discuss the plugin or the situation, please, use the original thread :

    https://forums.unrealengine.com/comm...aces-and-more/

    #freeNeoFur

    That's how people who bought it before Neoglyphic cease to exist were able to compile it for the 4.16 version of UE without any problem (some warnings tho...)
    But it doesn't compile anymore for the 4.17

    I'm every thing but a coder but the error triggered by the compiler are so precise that I manage to find answer to the problems that occures.
    I am now able to compile and run NeoFur for UE4.17 !

    Here's the final result of my empiric researches :

     
    Spoiler

    Compile and serve fresh
    While the first successful launch of the 4.17 editor, it has been stuck at 45%...
    Just delete the Engine->DerivedDataCache folder if you have the same problem.

    Thanks to Nate and Thunderstruck for the shader files hacks ^^.

    This is certainly very hacky and crappy but it works.
    If you want to participate to the maintenance of NeoFur for the future release of UE 4 or can make better modification on the source for the 4.17 version of the engine, please, do it ! I didn't understand the half of what I did here

    SPOILER ALERT !

    Here's the 4 warnings I didn't address :
     
    Spoiler

    They are not a problem for the 4.17 but they will be soon... I didn't found any understandable (by me) documentation on these yet
    Last edited by JoGoiA; 09-15-2017, 03:56 PM.
    Sauvage's twitter - #freeNeoFur

    #2
    I don't own NeoFur, but from the crash log, you should rename "NeoFurVertexFactory.usf' to "NeoFurVertexFactory.ush". Btw, since 4.17 you can have shaders in your plugin's "Shaders" folder.
    | twitter | github | #ue4tip

    Comment


      #3
      @JoGoiA
      I'm also trying more or less with your results ...
      Have you also changed:
      #include "/Engine/Private/Common.ush" in "NeoFurComputeShader.usf" and
      #include "/Engine/Private/LocalVertexFactory.ush" in NeoFurVertexFactory.usf

      Comment


        #4
        Thanks for your help, Nate
        I try to just change the file extension but it didn't work neither...
        The debugger didn't react anymore to the IMPLEMENT_VERTEX_FACTORY_TYPE and start the editor until.... The debugger stop it and give me this as an error :
        Code:
        [2017.09.14-16.04.09:873][  0]LogShaderCompilers: Guid format shader working directory is 7 characters bigger than the processId version (../../../../UnrealProject/SauvageGit 4.17/Intermediate/Shaders/WorkingDirectory/8900/).
        [2017.09.14-16.04.09:873][  0]LogShaderCompilers: Cleaned the shader compiler working directory 'C:/Users/florent/AppData/Local/Temp/UnrealShaderWorkingDir/8DA422AF43F8C2896BBEE7B06FDDF732/'.
        [2017.09.14-16.04.09:876][  0]LogShaderCompilers: Display: Using Local Shader Compiler.
        Fatal error: [File:D:\Build\++UE4+Release-4.17+Compile\Sync\Engine\Source\Runtime\ShaderCore\Private\ShaderCore.cpp] [Line: 476]
        Couldn't find source file of virtual shader path '/Engine/Private/NeoFurVertexFactory.ush'
        UE4Editor.exe a déclenché un point d'arrêt.
        usH files aren't header files ? The ShaderCore can't load my usf file change to ush. I think we need to build a specific ush file...

        EDIT : I just see your message Thunderstruck ^^. I will try this ASAP
        It seems that we can keep the NeoFurComputeShader.usf as a usf. The IMPLEMENT_SHADER_TYPE3 didn't triggers any error.

        EDIT 2 : there's no Common.ush nor LocalVertexFactory.ush in Engine/Private...

        EDIT 3 : I did it ! Thanks to you, Thunderstruck !
        The Common.ush and LocalVertexFactory.ush files are located in Engine->Shaders->Private.
        I make a copy of the NeoFurVertexFactory.usf , change it to NeoFurVertexFactory.ush and modify the include in it to
        Code:
        #include "LocalVertexFactory.ush"
        I keep the NeoFurComputeShader.usf as usf but I change the include :
        Code:
        #include "Common.ush"
        I change the NeoFurShaderInstallCheck.cpp file to copy these shaders from NeoFur/Shader to Engine/Shaders/Private (where are the common.ush and LocalVertexFactory.ush files). It's a Private folder as specified and all files are in it so, no problem to found them from any ush/usf file ^^.
        Code:
        ...
        
        FString ShaderDir = FPlatformProcess::ShaderDir();
        ShaderDir = ShaderDir + "/Private/"; // write the shader files in the folder "Private" in the Engine Shaders directory.
        FString OldShaderContents;
        
                ...
        
        NeoFurCheckSpecificShader("NeoFurComputeShader.usf", NeoFurComputeShader_StaticBuffer);
        NeoFurCheckSpecificShader("NeoFurVertexFactory.ush", NeoFurVertexFactory_StaticBuffer); // Copy the ush file instead of the usf one.
        The files are copied in the good folder, includes the ush files with no problem and the editor launch with no crash !!!
        It had been stuck at 45% during the first loading, I think because of all the crappy tests I made... I just had to delete Engine->DerivedDataCache and relaunch to open the editor

        The shaders are actually compilling... 5284 left and I will see if every things are fine... Can't wait !

        EDIT 4 : Youhou !!
        Click image for larger version  Name:	NeoFur_4.17.jpg Views:	1 Size:	289.6 KB ID:	1353911
        I'm so happy I will soon compile the final result in the first post !
        But I feel a bit like Flemming who discover the peniciline... The plugin works in 4.17 now but I have to confess that's because I forget to change the lines
        Code:
        IMPLEMENT_VERTEX_FACTORY_TYPE(
        FNeoFurVertexFactory, "/Engine/Private/NeoFurVertexFactory.ush",
        and
        Code:
        const TCHAR* FNeoFurComputeShaderCS::GetSourceFilename()
        {
            NeoFurRunShaderCheck();
            return TEXT("/Engine/Private/NeoFurComputeShader.usf");
        }
        NeoFur keep looking at an inexistant Engine/Private folder but the shaders files are in fact in the Engine/Shaders/Private and that how the things works. If I haven't forget to change this, Maybe I will keep trying with no success... Unbelievable
        Last edited by JoGoiA; 09-14-2017, 04:04 PM.
        Sauvage's twitter - #freeNeoFur

        Comment


          #5
          @JoGoiA,
          Thanks, for the guide step by step...
          Works all fine now!

          Next steps for maintenance UE 4.17+:
          1) Fix the warnings, but they seem quite explained.
          2) Remove the shader copy and use the own in a new local folder "Shaders/Private" to follow the new Plugins' rules...
          Last edited by Thunderstruck; 09-14-2017, 07:33 PM.

          Comment


            #6
            About your 2, I fear that it will not be so simple. I believe that the files are modified (something with the version number added to them) during the copy in the folder....
            I'm not sure...
            I will check this

            EDIT :
            In the NeoFurComputeShader.usf file copied in the engine directory, I found this line :
            Code:
            #define NEOFUR_UE4_ENGINE_MINOR_VERSION 17
            Witch is not in the original file (the one in the plugin shaders folder)...
            But we could make this change during the copy of the files from NeoFur/Shaders to NeoFur/Shaders/Private
            We just have to find an equivalent of this
            Code:
            FString ShaderDir = FPlatformProcess::ShaderDir();
            ShaderDir = ShaderDir + "/Private/";  // 4.17 - while the check of the shader file, look in Engine/Shader/Private
            in the InstallCheck.cpp file and make ShaderDir point to the Shader/Private folder of the plugin and it will make the same things but in the right folder...

            Then, we will probably have to change the 2 IMPLEMENT line to get the shader files...

            EDIT 2 : After further test in editor, we've got another problem...
            The NeoFur_compression BP has a compile error. I didn't open it yet to check if it is serious...
            Last edited by JoGoiA; 09-14-2017, 08:33 PM.
            Sauvage's twitter - #freeNeoFur

            Comment


              #7
              Originally posted by JoGoiA View Post
              In the NeoFurComputeShader.usf file copied in the engine directory, I found this line :
              Code:
              #define NEOFUR_UE4_ENGINE_MINOR_VERSION 17
              This seem only a tag with the engine subversion for future use:

              Code:
              // Automatically tag the engine version in this shader so we can do some #if trickery later.
              
                  PluginShaderFileContents =
                      FString("#define NEOFUR_UE4_ENGINE_MINOR_VERSION ") +
                      FString::FromInt(ENGINE_MINOR_VERSION) +
                      FString("\n\n") + PluginShaderFileContents;

              Anyway no hurry,
              for now it's okay
              Last edited by Thunderstruck; 09-14-2017, 08:39 PM.

              Comment


                #8
                I think they use this to check if the files in the Engine folder is up to date or must be rewrite for a newer version of UE, in case they made changes in the shader files.
                We should keep this behavior, maybe we will make such changes one of these days

                Did you look at the compression BP ?
                I will soon but I'm working now and can't access UE until this evening ^^.
                Sauvage's twitter - #freeNeoFur

                Comment


                  #9
                  Originally posted by JoGoiA View Post
                  Did you look at the compression BP ?
                  I will soon but I'm working now and can't access UE until this evening ^^.
                  Yes, The error is easy to resolve in "NeoFurComponent.h":

                  Code:
                  UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NeoFur")
                      float ActiveShellCountScale;

                  Comment


                    #10
                    Well done Thunderstruck !
                    I added this line in the step by step guide ^^
                    I don't think I'd find this easy... I never think to look at this file to correct a compilation problem in a BP
                    Sauvage's twitter - #freeNeoFur

                    Comment


                      #11
                      Hi, how can I get a version of this?

                      Comment


                        #12
                        Sorry, if you didn't buy it when it was available, you can't get it now
                        No one sell it... We all hope that the situation will change but we have no positive sign of this...

                        https://forums.unrealengine.com/comm...faces-and-more
                        Sauvage's twitter - #freeNeoFur

                        Comment


                          #13
                          Unreal Engine 4.18 OK?

                          Comment


                            #14
                            I didn't made the test yet... I will soon but I'm in some dark place, with no bandwidth... I'm almost offline for few days (the landscape is beautifull tho^^)
                            Last edited by JoGoiA; 10-30-2017, 10:03 AM.
                            Sauvage's twitter - #freeNeoFur

                            Comment


                              #15
                              I did it. It's compiled fine with the same mods of 4.17 and works well...

                              Comment

                              Working...
                              X