From K-3D

Jump to: navigation, search

GPU-Based Processing



Currently, many modern graphics cards have powerful programmable pipeline functionality, but much of this GPU functionality can not be utilized in K-3D. The goal of this project is to deliver multiple K-3D plugins that use the GPU to perform offline processing. The proposed solution will develop the list of plugins, which will explore a variety of techniques.


In order to explore using GPU processing in the implementation of K-3D filters, the following plugins are to be developed in the GPU-Based Processing project.

1) perform efficient image processing, for example, noise reduction, Blur, Sharpen and kinds of filters.

2) geometric computations, i.e. transparency computation, shadow generation and surface self-intersection.

3) Ray Tracing, using the high performance GPU, Ray Tracing reaches the realtime effect.

4) Non-photorealistic rendering, such as painting, drawing, and animated cartoons.

Project details

In the K-3D, the GPU-Based plugins are categorized to Modifiers in the pipeline. It can process the data through GPU, whether processing the 2D image data or processing the 3D geometric data.

In matrix tools, the transformation of translate, scale, rotate is performed.

In image processing, the rendering images need reduce noise and enhance. At the same time, I can use some predefined convolutions for Blur and Sharpen.

In geometric computations, moderate simplistic subdivision makes the surface and normal cone boxes smaller O(h2) convergence, and will classify many possible self-intersections as not self-intersecting. Transparency computation and shadow generation can use GPU to accelerate.

In Ray Tracing, many aspects can use GPU to accelerate, for example, stackless kd-tree traversal for high performance GPU, Ray Tracing on a stream processor.

In non-photorealistic rendering, when the model has been constructed, the model can be modified to NPR style through the plugin of NPR.

Above many ideas can be implemented to be plugins.

Project Schedule

1) Publish my goals to the K-3D community and try to get some feedback and suggestions on my plans. I will get familiar with the specific K-3D internals that I require for my work. (Until mid of June)

2) Implement plugins in the order they are specified above. That means that I will begin with the implementation of the list of plugins. While the plugins are developed, I will test the plugins. I will try to implement things so that they can be used despite they are not completely finished. (Until beginning or mid of August)

3) Testing of all plugins with the help of the K-3D community. This will begin as soon as one component is finished and should be completed by the end of August.


I am a 22 year old graduate student of Institute of Software, Chinese Academy of Sciences (ISCAS). My major is Computer Graphics. I like it and feel it very interesting and exciting. My experience in C/C++ is 5 years. Experience in graphics development and research is almost 2 years. About one year ago, I start to learn GPU programming, usually using GLSL and Cg.

I usually take part in Open Source activities and is vice president of the Open Source Association of my school. Now I am researching the fast Ray Tracing, GPU. I hope I can bring the new development directions for K-3D based on my current research.