An experiment to display any FOV (0-360°) in a modern game.
Continuing where blinky left off. Rather than exposing a myriad of options, the goal is to provide an intelligent default projection based on the chosen FOV:
0 90 180 270 360 degrees
|-------------|-------------|-------------|-------------|
straight> | standard | panini | mercator |
or |-------------------|---------------|-------------------|-> equirect when exactly 360
curved> | standard | stereographic | winkel tripel | for panoramic recording
|-------------------|---------------|-------------------|
We are using this minecraft mod as the base for this experiment.
- 🎥 reducing render time
- 🎥 proper camera transforms
- 🎥 split comparing panini hybrid
- 🎥 panini hybrid
- 🎥 first demo
This currently only works for Windows. Run the following to start a game with the mod installed.
gradlew.bat runClient
NOTE: Prior to running this, I had Minecraft and Minecraft Forge installed (both 1.11.2). But I am not actually sure if this is required, since I believe this gradle setup is building the entire game itself from decompiled sources?
IntelliJ can be setup to allow autocomplete, which is useful for exploring the Minecraft/Forge APIs in-place. If you don't wish to use an IDE, you can explore the APIs the old-fashioned way using this Forge javadoc (outdated but probably mostly relevant).
You have to create your own IntelliJ project since it cannot be easily version-controlled. I loosely followed these instructions:
- Run
./gradlew setupDecompWorkspace
- Open IntelliJ
- 'Import Project' > choose our
build.gradle
file - View > Tool Windows > Project
- Right click our
*.iml
file > Import Module - Run
./gradlew genIntellijRuns
- Restart IntelliJ
- Run > Edit Configurations
- Put
-Dfml.coreMods.load=mod.render360.coretransform.CoreLoader
in VM options - Application > Minecraft Client > Use classpath of module >
*_main
- Run > Run 'Minecraft Client'
The game should start with our mod installed.
This will build a jar file that users can install. (Not currently working when I try to install to a 1.11.2 forge mods folder.)
gradlew.bat build
# outputs a jar to build/libs