Heightmap Terrain Generation?

Started by
2 comments, last by peckerpeck 22 years, 5 months ago
hey guys, i''m trying to figure out how to blend my height bmp with a plane in order to render a heightmap. I don''t know how to set the render state. also just to clarify the esoteric MS docs. i see render ops as follows: lpDev->SetTexture(0,lptex); lpDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); lpDev->SetTextureStageState(0, D3DTSS_COLOROP, D3D_SELECTARG1); now, from what i think i know, doing all 3 lines is basically an explicit way of simply doing the top line. i.e. it says (1) associate the texture to be used, (2) set the 1st argument as the texture (3) output the texture What i''m getting at is i often see lines of texture ops that seem to be...redundant. is my thinking right?
Advertisement
I agree that the texture stage functions can be hopelessly confusing. In fact you see the same sequences so often that you wonder why there aren''t macro''s defined for them to make things simpler for beginners. But, each one of those lines actually does something different, and the flexibility given by having all this micromanagement allows you to do all sorts of effects like alpha blending, lightmapping, bump mapping, etc.

lpDev->SetTexture(0,lptex);
selects lptex as the texture for stage 0 (you have up to 8 stages). note it doesn''t say how stage 0 is used.

lpDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
sets the argument for stage zero to the texture color. not we still don''t know how the argument is used.

lpDev->SetTextureStageState(0, D3DTSS_COLOROP, D3D_SELECTARG1);
sets the operation for stage 0 to take color from arg1, which happens to be the color of lptex.

Is that a really long and convoluted way to do things? It sure is, but you will appreciate the flexability later on when you have to do multitexturing effects.

By the way, the hieghtmap has nothing to do with the textures, but rather the vertices. Basically you take the x,y values of the bitmap for the hieghtmap vertices, and use the color value for the z coordinate. I have some code to do this if you need help.
You wouldn''t be building a voxel engine by any chance would you?
nope...gl if you are

This topic is closed to new replies.

Advertisement