Adding Dual Quaternion support to UnrealEngine4 (Images inside)

2456

Comments

  • InuGamesInuGames Posts: 49

    nope

    2>D:\Unreal Engines\UnrealEngine-4.19-mod\Engine\Source\Runtime\Engine\Public\GPUSkinVertexFactory.h(20): fatal error C1083: Cannot open include file: 'DualQuat.h': No such file or directory

     

  • InuGamesInuGames Posts: 49

    Ok, it compiles.

    GPUSkinVertexFactory line 20 should be:

    #include "Math/DualQuat.h"

    GPUSkinCache.cpp line 535 should be commented out:

    //        OutEnvironment.SetDefine(TEXT("GPUSKIN_RWBUFFER_NUM_FLOATS"), FGPUSkinCache::RWStrideInFloats);

     

     

     

  • InuGamesInuGames Posts: 49

    Ok, it seems to work. Migrated stuff from 4.18 mod to it and it's looking good on the first sight.

    DQ skinning is definitly here, checked it out by enabling "CPU skinning" in Persona. Also morphs seems to work fine.

    Thank you!!!

    Btw, it's not 1.19 but it's the latest development branch, aka "4.20"

    Can you please describe how do you merge stuff like that with github?

  • Looks like you need to include this path to Include Search Path in order to build it:

    ..\..\Source\Runtime\Core\Public\Math

  • InuGamesInuGames Posts: 49

    Looks like you need to include this path to Include Search Path in order to build it:

    ..\..\Source\Runtime\Core\Public\Math

    No, you shoud #include "Math/DualQuat.h", all other math stuff is included like this in engine source. Check DualQuat.h itself for example

  • Looks like I've merge it with the wrong branch. Need to use the release one. Will do soon.

  • InuGamesInuGames Posts: 49
    edited March 2018

    Looks like I've merge it with the wrong branch. Need to use the release one. Will do soon.

    That would be realy nice, thank you again. I have problems building Substance plugin for developmnet version.

    Is "release" and "4.19" are the same thing?

    PS: Actually, I believe "release" is something else. You should use 4.19 branch

    Post edited by InuGames on
  • I've merged it to master, but I should merge it to release as it's the stable branch.

  • InuGamesInuGames Posts: 49

    I've merged it to master, but I should merge it to release as it's the stable branch.

    Actually, I think you right. "release" is  the latest released version, so it's 4.19.0 right now. Then it will be 4.19.1 etc.

     

  • Here is the screenshot of AlienRenders changes.

    String 

     OutEnvironment.SetDefine(TEXT("GPUSKIN_RWBUFFER_NUM_FLOATS"), FGPUSkinCache::RWStrideInFloats);

    should be there uncommented

     

  • I've just pushed changes to release branch so you could get latest. I haven't applied your suggestions yet, I'll take a look on them later.

  • InuGamesInuGames Posts: 49
    edited March 2018

    Thank you! I'm downloading that now. How do you do those merges? I would like to do it myself but don't know git very well...

    ps. RWStrideInFloats was removed from FGPUSkinCache class in 4.19

    Post edited by InuGames on
  • Fork UE repository at GitHub by pressing "Fork" button. Use a client like SourceTree to clone your forked repository and AlienRenders one. Then use "Create Patch" and "Apply Patch" functionality. Right click on commit -> Create Patch on AlienRenders  repo. Then Actions menu -> Apply Patch in your own repo.

    Or you could not clone AlienRenders repo and use this diff files I've attached to patch your own repo https://www.dropbox.com/sh/iywifmcxqee78ye/AACN0uZFW64RIcC2Tz8UTG44a?dl=0

     

  • ps. RWStrideInFloats was removed from FGPUSkinCache class in 4.19

    Yes, you are right. Haven't notice that. Pushed the changes to release.

  • AlienRendersAlienRenders Posts: 685
    edited March 2018

    I'll try to take a look this weekend for patching UE 4.19.

    To the person asking if this can be made into a plugin, I don't think that's possible afaik. From what I can see, plugins are really just asset bundles. There's one type that has code, but it just exposes an public interface. The changes for DQ requires modifying existing files. If I'm wrong about modules and someone knows more about this, please let me know and I'll take another look.

    edit: I'll see how far I can get on the patch right now.

    edit2: Done. Haven't tested it though.

    Post edited by AlienRenders on
  • InuGamesInuGames Posts: 49
    edited March 2018

    Ok, seems it's working. I built @altair's "release" version plus my 2 fixes above (#include and RWStrideInFloats) and it runs fine. I suppose AlienRenders version is the same, right?

    I had problems compiling Substance plugin, something about PS4 sdk or something. Solved by removing PS4 references from Substance uplugin file.

    Skin cache also seems to work, enabled it and clicked on Recompute tangent in Persona, it definetly does something :) But I still have this normals problem from above :( But I think this is not related to AR's mod. I think there is some dependency between normals and morphs that I don't understand.

    Now I try to see it I can package a project. Then time to play with goodies from Paragon assets bundle (there is already hair mesh and texture from paragon in the pic bellow, but the material is still the old 4.18 one)

    ps: packaging works too

    ScreenShot00102.png
    1936 x 1056 - 1M
    ScreenShot00104.png
    1936 x 1056 - 3M
    Post edited by InuGames on
  • annaputrino

    What's wrong with the normals?

  • annaputrino said:

    But I still have this normals problem from above :( But I think this is not related to AR's mod. I think there is some dependency between normals and morphs that I don't understand.

     Could you show your UE skeletal mesh import settings? I would like to see the normals section.

  • InuGamesInuGames Posts: 49
    edited April 2018

     Could you show your UE skeletal mesh import settings? I would like to see the normals section.

    I import tangents and normals.

    edit: actually I tried to import normals only but the problem remains. Checking "Recompute tangents" solves the problem but makes seams apper between uv shells. Those seams are also related to normals which are not the same on the two sides of the seam. I also replaced my material with a very simple one and the problem is still here. And you can see that the problem is about normals if you choose World normal in Buffer visualisation, you clearly see the difference.

     

    Post edited by InuGames on
  • Can anyone share a prebuilt version? I tried to compile it, even with the latest version of Epic’s version of UE4.19 and it ended up with errors to the point where it fails to compile.

  • has anyone checked out this plugin that was just added to the UE4 marketplace?

    https://www.unrealengine.com/marketplace/blueprint-quaternion-library

  • InuGamesInuGames Posts: 49

    has anyone checked out this plugin that was just added to the UE4 marketplace?

    https://www.unrealengine.com/marketplace/blueprint-quaternion-library

    It's just a blueprint library for dealing with quaternions (as they are meant in math), it has nothing to do with the skinning.

  • dizzy88 said:
    nekyo said:

    @AlienRenders Thought this looked really interesting, was going to try it out but getting a 404 error at your github page.

    You need to:

    1. Sign up for an EpicGames account at www.unrealengine.com

    2. Sign up for a Github account www.github.com

    3. Go to your EpicGames account info page and connect your Github account using your Github username (under "Connected Accounts")

    Then you'll have access.

    I have done all 3 steps, but i'm getting the same 404, and AlienRenders github account shows 0 repositories. :(

  • darienrikdarienrik Posts: 2

    Guys, I can not collect the project.
    You can make the instruction by step.
    How I did:
    1) downloaded from https://github.com/AlienRenders/UnrealEngine/tree/4.19-mod
    2) clicked on the step
    3) clicked on the generatorProject Files
    4) launched the Visual Studio 2017
    5) pressed the BUILD
    As a result, I got errors
    LINK: fatal error LNK1181: can not open input file 'jpeg9b64.slib
    UnrealBuildTool: error: UBT ERROR: Failed to generate item: C: \ UnrealEngin \ Engine \ Binaries \ Win64 \ ShaderCompileWorker-ImageWrapper.dll
    4> Done building project "UE4.vcxproj" - FAILED.
    ========== Rebuild All: 2 succeeded, 2 failed, 0 skipped ==========

    Please help me, I'm not as smart as you. Sorry for my English

  • AlienRendersAlienRenders Posts: 685

    Did you do what I mentioned at the top of this thread? I'll repeat it here:

    Launch the developer x64 command prompt for VS2015/VS2017
    Go to your UE4 folder.
    cd Engine\Source\ThirdParty\libTIFF
    UE4_BuildThirdPartyLib.bat

    Then build UE4.

     

  • darienrikdarienrik Posts: 2
    edited July 2018

    thanks, I'll try

     

    Post edited by darienrik on
  • PedropedregulhoPedropedregulho Posts: 1
    edited July 2018

    anyone know how to install plugins on this moded version? im using PavloGrubyi release version, also do you guys know if there is a way to turn this new skining method in a plugin and sell it in the unreal marketplace? if it is possible to turn in  aplugin would be a good help to newbies like me and the author would make some money.

    Post edited by Pedropedregulho on
  • Do you have plan to update Dual quaternion for 4.20?

  • dizzy88dizzy88 Posts: 49

    Yes, looks like 4.20.1 is out with some fixes.  4.20 seems to have some nice new features, like dual-lobe specular for skin and rectangular area lights.

    I looked into cherry-picking the AlienRenders DQS commit into 4.20, but there were some conflicts that looked non-trivial and I wasn't going to try to fix them myself because I have no idea what I'm doing.

    Any chance of getting DQS into 4.20?  (I personally don't care about the TIFF support, maybe others do...)

  • AlienRendersAlienRenders Posts: 685
    edited July 2018

    I'll try to take a look sometime this week. I'll also disable TIFF by default. That way, people who don't want it won't have to go manually build the third party libs.

     

    Post edited by AlienRenders on
Sign In or Register to comment.