Hello,
I am trying to manipulate the luminance at a pixels given location, but I cannot understand a couple of things. How come the target area tends to be blue?
How can I remove the outline of the area being rendered upon?
bool Render()
{
GLdouble x = myPosition.left;
GLdouble y = myPosition.top;
GLdouble z = 1;
//window coordinents
GLdouble wx = 0;
GLdouble wy = 0;
GLdouble wz = 0;
GLdouble Model[16];
GLdouble Projection[16];
GLint View[4];
glGetDoublev (GL_MODELVIEW_MATRIX, Model);
glGetDoublev (GL_PROJECTION_MATRIX, Projection);
glGetIntegerv(GL_VIEWPORT, View);
//calculate the screen space components
if(gluProject(x, y, z, Model, Projection, View, &wx, &wy, &wz) != GL_TRUE)
return false;
//check if the window positons are outside the window coordinates
if(wx < 0 || wx >= 800)
return false;
else if(wy < 0 || wy >= 600)
return false;
//obtain the pixels at the location
GLint px = (GLint)x;
GLint py = (GLint)y;
GLsizei width = (GLsizei)myPosition.width;
GLsizei height = (GLsizei)myPosition.height;
unsigned char* Pixel = new unsigned char[(width)*(height)];
glReadPixels(x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, Pixel);
//add the lightmap values to the current pixels
int bufpos = 0;
float lmv = 0;
int R = 0, G = 0, B = 0;
for(int y = 0; y < height; y++)
{
for(int x = 0; x < width; x++)
{
bufpos = (width*y) + x;
lmv = LightMap->Map[y][x];
//if(lmv > 0.0666667)
Pixel[bufpos] *= lmv;
}
}
//move the raster pointer
glRasterPos2d(wx, wy);
//copy the memory
glDrawPixels(width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, Pixel);
delete[] Pixel;
//retrun true lol
return true;
};
This looks okay, but there is a noticeable border, and the color is blue.
this one just sucks.
any help is appreciated.