This is part of my undergraduate graduation project. For the complete report, please see my dissertation (in Chinese).
Graphics Processing Unit (GPU) develops rapidly in recent years, more and more focuses are being placed on developing high quality and photorealistic rendering system on GPU. In 2009, Kun Zhou et al., from Graphics and Parallel System Lab of Zhejiang University, developed the RenderAnts renderer, which was the first Reyes renderer running entirely on GPU.
RenderAnts takes advantage of the parallel processing capabilities of GPU, obtaining acceleration over an order of magnitude, when compared with traditional renderer which runs on CPU. However, to apply RenderAnts in real-world workflow of film making, it’s necessary to design and develop an efficient and easy-to-use material editor, then integrate it into commercial modeling or animation system.
This article describes a user-friendly client for RenderAnts, focusing on the design and implementation of graphical material editor and 3dsMax plugin.
Graphical Material Editor visualizes shading-nodes' topology of material, and eases the material editing job by simple parameter-tuning and linking node's output to parameters of other nodes.
The design of the Graphical Material Editor is inspired by 3dsMax's Slate Material Editor. And it's developed with Qt's Graphics View framework.
The 3dsMax plugin's main job is to help RenderAnts fetch scene data from 3dsMax, e.g. models' vertices list, camera matrix and lights. RenderAnts renderer runs in a separate process, so the 3dsMax plugin communicates with it by inter-process message passing. I design an efficient and extensible way for managing data and messages between the two peers. The core ideas are summarized below:
Below are some screenshots of the running system.