This trippy Minecraft movie, posted way back on August 26th, 2016, just popped on my Reddit feed a couple of times. I finally decided to watch it earlier today, and made a mental note to come back and feature it in a post.
From the author:
Getting a lot of new comments on this one, seems to be a surge of popularity or somethin. Just wanna direct everyone who wants to know more about how I made it to please CHECK THE DESCRIPTION because I seriously wrote a couple hundred words explaining most of the process and providing various links including a FULL PROJECT FILES DOWNLOAD that you may or may not be able to get running yourself (I could do it on a laptop but you mileage will vary).
Comment posted by MiningGodBruce on YouTube one month ago.
This was a really fun project to work on and I really encourage anyone interested to read the description before you email me with additional questions. Also you should make your own vids if you enjoy this, I started making these vids because I saw some in a similar style and I wanted to copy them, I ended up learning programming working on these vids and now I’m majoring in Computer Science at uni. Good luck fellas
As stated in the video’s description, it took MiningGodBruce 250+ hours of recording time, and in the area of 20 hours for the final rendering. It took almost a year to produce, and years of “esoteric” knowledge of a variety of mods, including GLSL Shaders mod.
You can download the video from the description, available in 1080p, 1440p, or 2160p (4K) at 60, 90, or 144 FPS. He does detail some of the info used, and even adds a warning indicating just how deep he got into the production. Here’s the full quote from the description:
From MiningGodBruce’s video description. Deep stuff.
–– Details [ ᴡᴀʀɴɪɴɢ: ᴅ ᴇ ᴇ ᴘ ! ] ––- Recorded with Minema at 3840×2160, 90 FPS- Recorded on Minecraft 1.7.10, as it is the last Minecraft version with Minema’s chunk preloading feature- Terrain generated on Minecraft 1.2.5 with a retro terrain mod called “Generator Ports”- Track was put together using MCEdit and WorldEdit Wrapper- Shaderpack was built off SEUS v10.2 preview- Macros and Keybinds Mod was used to automate the recording setup- Sony Vegas was used for general editing while setting up the track- After Effects was used for final arrangements and rendering- Encoded with FFmpegThe rest of these details are mostly things I want to remind myself of later. Very technical, will not hold your hand but I will try to answer any questions if you ask in the comments.”Frustum Culling” (the culling of chunks from the GPU renderer if they are outside the field-of-view) had to be disabled. This is because large-scale terrain deformations I do in this video make culled chunks visible to the player. I disabled frustum culling by editing the Mineshot and Minema source code (thanks to BarracudaATA for making them open source and easy to compile). Disabling frustum culling takes an insane amount of VRAM, this prompted me to upgrade from a 780 Ti to a 980 Ti.While playing around in the Minema source code, I managed to get chunk preloading to work with Optifine (the two are normally incompatible). This means I could have potentially recorded at far+ view distances with chunk preloading. However, I chose not to do this because I was already using nearly 6 GB of VRAM with a regular far view distance.The “Non-Euclidean Terrain Transitions”, require that frustum culling is disabled, and chunk preloading is enabled. The transitions work by having both terrain models within in the player’s view distance (in the world they are placed side-by-side), merging the terrains into the same position in a vertex shader, and then deciding which terrain is visible inside a fragment shader by constructing a second pseudo-frustum out of the cobblestone gateways. Because 2 terrain models are loaded within a single view-distance, the size of the terrain models must shrink to fit inside the view-distance. I covered this up by having the fog reduce the visibility distance whenever the player is near a transition. The terrain endpoints were stretched in the shadow-map to keep them contiguous.For every Acid Interstate video, I sync things by recording a copy of the video with the coordinates open. I use this copy of the video as a coordinate reference. For this video I created a beatmap, and then used the coordinate reference to find the coordinates of torch-outposts and endpoints for terrain animations.The terrain animations were controlled by the player’s world space x coordinate. This works out because the player’s camera path consists of straight linear movement towards x+ (the ascent at the beginning of the video is controlled by a vertex shader displacement). This was done because neither of the GLSL Mod’s time variables (worldTime and frameTimeCounter) can be consistently synchronized between recordings.I ripped out the default day-night cycle and implemented my own inside the shaderpack. Doing this allowed me to adjust the length of the day to better fit with the song. This also allowed me to skip the nighttime because it didn’t really fit.The video recording was split into 6 segments, each covering about 2,000 blocks. The segments were then combined in my editing software. I split the recording because Optifine does some sort of model-space refresh every ~4,000 blocks, and sometimes chunk preloading stops functioning after the refresh. Splitting the segments up into smaller chunks also allows for less recording commitment, and helps flush memory bottlenecks, however it exasperates issues if recordings are not perfectly synchronized. Splitting recordings also means I’ll have to deal with 36 video files for the VR cubemap.
You can find Bruce on Twitter, last.fm, and Github.