* fixes, refactoring & color attribute for planets

This commit is contained in:
end 2016-09-29 02:50:51 +02:00
parent 6b8227b0c3
commit 1ee349e1fb
8 changed files with 111 additions and 67 deletions

View file

@ -0,0 +1,11 @@
R"raw_string(
#version 120
varying vec3 vertex;
uniform vec3 color;
void main()
{
//gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
//gl_FragColor = vec4(0.5+0.5*vertex.xyz, 1.0);
gl_FragColor = vec4(color, 1.0);
}
)raw_string"

View file

@ -0,0 +1,12 @@
R"raw_string(
#version 120
varying vec3 vertex;
uniform mat4 model;
void main()
{
//vec3 p = position + scale*gl_Vertex.xyz;
vec3 p = (model*gl_Vertex).xyz;
gl_Position = vec4(p, 1.0);
vertex = p.xyz;
}
)raw_string"

View file

@ -38,59 +38,31 @@ namespace endofthejedi {
m_particles->upload();
std::string vss_simple =
"#version 120\n"
"varying vec3 vertex;\n"
"void main()\n"
"{\n"
" gl_Position = gl_Vertex;\n"
" vertex = gl_Position.xyz;\n"
"}\n"
#include "simple.vert"
;
std::string fss_simple =
"#version 120\n"
"varying vec3 vertex;\n"
"void main()\n"
"{\n"
" gl_FragColor = vec4(0.5+0.5*vertex.xyz, 1.0);\n"
"}\n"
#include "simple.frag"
;
std::string vss_game_objects =
"#version 120\n"
"varying vec3 vertex;\n"
"uniform mat4 model;\n"
"void main()\n"
"{\n"
//" vec3 p = position + scale*gl_Vertex.xyz;\n"
" vec3 p = (model*gl_Vertex).xyz;\n"
" gl_Position = vec4(p, 1.0);\n"
" vertex = p.xyz;\n"
"}\n"
#include "gameobjects.vert"
;
std::string fss_game_objects =
"#version 120\n"
"varying vec3 vertex;\n"
"uniform vec3 color;\n"
"void main()\n"
"{\n"
//" gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);\n"
//" gl_FragColor = vec4(0.5+0.5*vertex.xyz, 1.0);\n"
" gl_FragColor = vec4(color, 1.0);\n"
"}\n"
#include "gameobjects.frag"
;
m_shader.init();
#if 0
(void) vss_game_objects;
(void) fss_game_objects;
(void) vss_simple;
(void) fss_simple;
m_shader.load(vss_simple.c_str(), GL_VERTEX_SHADER);
m_shader.load(fss_simple.c_str(), GL_FRAGMENT_SHADER);
#else
(void) vss_simple;
(void) fss_simple;
(void) vss_game_objects;
(void) fss_game_objects;
m_shader.load(vss_game_objects.c_str(), GL_VERTEX_SHADER);
m_shader.load(fss_game_objects.c_str(), GL_FRAGMENT_SHADER);
#endif
@ -135,8 +107,8 @@ namespace endofthejedi {
glm::mat4 model = computeModelMatrix(planet);
glUniformMatrix4fv(m_shader.location("model"), 1, GL_FALSE, glm::value_ptr(model));
glm::vec3 c = glm::vec3(0.7, 0.2, 0.1);
glUniform3f(m_shader.location("color"), c.x, c.y, c.z);
glm::vec3 c = planet->getColor();
glUniform3f(m_shader.location("color"), c.x, c.y, c.z);
m_planetModel->render();
}

View file

@ -0,0 +1,8 @@
R"raw_string(
#version 120
varying vec3 vertex;
void main()
{
gl_FragColor = vec4(0.5+0.5*vertex.xyz, 1.0);
}
)raw_string"

View file

@ -0,0 +1,9 @@
R"raw_string(
#version 120
varying vec3 vertex;
void main()
{
gl_Position = gl_Vertex;
vertex = gl_Position.xyz;
}
)raw_string"

View file

@ -0,0 +1,11 @@
R"raw_string(
#version 120
varying vec3 vertex;
uniform vec3 color;
void main()
{
//gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
//gl_FragColor = vec4(0.5+0.5*vertex.xyz, 1.0);
gl_FragColor = vec4(color, 1.0);
}
)raw_string"

View file

@ -0,0 +1,14 @@
R"raw_string(
#version 120
varying vec3 vertex;
uniform mat4 model;
void main()
{
//vec3 p = position + scale*gl_Vertex.xyz;
vec3 p = (model*gl_Vertex).xyz;
gl_Position = vec4(p, 1.0);
vertex = p.xyz;
}
)raw_string"