Cheerz,
I would like to introduce the small port (the credits to original author are provided on the page) to Java I have finished recently, which would allow you to create normal and dudv maps without the recurrence to 3rd part software, you can do it directly from your code. I made this port, since I could not find any Java implementation.
To include the lib in you Maven project you could use https://jitpack.io/:
<dependency>
<groupId>com.github.serhiy</groupId>
<artifactId>texture-manipulation</artifactId>
<version>0.0.1</version>
</dependency>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
The result of applying the filters in correct order should look like:
How it works?
There are few examples on the GitHub, but you pass the BufferedImage to the convert function of appropriate class and receive a new BufferedImage which can be either height (or simply greyscale), normal or dudv map.
Why(and where) it is useful?
In my case for example I am automatically generating normal and dudv when adding the texture to my texture atlas (in the tool I am building). Of course you can use more sophisticated tools for doing that, but when it is automatic it costs you less time ofc.
Feel free to give feedback. I might consider adding new features if requested and I find the algorithms for that in the Web.