Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 制作高度图的另一种方法_C_Opengl - Fatal编程技术网

C 制作高度图的另一种方法

C 制作高度图的另一种方法,c,opengl,C,Opengl,我想用随机生成的值创建一个2x2数组,然后使用glVertex3i绘制,例如: glBegin(GL_POLYGON); int x = 5; int z = 5; for (int i=0; i<width; i++) { for (int j=0; j<height; j++) { glVertex3i(x, heightmap[i][j], z); } x -= 0.5; z -= 0.5; } glEnd(); glB

我想用随机生成的值创建一个2x2数组,然后使用glVertex3i绘制,例如:

glBegin(GL_POLYGON);
int x = 5;
int z = 5;
for (int i=0; i<width; i++)
{
    for (int j=0; j<height; j++)
    {
        glVertex3i(x, heightmap[i][j], z);
    }
    x -= 0.5;
    z -= 0.5;
}
glEnd();
glBegin(GL_多边形);
int x=5;
int z=5;
对于(inti=0;i也许你的意思是

float x = 5.0f;
for (int i=0; i<width; i++)
{
    float z = 5.0f;
    for (int j=0; j<height; j++)
    {
        glVertex3f(x, heightmap[i][j], z);
        z -= 0.5f;
    }
    x -= 0.5f;
}
float x=5.0f;
对于(inti=0;i也许你的意思是

float x = 5.0f;
for (int i=0; i<width; i++)
{
    float z = 5.0f;
    for (int j=0; j<height; j++)
    {
        glVertex3f(x, heightmap[i][j], z);
        z -= 0.5f;
    }
    x -= 0.5f;
}
float x=5.0f;
对于(int i=0;i
可能有什么问题

让我们从这里开始:

glBegin(GL_POLYGON);
多边形必须是平面的。所有顶点必须位于一个平面内。如果它们不位于一个平面内,则OpenGL不对其渲染方式负责。不能将高度贴图绘制为单个多边形并期望得到合理的结果。必须使用一系列
GL_三角形条带
s或
GL_三角形绘制三角形LES

然后,克里斯蒂安说了些什么

可能有什么问题

让我们从这里开始:

glBegin(GL_POLYGON);
多边形必须是平面的。所有顶点必须位于一个平面内。如果它们不位于一个平面内,则OpenGL不对其渲染方式负责。不能将高度贴图绘制为单个多边形并期望得到合理的结果。必须使用一系列
GL_三角形条带
s或
GL_三角形绘制三角形LES

然后,克里斯蒂安说了些什么