1

プログラミング ガイド バージョン 2.1 の OpenGL の例をいくつか調べています。

OpenGL バージョン 4 を使用する必要があることはわかっています。これは現在は廃止されているためです。バージョン 4 に向けて作業を進めているため、心配する必要はありません。

私が抱えている問題は、明らかに存在しない関数である「glFogCoordf」を使用する例の1つです!

コード:

#include <GL/glut.h>
#include <cstdlib>
#include <iostream>

static GLfloat f1, f2, f3;

static void init()
{
    GLfloat fogColor[4] = { 0.0, 0.25, 0.5, 1.0 };
    f1 = 1.0f;
    f2 = 5.0f;
    f3 = 10.0f;

    glEnable(GL_FOG);
    glFogi(GL_FOG_MODE, GL_EXP);
    glFogfv(GL_FOG_COLOR, fogColor);
    glFogf(GL_FOG_DENSITY, 0.25);
    glHint(GL_FOG_HINT, GL_DONT_CARE);
    glFogi(GL_FOG_COORD_SRC, GL_FOG_COORD);

    glClearColor(0.0, 0.25, 0.25, 1.0);
}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glColor3f(1.0f, 0.75f, 0.0f);
    glBegin(GL_TRIANGLES);
    glFogCoordf(f1);
    glVertex3f(2.0f, -2.0f, 0.0f);
    glFogCoordf(f2);
    glVertex3f(-2.0f, 0.0f, -5.0f);
    glFogCoordf(f3);
    glVertex3f(0.0f, 2.0f, -10.0f);
    glEnd();

    glutSwapBuffers();
}

他のすべての gl...() 関数は以前は機能していましたが、今では glFogCoord{fd}() と glFogCoord{fd}v() は存在しないようです... 私はこれら 2 つの機能のいずれかを一度も使用したことがありません。 CodeBlocks 内のコード補完は、「glFog」の補完を認識しません。

これの理由が何であるか知っている人はいますか?

4

2 に答える 2