Nyssa 3D is a cross-platform, realtime, 3D engine written in C++ for games and simulation development. The engine currently runs on Windows and Mac (with plans for Linux) and supports DirectX and OpenGL. Nyssa can simplify and reduce the workload of cross-platform development by allowing you to write your shaders once and compile them to your target platform(s). Check out the features page for more information.
The SDK has been updated with specific builds for Visual Studio 2008, 2010, and XCode4 in 32 and 64 Bit flavours. This includes library files and working projects to get you started quickly!
The new version of Nyssa3D is now available to download! So what’s changed?…Alot! Here is a brief run down of some changes:
- Shadow casters have been improved and re-written. They can also be created, tweaked, and saved via the Scene Editor! It’s also now easier to implement your own casters and receivers if you wish.
- Nyssa now uses its own Array, List, and String libraries. This was done for consistency across APIs and compilers. Performance was also increased some what.
- Meshes can now be lit using custom light shading so that light behaves differently on different surfaces. For example, different shading for plastic or wood objects. Some information about this has been added to the manual.
- Standard culling has been improved, but of course you can still define your own!
- Memory pools are used during material compiling to improve memory usage. They can also be used for your own purposes.
- Create scene nodes with FPS collision handling quickly.
- Triangle colliders improved for large numbers of triangles. These are best created via the Scene Editor and saved to file.
- Scene Editor has been improved.
- Game loop can now support pause menus.
- Render interpolation improved.
- Resources can now be added to the virtual file system when the engine initialises. This is to support archiving and/or hiding media away from the user.
…And too many bug fixes to list!
Any applications or scene files created with the previous version of Nyssa will not be compatible with the new version Unfortunately. So if you wish to upgrade an old app then some code changes will be necessary. And any scene files will need to be recreated through the Scene Editor.
Nyssa still has some issues on systems with Intel graphics. Turning off shadows on these systems is recommended. Also make sure your graphics drivers are up to date on all systems.
If you have any questions or issues with Nyssa3D please send me an email and I’ll do my best to help.
The next update should be released in June! Check back soon for more updates.
Progress for the next update is going well! I’ve spent a bit of time on improving the stability and feature set of the scene viewer. This is a fairly important part of the engine because it allows you to apply materials to meshes and generate triangle colliders offline thus reducing your applications workload at runtime.
A main feature added to the scene view is the ability to apply and remove shadow casters for each light type and adjust their settings on the fly to get that perfect look. It makes a rather tedious operations less of a hassle. These settings can then be saved to an xml file for loading into your application.
The way shadow casters were implemented has been redesigned to make adding new variants easier to implement. The quality of all the built-in shadow casters have been improved and the directional lights now use cascaded shadow maps with a few extra techniques to improve their quality.
And of course more bugs have been found and fixed as well as improving general performance.
The last few weeks has been devoted to improving shadow map quality! Cascaded shadow maps have been added for directional lights, as well as removing all shadow jitter when the camera moves around the scene. Edge jitter was a very annoying and distracting thing!
I’ve added a brief discussion about some shadow mapping methods I’ve been trying out. You can read about it here.
Lot’s of additions, changes, and fixes are currently underway for the next version! Among them are custom and templated string, array, and list containers that provide excellent performance when compared to the stl implementations.
Memory pools have also been added which the new containers can take full advantage of! The addition of memory pools greatly reduce memory fragmentation and can improve the speed of events such as shader generation.
Triangle collision detection has been greatly improved thanks to the addition of kd-trees. This tree structure divides a meshes triangles into partitions allowing groups of triangles to be quickly discarded as possible colliders. This improvement will also be seen during decal generation.
Improving shadow maps is a big item on the road map and will hopefully make it into the next release if time allows.
There are also bug fixes, compatibility issues and general improvements that will be seen in the next version too. If you have any issues with the SDK please let us know via the forums so a fix can be made for the next version.
Happy coding everyone!
A material guide has been added to the documentation section that describes the various features of material and effect files and how to use them. There is also some brief information for artists and programmers on exporting models from your modeling package so they can be imported into the engine.
Nyssa 3D has been released! You can find and download the SDK from here and the API documentation can be found here. I’m currently working on some tutorials to make getting started a little easier. In the mean time however the SDK contains alot of example code and ready to run binaries.
The engine is still very much in its early stages and therefore optimization hasn’t been a major priority at this point. As the release becomes more stable and polished I’ll be looking at how to push the performance further…but it’s not too bad at this point either! I would also like to see the engine running on Linux in the near future.
I’ll also be setting up a forum for general questions and errors.
I’ve been spending most of my time commenting and documenting the engine…It’s kind of relaxing….a nice change of pace from debugging!
On debugging, there are a few issues on the mac version at the moment that are causing some graphics and UBO problems but hopefully that gets sorted soon.