Posted
almost 18 years
ago
Moonlight|3D gets a big overhaul as local coordinate systems are added for scene objects. The required changes are big and it will still take a couple of weeks to finalize them. This change will make true object instancing a reality. The core
... [More]
application framework is factored out into a separate project. OpenEXR support is finally arriving. Other features and user interface changes are planned for version 0.1.5, but not yet implemented.
Until now Moonlight|3D was missing a very crutual feature because because of a terrible design oversight: object coordinate systems. This is currently being added, but the necessary changes are big and run deep. Also the scene graph structure has changed to allow multiple references to the same node. Together, these two features enable support for true object instancing. This means that the same object is visible at different locations in the scene, although the object itself is only stored once. If the object is edited in one location, the other copy will immediately show the same changes as well. It is the same object, after all. So much for the theory.
In practice, not all parts of Moonlight|3D have been adopted yet. Noticeably, the 3D view and the transformation and extrude tools not yet fully aware of this semantic change in the scene graph and partially broken right now. Also the instancing tool - the very tool that all of this is about - is not yet written.
This change also means that the file format for cached scene graph nodes has changed considerably. The next version of Moonlight|3D will therefore read and write only files in this new format and not be able to read files created with older versions of Moonlight|3D. If you disagree with this decision, please yell now.
Right now we are extracting a generic application framework out of Moonlight|3D. This will be released separately so that other interested developers may use it. Its core is a plugin loader and support mechanism for a dynamically assembled graphical user interface based on Qt Jambi. A default set of plugins will provide common features like application preferences and file loading and saving mechanisms. Like Moonlight|3D it will be available under the LGPL.
We are also happy to announce that the licensing of exrforjava has finally been sorted out completely by Mario Fichtenmayer. It is now available under a BSD-style license. This means that Moonlight|3D can finally ship with a OpenEXR loading and saving plugin that is implemented pure java and runs on every platform on which Moonlight|3D itself runs. This is a big improvement over the earlier OpenEXR support plugin which required native libraries for each platform to work.
The user interface will also get some facelifting: the main window will be switched over to a rearrangeable layout. Qt Jambi provides support for that with its very nice QDockWidget. In the end this will mean nearly complete user control over the arrangement of elements in the main window. The user will even be able to tear off sections of the main window if that is desired.
We are also looking for more keybindings that we can add to streamline the workflow. Suggestions on that area are certainly welcome. Additionally, the 3D viewport navigation might see some enhancements, but this set of changes is still being discussed.
This concludes this rather late and lengthy progress report. Judging from the progress so far, version 0.1.5 of Moonlight|3D might be finalized by the end of october. [Less]
|
Posted
almost 18 years
ago
After two months of development, Moonlight|3D 0.1.4 was released. This new preview version is available in binary form for Linux/x86, Linux/x86_64 and Windows with full source code included in each download archive. The focus of this release was on
... [More]
improving support for Win32 and slight usability enhancements. New features in this release include new light source types and a tool for mesh subdivision.
This is the first release of Moonlight|3D that runs natively on Linux/x86-64. Support for Win32 was also improved and many of the problems that prevented Moonlight|3D from starting on Windows in the past should be fixed in this release.
The user interface has improved slightly: all formerly separate transformation and extrude tools for different object types were unified and have received keyboard shortcuts. Also, option editors were added to all of the geometry primitive generation tools.
In this release, the new light source types spherical and spot light were added. Tools to perform Catmull-Clark subdivision and mesh triangulation are also new additions.
Moonlight|3D can now load and save files in the Wavefront .OBJ file format, although the support for these formats is not totally complete. The XML mesh format of the open source 3D graphcis engine Ogre 3D is now also partially supported as an import and export file format.
Support for the OpenEXR image format is again delayed although it is fully implementd, pending the resolution of some minor licensing details of the library used for this feature.
Version 0.1.4 of Moonlight|3D is available for Linux and Windows from the downloads page.
This release is intended to be the first one to follow tighter release cycles with rougly 2 months between releases instead of 3 to 6 months as in the past. [Less]
|
Posted
about 18 years
ago
Since the last release the separate tools for transforming and extruding have been merged. Some fixed key bindings were added for common tools. More tools now have option editors. File import and export has been implemented for Wavefront OBJ and Ogre
... [More]
XML mesh files. Moonlight 0.1.4 is in preparation. Plans for the near future.
Until the last release there were separate tools for transforming objects, faces, edges and vertices. These have been unified into a common Transform Selection tool that works on everything. The user can also disable/enable the gizmo handles for translation, scale and rotation independently through the tool's option editor. The extrude tools have been unified similarly. Additionally, the usability of these tools on different scales has been improved a bit.
Some keybindings have been added for standard functions as well as for some often used tools (select, transform, extrude, etc.). All mesh primitive creation tools now have option editors for all tesselation parameters.
It is now also possible import Wavefront OBJ files, although not all of the information in the files can be interpreted and stored yet. Support for vertex normals and attributes is missing right now. Similarly, exported OBJ files will only contain the most basic geometry information. The same is true for the support for Ogre .mesh.xml files. Loading and saving a file in this format will probably lead to loss of some of the original data. This will be solved when support for mesh normals is porperly implemented in Moonlight|3D.
Moonlight|3D version 0.1.4 is almost finished. This version will work natively on 64 bit Linux. A new start script for Windows will be added that should do away with the some of the problems Windows users had with the batch file in the last release.
Also outlines of a short term roadmap are visible now that cover versions 0.1.5 and 0.1.6 of Moonlight|3D. The former will probably see true local coordinate systems and object duplication and instancing while the later will probably have a more efficient and more capable mesh data structure. Both changes will break compatibility with files of any previous version, but I expect the new file format after these two changes to be somewhat more stable. [Less]
|
Posted
about 18 years
ago
After more than 6 months of continuous development a new preview version of Moonlight|3D was released today. Qt Jambi from Trolltech provides the foundation of the new, much improved user interface. Among the many changes and additions are
... [More]
transformation gizmos, which make translating, scaling and rotating objects much simpler, and improvements to the integrating Sunflow renderer including support for caustics and global illumination. The program is now licensed under the terms of the LGPL.
Although this release was planned for a while it was delayed considerably because Qt Jambi wasn't released under a suitable open source license until 25. April, which caused the 8 month delay since the last release. Most of the effort in this time span has gone into the migration of the user interface, which was also taken as a chance to improve it considerably.
The addition of transformation gizmos in the 3D view now offer translation, rotation and scaling operations in a combined tool. The completely redesigned toolchest now offers quicker access to more tools than before. In the future, direct access to tool options will also be integrated. Both features enable users to work much faster than before.
Moonlight|3D now presents itself in its own custom and neutral color scheme by default. Additionally, the editors for script languages and GLSL shaders perform syntax highlighting.
Unfortunately, Moonlight|3D is not supported natively on Linux/AMD64 yet because there are problems in the released Qt Jambi source code that prevent it from compiling properly. The support for OpenEXR images also had to be cut on short notice because the licensing of the exrforjava library has not yet been resolved in time, but will be present again in the next release.
Version 0.1.3 of Moonlight|3D is available for Linux and Windows from the downloads page. [Less]
|
Posted
about 18 years
ago
The integrated Sunflow renderer has been updated to version 0.07.2. This opportunity was used to add support for additional rendering settings. The attempt at replacing the current OpenEXR caused confusion in the Sunflow forums because another
... [More]
, already more complete replacement library is in the making. The program core has been refactored to allow multiple documents at the same time.
Christopher Kulla hasn't been inactive in the last couple of months and his Sunflow renderer has made remarkable progress. Moonlight|3D was updated to use the latest version 0.07.2 of that renderer. Sunflow received a new, incompatible interface with this version, which forced us to overhaul the Sunflow plugin in Moonlight|3D, which has gained a couple of new features. Most GI and caustics features of Sunflow are now configurable in the renderer settings dialog. For the moment, however, only a small selection of fixed and not very powerful shaders for Sunflow can be provided by Moonlight|3D. Christopher Kulla revealed that support for shader graphs is planned for one of the next Sunflow releases, which should allow arbitrary shaders that are built graphically.
The work on our replacement OpenEXR library named JEXR has come to a halt because we discovered too late that MarioF also has started work on such a library and is already much more complete than JEXR. We expect to be able to dump JEXR in favor of this new library soon and are monitoring the progress closely on this front. This thread on the Sunflow forum has more information on this.
With the work on JEXR brought to a stop, development focus shifted to a design weakness in the very core of Moonlight|3D. The program lacked a proper encapsulation of all data related to a single scene or "document". The data was distributed across a couple of modules and held together by a series of singleton classes. We refactored the program to remove these singleton classes and create a Document class in its place which acts as a container for all scene data. This has brought a couple of major benefits: There is now a clear separation between a core framework and the 3D modelling features. Additionally, it should now be possible to have more than one document loaded at the same time within a single instance of Moonlight|3D. This is useful for implementing references to objects in other scene files.
The script editor has been made a separate top level window. A UV coordinate editor is implemented partially and a material graph editor has been started. It is not yet certain if these two editors will be completed in time for the next release. Trolltech plans to release a new Qt Jambi beta at the end of April, but it is not yet clear if it will finally receive the license update that we would require for a new release of Moonlight|3D. We plan to make a new release as soon as possible after this legal matter will be sorted out. [Less]
|
Posted
over 18 years
ago
Almost two full months have passed since the last progress report, but there was no standstill: Populating the new toolchest is a lot more time consuming than originally expected, the performance of some tools was improved substantially and a
... [More]
replacement for the current OpenEXR file format support is in the making.
The decision to create a completely different toolchest caused a major and time-consuming restructuring of the code behind all tools in Moonlight|3D. It is mostly complete and the next step will be to make use of the new possibilities of the toolchest to add more features to the tools.
We had to drop the code for rearranging the elements of the main window because there were several unsolved issues with it and it was severely limited overall. Right now the main window layout is hardcoded, but we are looking for alternatives to make it fully dynamic again, including detachable views to get a certain degree of multi-monitor support.
Some long-standing performance issues have been resolved that occurred in the selection tools mostly and also in some other, related tools. With these improvements selecting and handling large numbers of objects and mesh elements like vertices or edges has become much more efficient. However, we are not yet satisfied with the overall performance of Moonlight|3D and will continue to optimize the code.
Additionally, work on a sub-project to replace the current OpenEXR file support with something more reliable than the curren JNI bindings has begun. These bindings in combination with the original OpenEXR libraries provided by ILM proved to be error-prone and difficult to maintain because native binaries must be compiled and tested for every platform that is supported by Moonlight|3D. Therefore we have begun to write a replacement for these OpenEXR libraries in pure and portable Java. This library is completely separate from Moonlight|3D and will also be made available as a separate download for inclusion in other projects. [Less]
|
Posted
over 18 years
ago
The switch to the Qt Jambi user interface toolkit has been completed. The handling of the transformation tools has been improved and a new toolchest is nearing completion. Release of version 0.1.3 must probably be delayed until the final release of
... [More]
Qt Jambi sees the light of day.
The switch to the Qt Jambi toolkit is mostly complete. We have decided to completely overhaul a few things including the toolchest more thoroughly in the process. Those parts which were meant to retain their previous behaviour are already completely ported. Along the way we also added a nice new feature that allows the user to rearrange the contents of the main window by dragging the individual areas around and dropping them where they should go.The transformation tools for objects and meshes got a considerable facelift. These tools now show handles along the coordinate axes that allow the user to constrain translate, scale and rotate operations along the given axes. This facilitates geometry editing in three dimensions a lot. The new, tree-structured toolchest should integrate nicely with this new feature because our plan is to place tool options like transformation constraints (snap to grid, etc.) right below the tool where they belong. Finishing this is our highest priority for the next couple of weeks.We cannot yet foresee when we will be able to release the next version of Moonlight|3D because the versions of Qt Jambi that Trolltech released so far come with a license the prevents us from redistributing their software or any software "statically or dynamically linked with the Licensed Software" (quote from license agreement). Although the process of linking is not as clearly defined in Java as it is in native languages we consider Moonlight|3D to be at least dynamically linked to Qt Jambi, which prevents us from distributing Moonlight|3D itself. Trolltech support employees stated that the license is not likely to change until the final 1.0 release of Qt Jambi, for which no release date has been named yet. However, the license for the final release will allow redistribution of Qt Jambi along with software that depends on it. This means that we are unable to release Moonlight|3D until Trolltech removes the license restrictions.We believe that we will have a completely working UI before Trolltech finishes Jambi, but we do not yet know what tasks we will take on in the remaining time. [Less]
|
Posted
almost 19 years
ago
Development continues. Moonlight|3D will use Qt Jambi for its user interface starting with its next release. The user interface will not change much despite the change.
Moonlight|3D gets a completely redone user interface in its next release
... [More]
, which will be based on Trolltech's Qt library, a proven and mature toolkit. For the most part, the port to Qt is an effort to retain the current workings of the user interface. However, some internal changes were made that will allow noticable future enhancements. Users will at first not notice many differences besides a new look. We hope that the groundwork that is laid at the moment will result in significant usability improvements in the future.Only small progress has been made in other areas of the program. The main emphasis of the upcoming release lies in the polishing of the work that has been done so far. We hope to increase the stability of the program considerably.Significant new features will be added only when there is time left before Trolltech releases a final, redistributable version of Qt Jambi. The company has so far not made any definitive statements about the roadmap of this library. Until then it is not possible for us to release a new version of Moonlight|3D. [Less]
|
Posted
almost 19 years
ago
Today a new preview version of Moonlight|3D got released. New features include a UI-less batch mode for script execution, import from and export to foreign file formats, integration of the Sunflow renderer, texturing and GLSL support. The GLSL editor
... [More]
included in Moonlight|3D allows instant preview of the shader in the 3D view.
Today a new preview version of Moonlight|3D got released. New features include a UI-less batch mode for script execution, import from and export to foreign file formats, integration of the Sunflow renderer, texturing and GLSL support. The GLSL editor included in Moonlight|3D allows instant preview of the shader in the 3D view.The other new features are:
support for history truncation
a persistent scene element cache
support for lasso type selection in all selection tools
additional mesh tools
loading of additional plugins from arbitrary locations
Version 0.1.2 of Moonlight|3D is available for Linux and Windows from the downloads page. [Less]
|
Posted
about 19 years
ago
Today the Moonlight|3D team made their new community portal available to the public. The developers believe that user feedback is important for the success of this project. Therefore they want to make this portal a place for both community feedback for the developers and community support for the users.
|