Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Graphics fallback lighting
01-27-2012, 05:07 AM,
#1
Graphics fallback lighting
I know texture combiners are from hell.

But I still have been wondering if it is possible to get per vertex lighting with car paint.

My idea has been to use the first texture unit to blend car color with the texture. This works fine.
Code:
            // stage 0
            glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);

            // blend car decal with car color
            glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
            glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
            glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
            glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_TEXTURE);
            glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
            glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
            glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);

            float color[4];
            i->GetColor(color[0], color[1], color[2], color[3]);
            glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);

Then use the second texture unit to apply lighting. Here I am getting the lit fragment color only as output, almost like it is ignoring the previous stage.
Code:
            // stage 1
            glstate.BindTexture2D(1, i->GetDiffuseMap());
            glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);

            // modulate stage 0 result by fragment color, lighting
            glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
            glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
            glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
            glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
            glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);

@joevenzon any ideas?
Reply


Messages In This Thread
Graphics fallback lighting - by NaN - 01-27-2012, 05:07 AM
[No subject] - by NaN - 01-27-2012, 05:20 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)