Имена векторов в файлах различных фрагментов и вершинных шейдеров - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь сделать 2 объекта в OpenGL с 2-мя различными текстурами, и один из них должен двигаться.

Я создаю 2-х шейдерную программу и подписываю ее на diffrent, указывает на вкладки.Параметры шейдерных программ выглядят, но программа рисует только один объект (который я использую позже).Правильно ли, если я сделаю файл .frag и .vert одинаковой структуры и имени векторов входа / выхода, но изменил только текстуру и удалил преобразование из статического объекта?

//fragment of moving object
#version 330 core

layout (location = 0) in vec3 position;
layout (location = 1) in vec3 color;
layout (location = 2) in vec2 texCoord;


out vec3 vecColor;
out vec2 TexCoord;


uniform mat4 transform;
uniform mat4 view;
uniform mat4 projection;

void main() 
{
    gl_Position = projection*view* transform * vec4(position, 1.0f);
    vecColor = color;
    TexCoord = texCoord;
} 

// fragment of static object
#version 330 core

layout (location = 0) in vec3 position;
layout (location = 1) in vec3 color;
layout (location = 2) in vec2 texCoord;

out vec3 vecColor;
out vec2 TexCoord;

uniform mat4 view;
uniform mat4 projection;

void main()
{
    gl_Position = projection*view * vec4(position, 1.0f);
    vecColor = color;
    TexCoord = texCoord;
} 
// code of Use()
void Use() const
{
    glUseProgram(get_programID());
}

// Drawing elements in main event loop whiile()
// Draw first object
theProgram_stelaz.Use();
glBindVertexArray(VAO_stelaz);
glDrawElements(GL_TRIANGLES, _countof(indices_stelaz), GL_UNSIGNED_INT, 
0);
glBindVertexArray(0);
// Draw second object
theProgram.Use();
glBindVertexArray(VAO_wings);
glDrawElements(GL_TRIANGLES, _countof(indices_wings), GL_UNSIGNED_INT, 
0);
glBindVertexArray(0);

Теперь программа рисует только второй объект из indices_wings.Я хочу нарисовать два элемента и просто объект из indices_wings должен переместиться.

...