Trace: » dev
Aqsis Development Guide
This section contains links to pages covering all developement topics, from obtaining and building the source, to the papers describing the internal workings of Aqsis itself. It's also intended to be a place for shite boarding and discussing implementation of features.
Before editing/submitting any content be sure to read the information on the Index page first.
How to Contribute
All Aqsis developers are volunteers, and we always welcome new contributors. We have a process of authorisation that allows new developers to begin contributing immediately, without compromising the stability of the code. The reason for this process is that the Aqsis codebase is a very complicated thing, and can sometimes trip up the unwary and unfamiliar. The process for new developers is as follows…
- Firstly, all developers should be familiar with the development guidelines guidelines, detailed below. In particular, developers should take care to read the coding guidelines before starting to write code.
- Once the code is building successfully, and changes are being made, the new developer should submit patches to the developer mailing list aqsis-development@lists.sourceforge.net with a suitable explanation of the reason for the patch, and the changes included.
- There it will be reviewed by the existing developer community, and comments will be posted to the list
- Once the patch is reviewed and accepted, it will be applied by an authorised developer using the explanation from the mailing list, and attributing the changes appropriately.
- When a new developer has successfully completed a reasonable number of accepted patches, an authorised developer can nominate them for authorised status. This includes direct access to the Subversion repository. The nomination is in public on the developer mailing list.
- The developer community is encouraged to comment in public about the nomination for a period of time.
- If there are no objections from the community, the developer will be given authorised status, allowing direct commits to the Subversion repository.
- Authorisation can be revoked in the future if the developer fails to follow proper commit protocols resulting in disruption to the development community.
Developing with Aqsis
These pages are intended to help prospective developers get up to speed with the tools and processes employed in Aqsis developement.
- Building Aqsis - Instructions on how to build Aqsis using the CMake environment
- Release Procedure - Instructions for primary developers on the process of officially preparing an Aqsis update/release.
- Source Code Documentation - Where to find, how to improve developer information.
- General Guidelines - Tips on creating patches, branching sources and so on.
- Coding Guidelines - Coding standards/styles and related information.
- Roadmap - Where is Aqsis going, what needs to be done.
- Regression Testing - Using the regression testing suite.
- Performance Testing - Performance test cases.
- HOWTOs - Information about specific topics related to Aqsis development.
Aqsis Internals
These pages describe the existing, implemented features of aqsis, and the techniques they are based on
- Pipeline - The internal Aqsis pipeline.
- Boost Shared Pointers - How to work with the Boost libraries shared pointers system.
- Micropolygon Dumps - This page describes the process and format for dumping micro polygon grid data.
- Code Review - A full, module by module, review of the Aqsis code.
- Sampling - How does the micropolygon sampling work in Aqsis? Covers static, motion blurred and focus blurred sampling.
- API Coverage - List of what RI API calls are implemented and to what level.
- Template Tricks - A list of neat template tricks which have been used somewhere in the Aqsis source.
Designs and Discussions
- Aqsis File Format - Aqsis file format specification.
- Grid Crack Solutions - Discussion of the nature of the grid crack problem, and possible solutions.
- Multi-threading (WiP) - Designs and discussion of Multi-threading issues (work in progress).
SCons Build System - Implementation of the SCons build system.Source Tree Refactor - Proposed refactor of the source tree.- Primitive Visibility During Auto Passes - Provide fine control over primitive visibility to auto passes, such as autoshadows.
- RIB parser rewrite - Design requirements for a new RIB parser to replace the current yacc/lex based system.
- Object Allocation Tracking - Propose a system to allow easy tracking of object allocation to determine memory and performance hotspots.
- Surface Parameter Rewrite An alternative strategy for managing and accessing surface parameters.
- Instrumentation - What performance and other statistics information do we need and how do we best gather and present it?
- New Texture Library - Design document for the new texture library
- New Framebuffer Tool - Design and ideas for Aqsis' new advanced framebuffer/image processing tool.
- Exceptions Specification - <needs a description>.
- Sampling Rewrite - Designs for a new micropolygon sampling strategy.
- Beaker - Global optimisation branch
Proposals
- Kiwi - Official Aqsis/RenderMan Softimage XSI Plugin.