DevBlog

Updated to 0.3 with HTC Vive support

Motion sickness has been a major problem in the VR space, but one way to past it is to give users options. In this latest build we have 5 different control systems and handful of anti nausea devices such as blinders, cages and floors.

Updated to 0.2 with DK2 support

Updating Ambient Flight has been a rather tricky job, every SDK broke something new in my scripts and i had to try and fix it only to find that there was bad judder in that particular SDK. Finally one of the latest SDK fixes a lot of issues and i have some new maps for those that have joined the Alpha. Below are some screens.

Detail Textures

One of the dificulties has been with the aerial images only being .3 metres per pixel, so when zooming close to the ground, they were very blurry. The terrain engine has the option of using detail textures also sometimes called splatmaps. One of the unfortunate side effects of this approach is that the secondary detail textures mixed with the aerial images and you could see the tiling of them extend all over the high res aerials. To fix this i will be using a shader that gradually mixes in the detail based on distance. below is a comparison between the pure aerial and the detail texture mixed in over 300 metres.

High Resolution Textures

Unity has a limitation of 4k textures and a limitation of how many of them you can use before the 32 bit editor runs out of memory and crashes. The current Ambient Flight demos are just within these limits with 64 terrain tiles and a 4k texture on each. The problem is that 64 terrains are quite CPU intensive and with only 4k textures i am limited to a flight area fo 15km by 15km. Below is one of my first tests using Amplify Texture which allows me to have a 16k texture per terrain, and expanding the flight area to 30km by 30km with only 16 terrains. Still in the early testing phase with a beta Amplify build, but it is looking promising so far. In the images below, you are seeing 1 x 16k texture on a single terrain.

Cant see the Forest through the Trees

Have been trying really hard to find an optimal solution to rendering lots of trees without melting the graphics card, and i think i might be getting close. I am not entirely happy with the lighting on them as the scene is lit with only ambient light, but i might be able to bake the lights into the trees giving them a bit more contrast. It is corrently running at 100 FPS @ 1080p which is what i am trying to keep it above in case the CV1 ships with a 90hz screen

Getting it Right

The awesome folks at Raptor View Research Institute have been sending me some great image reference for textures and providing valuable information and insights on the flight dynamics of each of the birds. Initially i thought the Peregrine Falcon was the most agile of the Raptors, but thanks to Adam (pictured below) it turns out that the GosHawk has a much higher maneuverability due to its eliptical wings. He suggested 3 bird types that we should include, the Peregrine Falcon, Golden Eagle and Northern Goshawk, as they have wildly different flight dynamics.

Terrain and Textures

The detail we want to achieve with Ambient Flight has been a particular tough challenge, The best Aerial photography is around .25 metres per pixel but is often slightly blurry and grainy, so we are capturing at .5 metres per pixel to keep it clear and allow a larger flight area. Currently the demo has 64 Terrain tiles each with its own 4k texture covering approximately 15km by 15km, and we are approaching the limits of how many terrains the cpu can handle and how many textures can be loaded in video memory. Thankfully the solution comes from a company in Portugal who make a great product called Amplify, that allows you to have textures up to 16k per terrain that stream much like google earth or John Carmacks Megatextures. With this solution we may only need 16 terrains for double the flight area of the current build, freeing up valuable resources for things like....TREEES.

Trees

Trees will be nice, it will give a sense of scale speed and of course realism, but the amount of trees that i want is going to turn Ambient Flight into a slideshow, something that is working so far is to have a high poly tree in the foreground slowly fading into a low poly tree and then into a billboard. Still cant have 25 million trees yet, but im being hopeful with some shader tweaks i can get somewhere decent. Which presents the next problem, my graphics card is faster than yours. I have a script already that changes the shadow quality, AA settings and LOD Bias on the fly by checking every so often how many frames per second you are getting and adjusting these parameters to give you a silky smooth experience. maybe i can tie the tree draw distance and billboard starting distance into the script so it adapts based on your computer specs.

The most frustrating part

When i first started on this project i was already thinking... Wouldnt it be great to fly around mount Everest! Unfortunately that will never happen, and also the reason why i wont be able to take requests for terrains. Everest has been shot with many different photographs at different times of the year... and i am finding this about a lot of places i really wanted to capture, like Machu Pichu, Indonesian Volcanoes, Rio. In fact MOST places have a combination of Low res, Multiple photos, clouds or crappy washed out exposures. This has made looking for good terrains a slow process.