# hlsl normalize a float9 ?

## Recommended Posts

i have a  float  data[9];

i need to normalize this

but i tryed to do

data = normalize(data)

which it did not like  , because its an array ,

how would i  code this please

Ehm, language?

##### Share on other sites

What sort of data does the float[9] represent? Is it a 3x3 matrix? or perhaps 3 Vector3's?

##### Share on other sites

If data[9] is simply a 9 dimensional vector you can do it manually:

float z = 0;

for(int i = 0; i < 9; i++)
z += pow(data[i], 2);

z = sqrt(z);

for(int i = 0; i < 9; i++)
data[i] /= z; //Or use a temporary vector if "data" is in a constant buffer


If data[9] is a 3x3 matrix divide each value by the determinant.

Do you have to normalize it in the shaders? It would be faster do normalize it in the CPU and send to the shaders.

Edited by TiagoCosta

##### Share on other sites

It depends on how you define 'normalize'. With regards to length, like Tiago posted, so their Pythagorean length is 1? With regards to weighting so they sum to 1?

## Create an account

Register a new account

• ### Forum Statistics

• Total Topics
628330
• Total Posts
2982112

• 22
• 9
• 9
• 13
• 11