# Normal map from heightmap?

This topic is 2207 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I think i read somewhere that if you generate a normal map from the heightmap you don't need normal, binormal and tangent vectors per vertex to transform into object space? I'm not sure but i want to use normal maps to do lighting in my terrain.

##### Share on other sites
Here is the code I use to to this:

 for(int z = 0; z<terrainHeight; z++){ for(int x = 0; x<terrainWidth; x++){ indexNm = z*terrainWidth+x; if(z > terrainHeight-1){ //aboth nmOffset = terrainWidth; }else{ nmOffset = 0; } D3DXVECTOR3 N1 = D3DXVECTOR3(x, heightMap[indexNm+nmOffset],z+1); if(x > 0){ //left nmOffset = -1; }else{ nmOffset = 0; } D3DXVECTOR3 N2 = D3DXVECTOR3(x-1, heightMap[indexNm+nmOffset],z); if(x > terrainWidth-1){ //right nmOffset = 1; }else{ nmOffset = 0; } D3DXVECTOR3 N3 = D3DXVECTOR3(x+1, heightMap[indexNm+nmOffset],z); if(z > 0){//below nmOffset = -terrainWidth; }else{ nmOffset = 0; } D3DXVECTOR3 N4 = D3DXVECTOR3(x, heightMap[indexNm+nmOffset],z-1); D3DXVec3Cross(&normalMap[indexNm], &(N2 - N3), &(N1 - N4)); // cross and done! D3DXVec3Normalize(&normalMap[indexNm], &normalMap[indexNm]); } } 

##### Share on other sites
Thanks, but do i have to use tangents/binormals?

##### Share on other sites
No, you don't. Just look up a terrain lightning tutorial. It's mostly the same like with any other object.

1. 1
2. 2
frob
16
3. 3
Rutin
12
4. 4
5. 5

• 13
• 12
• 59
• 14
• 15
• ### Forum Statistics

• Total Topics
632124
• Total Posts
3004243

×