Tree generation is now in! Using a combination of instanced rendering and multidrawindirect, coupled with the really cool Weighted Order Independent Transparency technique, we can now render hundres (thousands?) of trees without any sorting or worrying about intersections.
(all screenshots are available in higher resolution in the media section)
- It started off with a few instances and awfull placement. Performance wasn't nearly good enough.
- The position computation pre-pass wasn't really cooperating with us at first:
- But we got there in the end:
Now we just have to optimize culling and shading a bit until we get back up to 60FPS. All screnshots taken at 1080p with 2xMSAA.
Lack of updates as usual, I know. Most of the fun stuff is over on GitHub.
However, from time to time, I do manage to implement a giant block of functionality that I just need to show off on here.
For the last 3-4 months, I've been rebuilding my platform code (window support, input, threading, etc) to allow for the development of a full blown, in-game editor that you can bring up at any time.
The design is heavily inspired by every engine out there (Unity, Unreal, Godot, etc), but the in-game aspect is inspired by the engine that most inspired my and sparked the start of development for this framework. Torque3D.
Since the last post, the framework received some major updates that touched many parts of the underlying resource management and rendering systems:
The rendering and update system has been refactored to allow any number of players in a split screen scenario. Each player is bound to a specific input device.
Another useful feature that has been added is the hot-reloading of external files: shaders, scripts, language files, etc.
Other features include:
- Multi-threaded resource loading
- ChaiScript support: http://chaiscript.com/
- Velocity buffer rendering
- Better file-management support
Quick demonstration of the new Forward+ renderer with 100+ lights on screen. A better version, with 1000+ lights will be uploaded soon.
Implementation is based on this blog post: http://bioglaze.blogspot.fi/2014/07/2048-point-lights-60-fps.html
- Very good scaling.
- Point & Spot lights supported
- Compute based culling
P.S. : Is it just me, or is the codding style (and class structure for that matter) used in Aether3D surprisingly similar to my own? Hmm ...
The final version of the presentation will include a detail explanation of the the system actually works, because it's very interesting and straight-forward.
A quick update with the G.O.A.P. based A.I. fighting it out in a Capture the Flag scenario. Video is in Romanian; sorry about that. An update version will be posted eventually with complete details.