je les suivantes Mandelbrot code en C++ pour une utilisation avec opengl mais les couleurs ne sont pas correctes, ce sont les couleurs souhaitées: Bad coloriage en Mandelbrot avec C++ et OpenGL
mais je reçois ceci:
int vala = 600;
int valb = 600;
//render one frame
void Application::render(void)
{
// Clear the window and the depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//render grid
Image img(vala, valb);
double MinRe = -2.0;
double MaxRe = 1.0;
double MinIm = -1.2;
double MaxIm = MinIm+(MaxRe-MinRe)*vala/valb;
double Re_factor = (MaxRe-MinRe)/(vala-1);
double Im_factor = (MaxIm-MinIm)/(valb-1);
unsigned MaxIterations = 250;
for(unsigned int y = 0; y < img.height; y++){
double c_im = MaxIm - y*Im_factor;
for(unsigned x=0; x< img.width; ++x){
double c_re = MinRe + x*Re_factor;
double Z_re = c_re, Z_im = c_im;
bool isInside = true;
for(unsigned n=0; n<MaxIterations; ++n){
double Z_re2 = Z_re*Z_re, Z_im2 = Z_im*Z_im;
if(Z_re2 + Z_im2 > 4)
{
isInside = false;
break;
}
Z_im = 2*Z_re*Z_im + c_im;
Z_re = Z_re2 - Z_im2 + c_re;
double z = sqrt(Z_re*Z_re + Z_im*Z_im);
int brightness = 256. *log(1.75 + n - log(log(z)));
img.setPixel(x,y, Color(sin(time)*brightness, sin(time/2)*brightness, brightness));
}
}
}
img.scale(this->window_width, this->window_height);
renderImage(&img);
//swap between front buffer and back buffer
SDL_GL_SwapWindow(this->window);
}
Quelqu'un sait pourquoi cela se produit et comment y remédier?
Merci beaucoup.
À part 'glClear (...)', il n'y a pas un seul bit de code GL ici. Je suppose que l'implémentation de 'Image' ou' renderImage (...) 'est à blâmer, mais aucun d'eux n'est montré. Si vous produisez directement dans un fichier image au lieu de GL, cela change-t-il quelque chose? –
@ AndonM.Coleman Il ne peut pas être beaucoup de code openGL, mais le reste du programme comprend de nombreuses lignes de code openGL donc le programme lui-même doit être 100% OpenGL supporté. Image et renderImage ne sont pas le problème, je le garantis. Le problème vient de l'équation pour imprimer les couleurs ... – Gera
Oh, je vois. J'ai interprété la question comme si l'image sur le dessus était * également * générée en utilisant ce code et que l'image faussée était le résultat d'une tentative d'affichage dans GL. –