Search Unity

HORIZON[ON] - Bridge the gap between the sky and your scenery.

Discussion in 'Assets and Asset Store' started by Becoming, Jul 30, 2014.

?

In which scenarios would you use Horizon[ON] ?

  1. Small to medium sized terrains (first/third person view/driving game)

    33.8%
  2. Small to medium sized terrains (flying game)

    17.5%
  3. Big to huge sized terrains (first/third person view/driving game)

    41.3%
  4. Big to huge sized terrains (flying game)

    32.1%
  5. Small to medium sized terrains on mobile (first/third person view/driving game)

    16.9%
  6. Small to medium sized terrains on mobile (flying game)

    13.0%
  7. Big to huge sized terrains on mobile (first/third person view/driving game)

    16.3%
  8. Big to huge sized terrains on mobile (flying game)

    18.0%
Multiple votes are allowed.
  1. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Horizon[ON].jpg

    Links: Demo PC | Demo Mac | Manual | Asset Store
    Horizon[ON] is available on the Asset Store for $45,-
    Main
    • extend your terrain towards the horizon at a minimum cost
    • insane view distances at minimal cost
    • smooth blending
    • works for terrains of any size(with unity terrains or mesh terrains)
    • extremely adjustable & artist friendly workflow
    • very low on draw calls
    • mobile friendly
    • works with Unity 4.6 free version
    • ready for Unity 5
    • now with prefab painter with auto combine function (thousands of objects in on mesh)
    • 3 trees types included (+ 8 Variations for each)
    • 20 buildings included
    Shaders/Materials
    • multi_compile shaders - use only the features you really need
    • clever material management
    • tidy custom material inspector
    • PBR, but still adjustable to your needs
    • works with OpenGL, DX9, DX11,
    • works in Linear and Gamma Space
    • IBL Ambient Lighting & Specularity
    • ambient override and tint to easily match your scenery
    • 4 Layers for different terrain types on one horizon
    • detail textures and normal maps
    • emissive channels for distant city lights, volcanos or else...
    • water & ice (oceans, rivers, lakes...)
    • height based fog
    • vertical cliffs
    • displacement
    • tesselation(DX11 only)
    • dynamic snow
    Blendobjects
    • easily add hills and cliffs to the horizon with a minimum of polygons
    • add tesselated parts to the horizon for great detail
    • all perfectly blended with the horizon object
    Q: Does Horizon[ON] work with Unity 5’s Lighting?
    A:
    Yes, sure, if you mean U5’s spherical harmonic ambient lighting, yes.

    Q: Does Horizon work with Enlighten?
    A:
    No, it does not need to. Terrains and generally outdoor scenes, are pretty much ideal situations for dynamic IBL(Image Based Lighting - Light coming from a skybox). Lightmapping or precalculated lighting on an object of thousands of square km size would not be a good idea anyway. You can however, use Enlighten on your closeup terrain(s) and geometry and still use Horizon[ON].

    Q: How well does Horizon work with “Time of Day“ or other sky assets.
    A:
    Very well, Horizon[ON] has been extensively tested with TOD and it is a perfect combination. Not only produces TOD very good looking skys, it also gives great dynamic lighting on Horizon[ON]. Also it comes with an ImageFX for atmospheric scattering(basically a more realistic fog). I can recommend TOD wholeheartedly.

    Q: How does the blending(transition) from my terrain to Horizon[ON] work.
    A:
    There are a few ways to do it. The regular way would be to flatten the terrain on the outside edges and overlay the transition object from Horizon[ON] onto your terrain. In my opinion this is the best option as it is easy to do and gives great visual results. Usually you can not let the player get too close to the edge of the terrain without revealing limited range and the square shape of your environment. With Horizon[ON] you can allow the player to get very close to the edge ad still hold the illusion of an infinite world. There are also other way to do it. In my tests it was perfectly feasible to just place the terrain a bit above Horizon[ON] and do no transition at all. The edge of the terrain will just look like a hill in fron of the horizon. This way the player can still come fairly close to the edge, especially if the player can not take very elevated positons, but even if so it can still work fine. Another method would be just a intersection between your terrain and the geometry of Horizon[ON]. if you match the colors of Horizon[ON] well enough with the colors of your terrain this can work quite well too, especially if you put additional detail like rocks, trees, buildings, roads, etc. over the parts where the intersection occurs. Lastly there is also the possibility to create your own transition mesh and use that but this option is the most tricky one and is usually not needed. Which of the described methods works best in your case, you have to find out on your own as i can not generalize all kind of terrains and the usecases.

    Q: Can objects like trees and buildings be placed on Horizon[ON].
    A:
    Sure and i recommend to decorate Horizon[ON] further, especially in proximity of the walkable terrain. Horizon[ON] comes with a building and tree placer script, also there are some trees and buildings included that are very efficient to render(many times more efficient that SpeedTree trees for example). You can also place any other objects on Horizon[ON].

    Q: How can i match Horizon[ON]’s built in Fog and Snow with my objects,
    A:
    I included a building and a tree shader made with shader forge. You could either use these directly or you can duplicate them and make your own shaders out of it. The included shaders have a node setup that uses the same properties as the Horizon[ON] shaders, that means you can control these shaders and Horizon[ON]’s shaders at the same time and get the same results(Fog Density, Snow Amount, etc.). E.g. When you increase the snow amount it would be done so for all objects on Horizon[ON]. Also there is an asset called “UBER Standard Shader Ultra”, i recommend looking into it, It is in my opinion the best and most complete shader solution for Unity. It also allows you to control things like snow with very little effort and very convincing results. With very little scripting you could sync Horizon[ON]’s snow with the snow from UBER.

    Q: Does Horizon[ON] use a lot of textures and therefor much memory?
    A:
    No, not neccesarily. While you can crank up the resolution of your textures to the maximum for astonishing results, it is by no means neccesary to do so for a AAA look. Horizon[ON] does utilize tiling textures and detail textures to make the impression of huge textures with much higher resolution than are actually used. You could easily have a very good looking horizon with detail objects and a terrain in the middle and your scene would still fit into a 10mb Webplayer.

    Q: Can Horizon[ON] be used in only one direction or does it have to be all around?
    A:
    No, it does not have to surround your terrain. If your player will never look behind a hill for example, i recommend to remove all the geometry behind it. What can never be seen should not exist in your scene.

    Q: Is it possible to use Horizon with a mesh based terrain instead of a Unity terrain?
    A:
    Absolutely, the terrain in the example scene is such a case... what you put in the center of Horizon[ON] is up to you.

    Q: Can i use Horizon[ON] with a multi-terrain setup?
    A:
    Yes you can, just use it as it would be a single terrain and put Horizon[On] around that.

    Q: How does the making of a new horizon work, do i paint the heightmap just like with Unity’s terrain?
    A:
    No, it is different. Horizon[ON] supports up to 4 layers + water, each of these layers can be described as a whole terrain type(meaning that it has its own heightmap, colormap, normal map, etc.). These layers are then blended together using a 4 channel mask image, which you can draw in photoshop or Gimp.

    Q: Ok, so how do i make a new layer then?
    A:
    That depends on your favourite workflow and what you expect from the final look. Possible tools to use are: Worldmachine, TerrainComposer, WorldComposer, ZBrush, MudBox, Photoshop/Gimp... What you need to end up with, is a topological image of a terrain type(e.g. desert) for your new layer. You dont need to make a heightmap if you dont use displacement and you dont need to make a normal map if you never going to enable normal mapping. However if you do use the full feature set of Horizon[ON], you get the best results by making a heightmap and normal map that fits your colormap. If you have your layer finished you should make it tileable so you can get a much higher texel resolution. I personally would recommend to either use world machine to generate the needed maps or to use a satelite data grabbing tool like “WorldComposer“. With the satelite data you get a Colormap and a fitting heightmap. This heightmap can be used to generate a normal map from(eg. using CrazyBump, xNormal, etc.... you can also generate a normal map in WorldMachine or Terrain Composer from a heightmap).

    Q: How many polygons does Horizon[ON] use?
    A:
    That depends heavily on your case, you can have it ranging from less than 50 triangles, to millions of triangles. There are many ways to reduce the polycount drastically in a lot of cases you can reduce the triangle count by a factor of 10 or more in the optimizing stage... baking the displacement(given that you use displacement), exporting the meshes, combining them to one and letting a polygon optimizer run over it, is a good idea, especially if you want to squeeze the most performance out of Horizon[ON]. Though horizon is still very fast with a few polys more... Also take note that shadows can impact your stats dramatically.

    Download The Horizon[ON] Game (windows only, made with Version 1.0)
    Leaderboard:
    1st Place - spryx - Score: 15.072.400 (Prizes won: Horizon[ON], SnazzyGrid2, SnazzyPaint)
    2nd Place - TonanBora - Score: 9.086.000 (Prizes won: SnazzyGrid2, SnazzyPaint)
    3nd Place(shared) - svaldenegro - Score: 3.654.900 (Prizes won: SnazzyGrid2)
    3nd Place(shared) - Makingames - Score: 2.377.300 (Prizes won: SnazzyGrid2)
    3nd Place(shared) - Dante20011 - Score: 2.127.900 (Prizes won: SnazzyGrid2)
    Leaderboard:
    1st Place - Zeblote - Score: 18.404.100 (Prizes won: Horizon[ON], SnazzyGrid2, SnazzyPaint)
    2nd Place - Xenonus - Score: 17.655.100 (Prizes won: SnazzyGrid2, SnazzyPaint)
    3nd Place - cg_destro - Score: 3.270.200 (Prizes won: SnazzyPaint)
    Leaderboard:
    1st Place - jmjd - Score: 15288100 (Prizes won: Horizon[ON], SnazzyGrid2, SnazzyPaint)
    2nd Place - ZedalisDesign - Score: 14823700 (Prizes won: Horizon[ON], SnazzyGrid2, SnazzyPaint)
    3nd Place - Gekigengar - Score: 1830300 (Prizes won: SnazzyPaint)
    The Horizon[ON] Game competition is closed! You can still play it(link above), it does not show the full quality of Horizon[ON] as it was not made with the latest version but it can still give you an idea how Horizon[ON] can look in the context of a simple game, and its fun.

    Please still pariticipate on the poll, i am always interested what are you going to use Horizon[ON] for.

    Regards,
    Peter
     
    Last edited: Nov 8, 2017
  2. mimminito

    mimminito

    Joined:
    Feb 10, 2010
    Posts:
    780
    Wow, looks great! Does this only work for terrains?
     
  3. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    :) Thanks! it does work for anything square(or rectangular)... it works best if the terrain(or mesh) is flattened on the outside edge as this gives the best blending from terrain to horizon but that is optional.
     
  4. mimminito

    mimminito

    Joined:
    Feb 10, 2010
    Posts:
    780
    Ok thanks. Was just thinking if this was used with something over than a Terrain (I know its probably a rare case) would it still work. Great job, the blending looks lovely
     
  5. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,765
    That does look like it works very well, nice job.
     
  6. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Looks like a great solution, definite interest here.
     
  7. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    Looks nice. I'm assuming it makes use of a separate, tiling image to give the effect? Or would it work with terrains that were different on each side?
     
  8. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Thanks, Yeah, in this case yes. It will work with all kind of landscapes though, i am currently working on ocean blending and want to add rivers too, so in the distance you can see water sparkling in the sun. It uses masks for such things as water vs terrain blending. Also there will be shaders of different complexity, the most powerfull one will feature PB/IBL and have a global color map, global normal map, detail color and detail normal map. For mobile, simpler shader mutations are included. Of course if you want perfect results the used global colormap/normal map should go well together with the maps from the terrian. Satelite images grabbed with WorldComposer work really well in my tests and i look forward to when i am able to present more screenshots or builds.
     
    John-G likes this.
  9. Wavinator

    Wavinator

    Joined:
    Dec 24, 2013
    Posts:
    79
    Great work, this definitely looks promising! Is it more geared for use at edit-time or can this be setup and configured during runtime? I'd love to use something like this in a huge open world game with streaming/paging terrains.
     
  10. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Thanks :) Well, it depends, in such case i would suggest to use a global colormap that is tileable and make sure that the horizon is always far enough away so imperfections are not so appearant. All textures are projected top down in worldspace so when the horizon is moved the textures will stay in place. Its surely not ideal but i think its still much better than having no horizon. The horizon solution is also quite nice when it is almost completely covered by fog. We used an early version of Horizon[ON] on the WorldComposer presentation:



    Of course this is very far away but it still improved the look a lot, without it we would have a harsh line at the end of the terrain. Something like that (maybe not as far away like shown in the video) would work well and with the newly added features it should be possible to reduce the terrain draw distance quite a bit without breaking the illusion.

    I'll try to test a scenario like the one you describe before release and see how it looks.
     
    Climber-fx likes this.
  11. dakka

    dakka

    Joined:
    Jun 25, 2010
    Posts:
    113
    Very nice, how does it work with billboards ?
     
  12. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    You mean tree billboards? works just fine!
     
  13. dakka

    dakka

    Joined:
    Jun 25, 2010
    Posts:
    113
    Yah sorry, tree billboards. Looking nice.
     
  14. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Fantastic! Exactly what I need. Thank you and I look forward to the release. :)
     
  15. larsbertram1

    larsbertram1

    Joined:
    Oct 7, 2008
    Posts:
    6,901
    hi peter,

    this really looks astonishing, well done!
    from what you have written so far i guess your technique is quite similar to the one described here:
    http://blog.wolfire.com/2009/07/blending-land-and-sky/
    ?
    so i assume hat you add one large plane which is covered by the terrain’s global color and normal map to fill the ground and add a smoothly blended fog or horizon band to hide the edge?

    if so, how does it effect fillrate?

    lars
     
  16. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Hi Lars :)

    Thanks, yes it is somewhat similiar but not entirely. It is indeed a transparent object rendered last in the queue, to be honest i cant tell about the fillrate as i know no direct way to check. However performance seems not to be an issue from what i can tell, as there is absolutely no measurable difference in profiler or stats comppared to an empty scene apart from triangles/verts, texture and the 1 drawcall.

    stats.JPG

    This is the stats window with nothing but the horizon in the scene, i dont know why the vbo is at 16 as it should only be 1 and there is actually only 1 texture used not 2. As usual the stats window gives not much information but anyway... The profiler says that the horizon takes only 0.01ms to render and the rest seems to be the GFX wait for present, that is all i can tell with my artist knowledge.

    This is with the simple shader on it but the more complex ones are not noticably slower, probably because it only covers a small percentage of the screen.

    When i am done with the shaders i will let Tom(for those who dont know, i am referring to the author of RTP) take a look at them to approve everything is alright. With his help i am sure we get it optimized enough to run on an pocket calculator. :D
     
  17. larsbertram1

    larsbertram1

    Joined:
    Oct 7, 2008
    Posts:
    6,901
    hi peter,

    if at least the extended terrain plain is rendered lastly it should not be that expensive as most pixels are skipped due to z culling.
    same for the horizon band but it should be much cheaper to be rendered per pixel anyway.
    you will just not get anything for free.

    so congrats!
    that seems to be a very nice and hopefully handy extension to make great looking and cheap to render environments.

    lars
     
    twobob likes this.
  18. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
  19. Play_Edu

    Play_Edu

    Joined:
    Jun 10, 2012
    Posts:
    722
    Great assets. look like infinity environments with less draw call.
     
  20. Mol20K

    Mol20K

    Joined:
    Jun 23, 2014
    Posts:
    21
    This looks great is it already available in the store?
     
  21. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    What if your horizon line would naturally have buildings?

    I'm thinking of a scenario where I might have the player on one side of a river and skyscrapers on the other side of the water as a horizon.
     
  22. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Objects that are very vertical are best placed as billboards or low resolution meshes on top of the horizon object, skyscrapers are good examples of such objects. The usual way is probably the best in this case.

    For distant mountains i will include some mountain objects that can be placed and blended with the horizon object. You can also model your own and use the included shaders for blending. I'll make a guide how to prepare models for these shaders.

    Thanks! Not yet, follow the thread, i will for sure post it when i submitted it to the store ;)
     
  23. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    Ah, I saw in action quite an early version of this toy (considered to use this on our "RTP island demo") as Becoming showed this to me. I'd expect best stuff here as Peter (aka Becoming) is one of the most inventive developers I've ever met - and any performance tweaks in shader will be probably not much necessary I guess :) - working in ShaderForge he feels like fish in the water...
     
  24. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Really cool project.
     
  25. i9mobile

    i9mobile

    Joined:
    Aug 8, 2013
    Posts:
    54
    very nice, any news on release date?
     
  26. zeman97

    zeman97

    Joined:
    Sep 22, 2012
    Posts:
    53
    Wow this looks amazing, exactly what I've been wanting for my game worlds! Can't wait for release!
     
  27. janpec

    janpec

    Joined:
    Jul 16, 2010
    Posts:
    3,520
    PERFECT. 100% buy:D
     
  28. hunterua

    hunterua

    Joined:
    Nov 5, 2009
    Posts:
    42
    What is estimations for the release date ?
     
  29. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    Added to instabuy list.
     
  30. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I am thinking this was abandoned sadly. I really wanted this asset.
     
  31. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    It might have just been pushed back. My impression is there were other projects underway that might have crowded it.
     
  32. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    Not abandoned. Peter is currently working on some other issue. Yesterday he asked me to work a bit on shader for Horizon. So - stay tuned (patiently) :)

    ATB, Tom
     
    John-G, Teila and Gekigengar like this.
  33. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yay! As long as it is coming someday, I can be patient. Thanks, Tom.
     
  34. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Thomas,
    Thanks for the link to SnazzyGrid in your signature or I might have never known about it! Looks great, off to buy!
     
  35. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Indeed, i needed to prioritize some other things... Horizon[ON] is the next thing on the todo list and it wont take long to finish, as it is already very advanced and the project i am working on is probably done tomorrow :)

    Thank you Tom for telling me about the posts here, i didn't get any alerts.
     
    Don-Gray, Teila and wetcircuit like this.
  36. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Cant wait for this one. :)
     
    broesby and Don-Gray like this.
  37. davbar9

    davbar9

    Joined:
    May 19, 2014
    Posts:
    62
    A news for available on asset store?
    And the prize?
     
  38. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Waiting....

    :)
     
  39. Cargh

    Cargh

    Joined:
    May 17, 2011
    Posts:
    36
    Really looking forward to this. Take my money!
     
  40. broesby

    broesby

    Joined:
    Oct 14, 2012
    Posts:
    118
    How does it work... Is it shader-based??

    I ask because I was wondering how it would work with something like USky https://www.assetstore.unity3d.com/en/#!/content/24830 and other things meddling with the horizon like Silverlining Skies... How would a sunset work lightning wise... ;-)
     
  41. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    How is the horizon generated?

    How much manual work do I have to put into to make HorizON work?
     
  42. broesby

    broesby

    Joined:
    Oct 14, 2012
    Posts:
    118
    Not much going on here :-(
     
  43. cybervaldez

    cybervaldez

    Joined:
    Aug 16, 2014
    Posts:
    87
    Watched. Also author's snazzy grid is on sale today, a must-buy!
     
  44. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Hey, thanks for the kind recommendation! i would not have noticed that snazzy grid is on sale...
     
    Last edited: Dec 31, 2014
  45. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Nice one picked up a copy. Look forward to this release also.
     
  46. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Release is coming closer, very close :D All features are built in, just a little polishing of the inpector and a few more lines to write for the Manual...

    tease, tease ;)
    pREVIEW.jpg preview2.jpg

    What you see on these images is just Horizon[ON], no terrain or image effects whatsoever... in fact you could even use it as a terrain itself. Tom, the author of RTP who ported the shaders for me(he could not resist to even add more features) called it "Pocket-Terrain". Its definitely no replacement for RTP so dont expect that but i think Horizon[ON] could maybe be described as RTP for the distance. I am really happy with what we were able to achieve and can't wait to get it into your hands!
     
  47. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    Friggin beautiful, how is it generated anyways?
    Automatically? Manually?
     
  48. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    I feel like a kid waiting for Christmas morning. Can't wait :)
     
  49. Z43D

    Z43D

    Joined:
    Jan 2, 2013
    Posts:
    100
    I can't wait to see what kind of impact this will make on my environment!
     
    Teila likes this.
  50. Stiffx

    Stiffx

    Joined:
    Oct 27, 2014
    Posts:
    455
    wow this is really impressive, keep it up