This commit is contained in:
j3d1 2022-03-09 00:56:20 +01:00
parent fb73ec7c7f
commit e1a41a526d
8 changed files with 38 additions and 33 deletions

View file

@ -17,7 +17,7 @@ void main()
vec2 texCoord = uv.xy - float(int(gaussRadius/2)) * scale; vec2 texCoord = uv.xy - float(int(gaussRadius/2)) * scale;
vec3 color = vec3(0.0, 0.0, 0.0); vec3 color = vec3(0.0, 0.0, 0.0);
for (int i=0; i<gaussRadius; ++i) { for (int i=0; i<gaussRadius; ++i) {
color += gaussFilter[i] * texture2D(tex, texCoord).xyz; color += gaussFilter[i] * texture2D(tex, texCoord).xyz-0.0002;
texCoord += scale; texCoord += scale;
} }

View file

@ -51,7 +51,7 @@ class GameWindow : public endofthejedi::GLWindow {
void resize() override void resize() override
{ {
std::cout<<"resize()" << std::endl; //std::cout<<"resize()" << std::endl;
glViewport(0, 0, getwidth(), getheight()); glViewport(0, 0, getwidth(), getheight());

View file

@ -170,9 +170,7 @@ void RendererPolygon3d::setup() {
renderPlanets(); renderPlanets();
renderShips(); renderShips();
renderMissiles(); renderMissiles();
renderParticles(); renderParticles();
renderTraces(); renderTraces();
glUniform1f(m_shader_game_objects.location("aspectRatio"), m_aspectRatio); glUniform1f(m_shader_game_objects.location("aspectRatio"), m_aspectRatio);
@ -184,14 +182,12 @@ void RendererPolygon3d::setup() {
m_shader_game_objects.bind(); m_shader_game_objects.bind();
configureLightningInShader(&m_shader_game_objects); configureLightningInShader(&m_shader_game_objects);
glUniform1f(m_shader_game_objects.location("aspectRatio"), m_aspectRatio); glUniform1f(m_shader_game_objects.location("aspectRatio"), m_aspectRatio);
renderPlanets(); renderPlanets();
renderShips(); renderShips();
renderMissiles(); renderMissiles();
renderParticles(); renderParticles();
renderTraces();
// postprocessing // postprocessing
m_postprocess_shader.bind(); m_postprocess_shader.bind();
//glColor3f(1.0, 0.0, 0.0); //glColor3f(1.0, 0.0, 0.0);
@ -520,6 +516,10 @@ void RendererPolygon3d::renderPlanets() {
m_planetModel->render(); m_planetModel->render();
} }
} }
/* /*
void RendererPolygon3d::renderSun() { void RendererPolygon3d::renderSun() {
m_planetModel->bind(); m_planetModel->bind();
@ -553,8 +553,8 @@ void RendererPolygon3d::renderMissiles() {
m_missileModel->bind(); m_missileModel->bind();
for (const game::Missile *missile : m_missiles) { for (const game::Missile *missile : m_missiles) {
glm::vec3 c = glm::vec3(1.0, 1.0, 0.3); glm::vec3 c = glm::vec3(missile->color);
glUniform3f(m_shader_game_objects.location("materialColor"), c.x, c.y, c.z); glUniform3f(m_shader_game_objects.location("materialColor"), c.x/2, c.y/2, c.z/2);
// TODO: rename functions so their name represents what args they // TODO: rename functions so their name represents what args they
// take // take
@ -665,6 +665,7 @@ void RendererPolygon3d::renderMissiles() {
glUseProgram(0); glUseProgram(0);
// TODO dont use line mode. make that with own quads // TODO dont use line mode. make that with own quads
glPolygonMode(GL_FRONT, GL_LINE); glPolygonMode(GL_FRONT, GL_LINE);
for (const game::Trace *trace : m_state->traces) { for (const game::Trace *trace : m_state->traces) {
float fade_out = 1.0; float fade_out = 1.0;

View file

@ -38,6 +38,7 @@ namespace endofthejedi {
void renderMissiles(); void renderMissiles();
void renderShips(); void renderShips();
void renderParticles(); void renderParticles();
void renderText(const char *text, float x, float y, float sx, float sy);
void addModel(const std::string &filename, PolygonModel **dest); void addModel(const std::string &filename, PolygonModel **dest);

View file

@ -19,6 +19,7 @@ namespace game {
state->generateId(), state->generateId(),
player, player,
player->ship->position, player->ship->position,
player->color,
-util::deg2rad(m_angle), -util::deg2rad(m_angle),
0.005*player->speed); 0.005*player->speed);

View file

@ -11,9 +11,10 @@
#include <glm/gtx/norm.hpp> #include <glm/gtx/norm.hpp>
namespace game { namespace game {
Missile::Missile(size_t id, Player *player, const glm::vec2 &pos, float angle, float speed) Missile::Missile(size_t id, Player *player, const glm::vec2 &pos, const glm::vec3 &col, float angle, float speed)
: Object(id, pos) : Object(id, pos)
, player(player) , player(player)
, color(col)
{ {
velocity = speed * glm::vec2(std::sin(angle), std::cos(angle)); velocity = speed * glm::vec2(std::sin(angle), std::cos(angle));

View file

@ -58,7 +58,7 @@ namespace game {
size_t planetId; size_t planetId;
}; };
Missile(size_t id, Player *player, const glm::vec2 &pos, float angle, float speed); Missile(size_t id, Player *player, const glm::vec2 &pos, const glm::vec3 &col, float angle, float speed);
~Missile(); ~Missile();
// try to advance. if something will be hit, return the first hit in // try to advance. if something will be hit, return the first hit in
@ -68,6 +68,7 @@ namespace game {
Player *player; // owner won't be hit by own missiles Player *player; // owner won't be hit by own missiles
glm::vec2 velocity; glm::vec2 velocity;
Trace *trace; Trace *trace;
glm::vec3 color;
}; };
} }