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.