0

OpenGLでハイトマップ画像を使って地形を作ろうとしています。実験として、4x4 ピクセルの画像を使用します。これは拡大したスクリーンショットです。ピクセルが見えるようにします。

ここに画像の説明を入力

これは私のコードの一部です。

ILubyte * image = ilGetData();

int bpp =  ilGetInteger(IL_IMAGE_BPP);
std::cout << "BPP = " << bpp << std::endl;

for (int z=0; z < terrainHeight; ++z)
{
    for (int x=0; x < terrainWidth; ++x)
    {
        pVertices[z*terrainWidth+x] = NxVec3(NxF32(x),
            NxF32(image[z*terrainWidth+x]*bpp), NxF32(z));
    }
}

for (int i=0; i < vertexCount; ++i)
{
    std::cout << "x = " << pVertices[i].x << "\t y = " 
            << pVertices[i].y << "\t z = " << pVertices[i].z << std::endl;
}

次に、次の結果を得ています。

ここに画像の説明を入力

(0,0)、(1,1)、(2,2)、および (3,3) のゼロ値 (y 座標) を期待しています。しかし、結果は異なります。期待した結果が得られないのはなぜですか?

4

1 に答える 1

2

image[(z*terrainWidth+x)*bpp]の代わりにすべきだと思いますimage[z*terrainWidth+x]*bpp

于 2012-05-11T17:59:21.650 に答える