Я настраиваю цифровую аудиовизуальную рабочую станцию для генеративной музыки.Мне нужно визуализировать фигуры из нечетных вершин.Я еще не узнал, как тесселяции пересекающихся вершин, хотя я не думаю, что на экране ничего не должно быть.Я все еще получаю пустой черный экран.Кроме того, мои окна GLUI мерцают и активируются только при нажатии.Как заставить мои данные отображаться на экране?
Я пробовал множество устаревших функций GL и сейчас пытаюсь использовать современные функции GL.Я все еще ничего не вижу на своем экране.
Код: https://pastebin.com/pAeGynGL
void display(void)
{
//glfwMakeContextCurrent(wavebricks_window);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Set background color to black
and opaque
glLoadIdentity();
//glTranslatef(1.5f, 0.0f, -7.0f);
glClear(GL_COLOR_BUFFER_BIT );
glLoadIdentity();//
for (int it =0; it<instruments.size();it++){
alGetSourcef(instruments[it].soundsource, AL_SEC_OFFSET, &tracking);
instruments[it].currentStep=tracking*(60/tempo);
instruments[it].currentStep=tracking;
instruments[it].tempo=tempo;
instruments[it].render();
float verts[instruments[it].voices_spinner*3];
float colors[instruments[it].voices_spinner*3];
std::string vertexShader;
std::string fragmentShader;
for(int i=0; i<instruments[it].voices_spinner; i++){
verts[3*i]=instruments[it].instrumentPoly[i][0];
cout<<"\n"<<verts[3*i]<<",";
verts[3*i+1]=instruments[it].instrumentPoly[i][1];
cout<<verts[3*i+1]<<",";
verts[3*i+2]=instruments[it].instrumentPoly[i][2];
cout<<verts[3*i+2]<<":";
colors[3*i]=-instruments[it].instrumentPoly[i][3];
cout<<colors[3*i]<<",";
colors[3*i+1]=-instruments[it].instrumentPoly[i][4];
cout<<colors[3*i+1]<<",";
colors[3*i+2]=-instruments[it].instrumentPoly[i][5];
cout<<colors[3*i+2]<<";\n";
}
unsigned int buffer;
glGenBuffers(it, &buffer);
glBindBuffer(GL_ARRAY_BUFFER,buffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(verts),verts, GL_DYNAMIC_DRAW);
glDrawArrays(GL_TRIANGLES, 0, instruments[it].voices_spinner);
vertexShader="#version 330 core\n"
"\n"
"layout(location=0) in vec4 position;\n"
"\n"
"void main()"
"{\n"
"gl_Position=position;\n"
"}\n";
fragmentShader="#version 330 core\n"
"\n"
"layout(location=0) out vec4 color;\n"
"\n"
"void main()"
"{\n"
"color =
vec4(colors[i*3],colors[i*3+1],colors[i*3+2],1.0);\n"
"}\n";
glEnableVertexAttribArray(0);
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,sizeof(float)*3,0);
unsigned int shader= CreateShader(vertexShader, fragmentShader);
glUseProgram(shader);
}
//glFinish();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
cout << " WaveBricks v 1.0\n copyright 2019 Noah
King(wittymoniker.com)\nmain console window. begin init gl:";
glutInit(&argc, argv);
alutInit(&argc, argv);
glfwInit();
// glewInit();
WBInit();
initMainBoard();
//
///////////sldjadajsdjjsdaldjsjddjlwdjljw;
glfwMakeContextCurrent(wavebricks_window);
while(!glfwWindowShouldClose(wavebricks_window)){
glutSetWindow(mainboard_pane);
glutMainLoopEvent();
glfwMakeContextCurrent(wavebricks_window);
glClear(GL_COLOR_BUFFER_BIT);
display();
glfwSwapBuffers(wavebricks_window);
glfwPollEvents();
}
return EXIT_SUCCESS;
}
Соответствующие функции: display()
и main()
.
Я ожидал увидеть фигурына моем экране, но вместо этого он прозрачный черный без данных, независимо от того, как я манипулирую своими вершинами.Возможный намек на ответ: каков диапазон камеры GLFW по умолчанию для камеры?Как я могу быть уверен, что мой товар находится даже на экране?Мои вершины выглядят так: https://gyazo.com/fbe4408693b1b2c72f127912425ad247