mikeman

04-14-2004, 06:19 AM

Can anyone explain to me how to use the noise functions?Whatever the input is,the output is always 0.0

I'm using GFX5200 (56.64 drivers)

I'm using GFX5200 (56.64 drivers)

View Full Version : Noise functions

mikeman

04-14-2004, 06:19 AM

Can anyone explain to me how to use the noise functions?Whatever the input is,the output is always 0.0

I'm using GFX5200 (56.64 drivers)

I'm using GFX5200 (56.64 drivers)

Corrail

04-14-2004, 06:46 AM

noise functions are not yet implemented in those drivers.

mikeman

04-14-2004, 06:51 AM

I was afraid of that.Do you know if they're going to support it in future drivers or i have to buy a new card?

Mazy

04-14-2004, 06:58 AM

its very possible that you dont get HW accelerated noise in current generation cards. ATI has noise implemented but that throws the shader to software render. Why not upload a 3d texture and lookup until we know that noise works in hw?

Corrail

04-14-2004, 08:57 AM

Why not upload a 3d texture and lookup until we know that noise works in hw?

Why isn't it possible that the driver does exactly this for you? So noise can also be used...

Why isn't it possible that the driver does exactly this for you? So noise can also be used...

Mazy

04-14-2004, 12:54 PM

since that takes a textureslot? well, i guess they can make it that way, but they havent yet :)

Humus

04-15-2004, 08:46 AM

I'm not sure the texture way would be conformant. It would be a repeating noise function. I think the spec requests a non-repeating noise function.

simongreen

04-15-2004, 01:32 PM

Well, all noise implementations repeat at some point, it's just a question of what the period is.

We do have pixel shader implementations of real Perlin noise, but they take about 40 instructions. For now I recommend people just use 3D texture lookups.

Originally posted by Humus:

I'm not sure the texture way would be conformant. It would be a repeating noise function. I think the spec requests a non-repeating noise function.

We do have pixel shader implementations of real Perlin noise, but they take about 40 instructions. For now I recommend people just use 3D texture lookups.

Originally posted by Humus:

I'm not sure the texture way would be conformant. It would be a repeating noise function. I think the spec requests a non-repeating noise function.

Hampel

04-18-2004, 04:42 AM

I want to use this Perlin Noise (http://mrl.nyu.edu/~perlin/noise) implementation for CPU based noise calculations. But this is a function from R^3 to R.

What would be the best way, to extend it for the GLSL suggested noise functions:

float noise1(float);

float noise1(vec2);

float noise1(vec3);

float noise1(vec4);

vec2 noise2(float);

vec2 noise2(vec2);

vec2 noise2(vec3);

vec2 noise2(vec4);

vec3 noise3(float);

vec3 noise3(vec2);

vec3 noise3(vec3);

vec3 noise3(vec4);

vec4 noise4(float);

vec4 noise4(vec2);

vec4 noise4(vec3);

vec4 noise4(vec4);

What would be the best way, to extend it for the GLSL suggested noise functions:

float noise1(float);

float noise1(vec2);

float noise1(vec3);

float noise1(vec4);

vec2 noise2(float);

vec2 noise2(vec2);

vec2 noise2(vec3);

vec2 noise2(vec4);

vec3 noise3(float);

vec3 noise3(vec2);

vec3 noise3(vec3);

vec3 noise3(vec4);

vec4 noise4(float);

vec4 noise4(vec2);

vec4 noise4(vec3);

vec4 noise4(vec4);

simongreen

04-21-2004, 04:45 PM

Usually vector-valued noise is implemented on top of scalar noise by simply evaluating the noise function several times at n random offset positions, e.g.:

vec3 noise3(vec3 p)

{

return vec3(noise(p),

noise(p + vec3(31, 72, 54),

noise(p + vec3(156, 87, 99));

}

This is obviously n times more expensive than scalar noise.

Perlin doesn't give the code, but the algorithm can be extended to other dimensions.

Originally posted by Hampel:

I want to use this Perlin Noise (http://mrl.nyu.edu/~perlin/noise) implementation for CPU based noise calculations. But this is a function from R^3 to R.

What would be the best way, to extend it for the GLSL suggested noise functions:

float noise1(float);

float noise1(vec2);

float noise1(vec3);

float noise1(vec4);

vec2 noise2(float);

vec2 noise2(vec2);

vec2 noise2(vec3);

vec2 noise2(vec4);

vec3 noise3(float);

vec3 noise3(vec2);

vec3 noise3(vec3);

vec3 noise3(vec4);

vec4 noise4(float);

vec4 noise4(vec2);

vec4 noise4(vec3);

vec4 noise4(vec4);

vec3 noise3(vec3 p)

{

return vec3(noise(p),

noise(p + vec3(31, 72, 54),

noise(p + vec3(156, 87, 99));

}

This is obviously n times more expensive than scalar noise.

Perlin doesn't give the code, but the algorithm can be extended to other dimensions.

Originally posted by Hampel:

I want to use this Perlin Noise (http://mrl.nyu.edu/~perlin/noise) implementation for CPU based noise calculations. But this is a function from R^3 to R.

What would be the best way, to extend it for the GLSL suggested noise functions:

float noise1(float);

float noise1(vec2);

float noise1(vec3);

float noise1(vec4);

vec2 noise2(float);

vec2 noise2(vec2);

vec2 noise2(vec3);

vec2 noise2(vec4);

vec3 noise3(float);

vec3 noise3(vec2);

vec3 noise3(vec3);

vec3 noise3(vec4);

vec4 noise4(float);

vec4 noise4(vec2);

vec4 noise4(vec3);

vec4 noise4(vec4);

Powered by vBulletin® Version 4.2.2 Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.