Thanks to visit codestin.com
Credit goes to github.com

Skip to content
freethenation edited this page Oct 19, 2011 · 18 revisions

OpenCLNoise is An extensible interactive python library for generating and combing different types of 3D coherent noise on the GPU using OpenCL.

Quick Start

  1. Install OpenCLNoise – LinuxSetup
  2. Use OpenCLNoise – UsingOpenCLNoise
  3. Extend OpenCLNoise – AddingNewFilters

FAQ

What is coherent noise?

Coherent noise is often used by graphic programmers for a wide range of tasks including terrain generation and natural looking texture generation. Generating coherent noise consists of many operations at thousands of points and is therefore computationally expensive. There are several popular open source coherent noise generations targeting the CPU (http://libnoise.sourceforge.net/) but none targeting the GPU.

Coherent noise functions are constructed in such a way that a single point can be evaluated efficiently without evaluating the values of its neighbors. Evaluating the value of a single point is inherently a serial operation and our implementation does not try to paralyze the evaluation of a single point. Usually it is desirable to evaluate the value of many points at once and this evaluation is what our library parallelizes.

What types of noise can OpenCLNoise generate?

OpenCLNoise allows you to combine different types of noise in an infinite number of combinations. The primitive noise types OpenCLNoise supports are:

Primitive noise can be combined using the filters:

Additional primitive noise types and combiner filters can easily be added to OpenCLNoise. For more info consult AddingNewFilters.

How fast is OpenCLNoise?

The capabilities of coherent noise libraries vary a lot. It is therefore difficult to test the speed of a coherent noise library. To test the speed of OpenCLNoise we ran the code on the CPU and compared the run times to the code running on the GPU. Running on a modern CPU and on a modern GPU the GPU runs about 15X faster. Additional details of performance testing can be found here.

Clone this wiki locally