I have a couple of questions about Simplex Noise. I'm using Simplex Noise to generate a terrain in directx but I'm currently doing it using classes and such. I will probably use this for textures as well, so is it necessary to change it into a shader implementation? And if so, is this easily done?
Also, for textures is it better to use 3D or 2D noise?
Best Answer
Yeah, you really should move this work to the GPU, it's what it's best at.
Simplex noise on the GPU is a solved problem. You can find a great paper on the subject here, or you can grab an implementation from here.
That implementation is in GLSL, but porting it is simply a matter of changing vec3's & vec4's to float3's and float4's.
Having used that, I have found that by far the fastest noise function implementation is an implementation of Perlin noise by inigo quilez (the implementation provided below is taken from code found on the shadertoy.com website. It's a great site, check it out!