From 6a6f0446ace69ca8893b46daec30a9cdc080c39f Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 20 Apr 2014 19:33:35 +0200 Subject: [PATCH 01/34] Add Transparency buffer --- data/shader/postprocessing/combine.frag | 3 +- src/display/rendering/buffernames.h | 2 ++ .../rendering/defaultrenderpipeline.cpp | 6 ++-- src/gamestate/gameplay/gameplayscene.cpp | 31 ++++++++++++++++++- src/gamestate/gameplay/gameplayscene.h | 1 + src/main.cpp | 2 +- 6 files changed, 39 insertions(+), 6 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index 380e8003..6138ef58 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -4,11 +4,12 @@ uniform ivec2 viewport; uniform sampler2D color; uniform sampler2D bloom; +uniform sampler2D transparency; in vec2 v_uv; layout(location=0) out vec4 fragColor; void main() { - fragColor = texture(color, v_uv) + texture(bloom, v_uv); + fragColor = texture(color, v_uv) + texture(bloom, v_uv) + texture(transparency, v_uv); } \ No newline at end of file diff --git a/src/display/rendering/buffernames.h b/src/display/rendering/buffernames.h index 2f8eeebb..da197116 100644 --- a/src/display/rendering/buffernames.h +++ b/src/display/rendering/buffernames.h @@ -12,6 +12,7 @@ namespace { Emissisiveness, BlurTmp, Bloom, + TransparencyAccumulation, BufferCount // should always be last member and not be used as a name }; @@ -24,5 +25,6 @@ namespace { "Emissisiveness", "BlurTmp", "Bloom", + "TransparencyAccumulation", }; } diff --git a/src/display/rendering/defaultrenderpipeline.cpp b/src/display/rendering/defaultrenderpipeline.cpp index 388c842f..218549bb 100644 --- a/src/display/rendering/defaultrenderpipeline.cpp +++ b/src/display/rendering/defaultrenderpipeline.cpp @@ -24,9 +24,9 @@ void DefaultRenderPipeline::apply(FrameBuffer& frameBuffer, const RenderMetaData if (useFxaa != m_fxaa->isEnabled()) { m_fxaa->setEnabled(useFxaa); if (useFxaa) { // rewire buffer for fxaa - m_finalization->setInputMapping({ { "color", BufferNames::FXAA }, { "bloom", BufferNames::Bloom } }); + m_finalization->setInputMapping({ { "color", BufferNames::FXAA }, { "bloom", BufferNames::Bloom }, { "transparency", BufferNames::TransparencyAccumulation } }); } else { - m_finalization->setInputMapping({ { "color", BufferNames::Color }, { "bloom", BufferNames::Bloom } }); + m_finalization->setInputMapping({ { "color", BufferNames::Color }, { "bloom", BufferNames::Bloom }, { "transparency", BufferNames::TransparencyAccumulation } }); } } } @@ -67,7 +67,7 @@ void DefaultRenderPipeline::addEmissivenessBlurHorizontal() { void DefaultRenderPipeline::addFinalization() { m_finalization = std::make_shared("blurh", m_quad); - m_finalization->setInputMapping({ { "color", BufferNames::Color }, { "bloom", BufferNames::Bloom } }); + m_finalization->setInputMapping({ { "color", BufferNames::Color }, { "bloom", BufferNames::Bloom }, { "transparency", BufferNames::TransparencyAccumulation } }); m_finalization->setOutput({ BufferNames::Default }); m_finalization->setFragmentShader("data/shader/postprocessing/combine.frag"); add(m_finalization); diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 51055a30..6875b4ca 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -17,6 +17,7 @@ #include "sound/soundmanager.h" #include "ui/hud/hud.h" +#include "ui/voxelfont.h" #include "voxel/voxelrenderer.h" #include "voxeleffect/voxelparticleengine.h" @@ -51,10 +52,32 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, } m_framebuffer->setResolution(camera.viewport()); + m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness }); m_framebuffer->clear(); m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness }); - drawGame(camera); + drawGame(camera); + + + m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness }); + //glDisable(GL_CULL_FACE); + //CheckGLError(); + glDepthMask(GL_FALSE); + CheckGLError(); + glEnable(GL_BLEND); + CheckGLError(); + glBlendFunc(GL_ONE, GL_ONE); + CheckGLError(); + drawGameAlpha(camera); + //glEnable(GL_CULL_FACE); + //CheckGLError(); + glDepthMask(GL_TRUE); + CheckGLError(); + glDisable(GL_BLEND); + CheckGLError(); + glDisable(GL_DEPTH_TEST); + CheckGLError(); + RenderMetaData metadata(camera, side); m_renderPipeline->apply(*m_framebuffer, metadata); @@ -106,3 +129,9 @@ void GamePlayScene::drawGame(const Camera& camera) const { } } +void GamePlayScene::drawGameAlpha(const Camera& camera) const { + m_voxelRenderer->prepareDraw(camera, false); + m_voxelRenderer->program()->getUniform("lightdir")->set(glm::vec3(0, 0, 1)); + VoxelFont::instance()->drawString("Voxellancer", glm::vec3(0, 0.5f, -1) * 40.f, glm::quat(), FontSize::SIZE5x7, 0.4f, FontAlign::CENTER); + m_voxelRenderer->afterDraw(); +} diff --git a/src/gamestate/gameplay/gameplayscene.h b/src/gamestate/gameplay/gameplayscene.h index 028cb017..1a927322 100644 --- a/src/gamestate/gameplay/gameplayscene.h +++ b/src/gamestate/gameplay/gameplayscene.h @@ -51,5 +51,6 @@ class GamePlayScene: public Scene { void drawGame(const Camera& camera) const; + void drawGameAlpha(const Camera& camera) const; }; diff --git a/src/main.cpp b/src/main.cpp index 1dd069a3..a7c22ceb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -129,7 +129,7 @@ void setGLFWCallbacks(GLFWwindow* window) { static void miscSettings() { OVR::System::Init(OVR::Log::ConfigureDefaultLog(OVR::LogMask_All)); - glClearColor(0.0f, 0.0f, 0.3f, 1.0f); + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); #ifdef WIN32 // TODO: find a way to correctly detect debug extension in linux glow::debugmessageoutput::enable(); From 42c31dcf7fced83a720db8df2b8923b15d7f0e61 Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 20 Apr 2014 21:07:48 +0200 Subject: [PATCH 02/34] Add TransparencyCount buffer, repurpose Emissiveness for Bloom --- data/shader/postprocessing/combine.frag | 5 +++-- data/shader/voxelcluster/voxelcluster.frag | 2 ++ src/display/rendering/buffernames.h | 6 +++--- src/display/rendering/defaultrenderpipeline.cpp | 17 +++++++++++++---- src/gamestate/gameplay/gameplayscene.cpp | 4 ++-- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index 6138ef58..e094abac 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -4,12 +4,13 @@ uniform ivec2 viewport; uniform sampler2D color; uniform sampler2D bloom; -uniform sampler2D transparency; +uniform sampler2D transparencyAcc; +uniform sampler2D transparencyCnt; in vec2 v_uv; layout(location=0) out vec4 fragColor; void main() { - fragColor = texture(color, v_uv) + texture(bloom, v_uv) + texture(transparency, v_uv); + fragColor = texture(color, v_uv) + texture(bloom, v_uv) + texture(transparencyAcc, v_uv); } \ No newline at end of file diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 7e46832f..6a5fec81 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -5,6 +5,7 @@ uniform float withBorder; layout(location = 0) out vec4 fragColor; layout(location = 1) out vec4 normalz; layout(location = 2) out vec4 emissiveness; +layout(location = 3) out vec4 count; flat in vec3 f_normal; in vec3 f_color; @@ -21,5 +22,6 @@ void main() { fragColor = voxelFragmentColor(f_color, f_emissiveness, f_normal, f_modelposition); emissiveness = voxelFragmentEmissiveness(f_color, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); + count = vec4(0.01, 0.0, 0.0, 0.0); } diff --git a/src/display/rendering/buffernames.h b/src/display/rendering/buffernames.h index da197116..c545d1f6 100644 --- a/src/display/rendering/buffernames.h +++ b/src/display/rendering/buffernames.h @@ -9,10 +9,10 @@ namespace { Color, FXAA, NormalZ, - Emissisiveness, + Emissisiveness, // later repurposed to blur BlurTmp, - Bloom, TransparencyAccumulation, + TransparencyCount, BufferCount // should always be last member and not be used as a name }; @@ -24,7 +24,7 @@ namespace { "NormalZ", "Emissisiveness", "BlurTmp", - "Bloom", "TransparencyAccumulation", + "TransparencyCount", }; } diff --git a/src/display/rendering/defaultrenderpipeline.cpp b/src/display/rendering/defaultrenderpipeline.cpp index 218549bb..d9aa20ed 100644 --- a/src/display/rendering/defaultrenderpipeline.cpp +++ b/src/display/rendering/defaultrenderpipeline.cpp @@ -24,9 +24,15 @@ void DefaultRenderPipeline::apply(FrameBuffer& frameBuffer, const RenderMetaData if (useFxaa != m_fxaa->isEnabled()) { m_fxaa->setEnabled(useFxaa); if (useFxaa) { // rewire buffer for fxaa - m_finalization->setInputMapping({ { "color", BufferNames::FXAA }, { "bloom", BufferNames::Bloom }, { "transparency", BufferNames::TransparencyAccumulation } }); + m_finalization->setInputMapping({ { "color", BufferNames::FXAA }, + { "bloom", BufferNames::Emissisiveness }, + { "transparencyAcc", BufferNames::TransparencyAccumulation }, + { "transparencyCnt", BufferNames::TransparencyCount } }); } else { - m_finalization->setInputMapping({ { "color", BufferNames::Color }, { "bloom", BufferNames::Bloom }, { "transparency", BufferNames::TransparencyAccumulation } }); + m_finalization->setInputMapping({ { "color", BufferNames::Color }, + { "bloom", BufferNames::Emissisiveness }, + { "transparencyAcc", BufferNames::TransparencyAccumulation }, + { "transparencyCnt", BufferNames::TransparencyCount } }); } } } @@ -59,7 +65,7 @@ void DefaultRenderPipeline::addEmissivenessBlurVertical() { void DefaultRenderPipeline::addEmissivenessBlurHorizontal() { auto pass = std::make_shared("blurh", m_quad); pass->setInputMapping({ { "source", BufferNames::BlurTmp } }); - pass->setOutput({ BufferNames::Bloom }); + pass->setOutput({ BufferNames::Emissisiveness }); // intentional repurpose to save buffers pass->setFragmentShader("data/shader/postprocessing/blur.frag"); pass->setUniform("direction", glm::vec2(1, 0)); add(pass); @@ -67,7 +73,10 @@ void DefaultRenderPipeline::addEmissivenessBlurHorizontal() { void DefaultRenderPipeline::addFinalization() { m_finalization = std::make_shared("blurh", m_quad); - m_finalization->setInputMapping({ { "color", BufferNames::Color }, { "bloom", BufferNames::Bloom }, { "transparency", BufferNames::TransparencyAccumulation } }); + m_finalization->setInputMapping({ { "color", BufferNames::Color }, + { "bloom", BufferNames::Emissisiveness }, // intentional repurpose to save buffers + { "transparencyAcc", BufferNames::TransparencyAccumulation }, + { "transparencyCnt", BufferNames::TransparencyCount } }); m_finalization->setOutput({ BufferNames::Default }); m_finalization->setFragmentShader("data/shader/postprocessing/combine.frag"); add(m_finalization); diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 6875b4ca..e5d6d90d 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -52,14 +52,14 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, } m_framebuffer->setResolution(camera.viewport()); - m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness }); + m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); m_framebuffer->clear(); m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness }); drawGame(camera); - m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness }); + m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); //glDisable(GL_CULL_FACE); //CheckGLError(); glDepthMask(GL_FALSE); From f1955b433333e5a9fc1a26c67fab7464b3400c11 Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 20 Apr 2014 23:14:24 +0200 Subject: [PATCH 03/34] code checkpoint --- data/hud/font/5x7/X.csv | 14 +++++++------- data/shader/lib/voxel.frag | 4 ++-- data/shader/voxelcluster/voxelcluster.frag | 11 ++++++----- data/shader/voxelcluster/voxelcluster.vert | 4 ++-- data/shader/voxelparticle/voxelparticle.frag | 4 ++-- src/gamestate/gameplay/gameplayscene.cpp | 2 +- src/resource/clusterloader.cpp | 8 ++++---- 7 files changed, 24 insertions(+), 23 deletions(-) diff --git a/data/hud/font/5x7/X.csv b/data/hud/font/5x7/X.csv index 15eb1417..f3c85101 100644 --- a/data/hud/font/5x7/X.csv +++ b/data/hud/font/5x7/X.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF0020,#00000000,#00000000,#00000000,#00FF0020 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF0040,#00000000,#00000000,#00000000,#00FF0020 -#00000000,#00FF00FL,#00000000,#00FF00FL,#00000000 +#00000000,#00FF0060,#00000000,#00FF0020,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF0080,#00000000,#00000000 -#00000000,#00FF00FL,#00000000,#00FF00FL,#00000000 +#00000000,#00FF0020,#00000000,#00FF00A0,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF0020,#00000000,#00000000,#00000000,#00FF00C0 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF0020,#00000000,#00000000,#00000000,#00FF00F0 diff --git a/data/shader/lib/voxel.frag b/data/shader/lib/voxel.frag index 809ed860..f8dfd8d6 100644 --- a/data/shader/lib/voxel.frag +++ b/data/shader/lib/voxel.frag @@ -7,7 +7,7 @@ const float borderWidth = 0.10; const float borderDarkness = 0.2; const float ambient = 0.3; -vec4 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positionInVoxel) { +vec3 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positionInVoxel) { // modelposition is between -0.5 and 0.5 vec3 absPositionInModel = abs(positionInVoxel); @@ -22,7 +22,7 @@ vec4 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positi float diffuse = dot(n_normal, lightdir); diffuse = max(0, diffuse) + ambient; - return vec4(color * diffuse - vec3(border * float(withBorder)), 1.0); + return color * diffuse - vec3(border * float(withBorder)); } vec4 voxelFragmentEmissiveness(vec3 color, float emissiveness) { diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 6a5fec81..22757af2 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -8,20 +8,21 @@ layout(location = 2) out vec4 emissiveness; layout(location = 3) out vec4 count; flat in vec3 f_normal; -in vec3 f_color; +in vec4 f_color; in float f_emissiveness; in vec3 f_modelposition; -vec4 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positionInVoxel); +vec3 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positionInVoxel); vec4 voxelFragmentEmissiveness(vec3 color, float emissiveness); vec4 voxelFragmenNormalZ(vec3 normal); void main() { - fragColor = voxelFragmentColor(f_color, f_emissiveness, f_normal, f_modelposition); - emissiveness = voxelFragmentEmissiveness(f_color, f_emissiveness); + vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); + fragColor = vec4(rgbColor * f_color.a, f_color.a); + emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); - count = vec4(0.01, 0.0, 0.0, 0.0); + count = vec4(f_color.a, f_color.a, f_color.a, 1.0); } diff --git a/data/shader/voxelcluster/voxelcluster.vert b/data/shader/voxelcluster/voxelcluster.vert index b5d9272f..7eb5b759 100644 --- a/data/shader/voxelcluster/voxelcluster.vert +++ b/data/shader/voxelcluster/voxelcluster.vert @@ -18,7 +18,7 @@ layout(location = 4) in float v_emissiveness; flat out vec3 f_normal; -out vec3 f_color; +out vec4 f_color; out float f_emissiveness; out vec3 f_modelposition; @@ -27,7 +27,7 @@ void main() { gl_Position = viewProjection * model * (vec4(v_vertex + v_position, 1.0)); f_normal = (model * vec4(v_normal, 0.0)).xyz; - f_color = v_color.rgb; + f_color = v_color; f_emissiveness = clamp(emissiveness + v_emissiveness, 0, 1); f_modelposition = v_vertex; } diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index faff400d..04821099 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -14,7 +14,7 @@ in float f_emissiveness; in vec3 f_modelposition; -vec4 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positionInVoxel); +vec3 voxelFragmentColor(vec3 color, float emissiveness, vec3 normal, vec3 positionInVoxel); vec4 voxelFragmentEmissiveness(vec3 color, float emissiveness); vec4 voxelFragmenNormalZ(vec3 normal); @@ -24,7 +24,7 @@ void main() { discard; } - fragColor = voxelFragmentColor(f_color, f_emissiveness, f_normal, f_modelposition); + fragColor = vec4(voxelFragmentColor(f_color, f_emissiveness, f_normal, f_modelposition), 1.0); emissiveness = voxelFragmentEmissiveness(f_color, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); } diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index e5d6d90d..0a75fb65 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -131,7 +131,7 @@ void GamePlayScene::drawGame(const Camera& camera) const { void GamePlayScene::drawGameAlpha(const Camera& camera) const { m_voxelRenderer->prepareDraw(camera, false); - m_voxelRenderer->program()->getUniform("lightdir")->set(glm::vec3(0, 0, 1)); + m_voxelRenderer->program()->setUniform("lightdir", m_defaultLightDir.get()); VoxelFont::instance()->drawString("Voxellancer", glm::vec3(0, 0.5f, -1) * 40.f, glm::quat(), FontSize::SIZE5x7, 0.4f, FontAlign::CENTER); m_voxelRenderer->afterDraw(); } diff --git a/src/resource/clusterloader.cpp b/src/resource/clusterloader.cpp index 403d982f..a6ed96d5 100644 --- a/src/resource/clusterloader.cpp +++ b/src/resource/clusterloader.cpp @@ -72,7 +72,6 @@ void ClusterLoader::readZox(std::string &content, std::vector *list){ splitStr(voxelString, ',', voxelStrings); std::string str = &(voxelStrings[3])[1]; uint32_t color = stoul(str); - color >>= 8; //shift out the alpha part we don't use list->push_back(new Voxel(glm::ivec3(stoi(voxelStrings[0]), std::stoi(&(voxelStrings[1])[1]), std::stoi(&(voxelStrings[2])[1])), color)); } currentFrame++; @@ -93,7 +92,7 @@ void ClusterLoader::readDimensionsCsv(){ } void ClusterLoader::readCsv(std::vector *list){ - int color, red, green, blue; + int color, red, green, blue, alpha; glm::ivec3 cell(0, 0, 0); std::string line; std::vector voxelStrings; @@ -109,8 +108,9 @@ void ClusterLoader::readCsv(std::vector *list){ red = stoi(voxelStrings[cell.x].substr(1, 2), NULL, 16); green = stoi(voxelStrings[cell.x].substr(3, 2), NULL, 16); blue = stoi(voxelStrings[cell.x].substr(5, 2), NULL, 16); - color = red << 16 | green << 8 | blue; - if (red+green+blue>0) + alpha = stoi(voxelStrings[cell.x].substr(7, 2), NULL, 16); + color = alpha << 24 | red << 16 | green << 8 | blue; + if (alpha > 0) list->push_back(new Voxel(cell, color)); cell.x++; } From dada5fd9b3099f5d576edeb5cf88178748fd3b78 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 01:04:50 +0200 Subject: [PATCH 04/34] Switch color format to include alpha --- data/equipment/engines/candle.ini | 4 +- data/equipment/engines/enginemk1.ini | 4 +- data/equipment/engines/enginemk3.ini | 4 +- data/equipment/engines/loudengine.ini | 4 +- data/equipment/engines/mginemk1.ini | 2 +- data/equipment/engines/piratethruster.ini | 2 +- .../equipment/engines/piratethrusterheavy.ini | 4 +- data/equipment/engines/rocketthrustermk1.ini | 2 +- data/equipment/engines/slowsublight.ini | 4 +- data/equipment/engines/superslowengine.ini | 4 +- data/equipment/weapons/gun.ini | 2 +- data/equipment/weapons/hornetlauncher.ini | 2 +- data/equipment/weapons/railgun.ini | 2 +- data/equipment/weapons/snowcanon.ini | 2 +- data/hud/arrow.csv | 6 +- data/hud/arrowXT.csv | 12 +-- data/hud/bottom.csv | 8 +- data/hud/bottomleft.csv | 4 +- data/hud/bottomright.csv | 4 +- data/hud/crosshair.csv | 8 +- data/hud/font/3x5/0.csv | 10 +-- data/hud/font/3x5/1.csv | 10 +-- data/hud/font/3x5/2.csv | 10 +-- data/hud/font/3x5/3.csv | 10 +-- data/hud/font/3x5/4.csv | 10 +-- data/hud/font/3x5/5.csv | 10 +-- data/hud/font/3x5/6.csv | 10 +-- data/hud/font/3x5/7.csv | 10 +-- data/hud/font/3x5/8.csv | 10 +-- data/hud/font/3x5/9.csv | 10 +-- data/hud/font/3x5/A.csv | 10 +-- data/hud/font/3x5/B.csv | 10 +-- data/hud/font/3x5/C.csv | 10 +-- data/hud/font/3x5/D.csv | 10 +-- data/hud/font/3x5/E.csv | 10 +-- data/hud/font/3x5/F.csv | 10 +-- data/hud/font/3x5/G.csv | 10 +-- data/hud/font/3x5/H.csv | 10 +-- data/hud/font/3x5/I.csv | 10 +-- data/hud/font/3x5/J.csv | 10 +-- data/hud/font/3x5/K.csv | 10 +-- data/hud/font/3x5/L.csv | 10 +-- data/hud/font/3x5/M.csv | 10 +-- data/hud/font/3x5/N.csv | 10 +-- data/hud/font/3x5/O.csv | 10 +-- data/hud/font/3x5/P.csv | 10 +-- data/hud/font/3x5/Q.csv | 10 +-- data/hud/font/3x5/R.csv | 10 +-- data/hud/font/3x5/S.csv | 10 +-- data/hud/font/3x5/T.csv | 10 +-- data/hud/font/3x5/U.csv | 10 +-- data/hud/font/3x5/V.csv | 10 +-- data/hud/font/3x5/W.csv | 10 +-- data/hud/font/3x5/X.csv | 10 +-- data/hud/font/3x5/Y.csv | 10 +-- data/hud/font/3x5/Z.csv | 10 +-- data/hud/font/3x5/_backslash.csv | 10 +-- data/hud/font/3x5/_colon.csv | 4 +- data/hud/font/3x5/_comma.csv | 4 +- data/hud/font/3x5/_dash.csv | 2 +- data/hud/font/3x5/_dot.csv | 2 +- data/hud/font/3x5/_semicolon.csv | 6 +- data/hud/font/3x5/_slash.csv | 10 +-- data/hud/font/3x5/_underscore.csv | 2 +- data/hud/font/5x7/0.csv | 14 ++-- data/hud/font/5x7/1.csv | 14 ++-- data/hud/font/5x7/2.csv | 14 ++-- data/hud/font/5x7/3.csv | 14 ++-- data/hud/font/5x7/4.csv | 14 ++-- data/hud/font/5x7/5.csv | 14 ++-- data/hud/font/5x7/6.csv | 14 ++-- data/hud/font/5x7/7.csv | 14 ++-- data/hud/font/5x7/8.csv | 14 ++-- data/hud/font/5x7/9.csv | 14 ++-- data/hud/font/5x7/A.csv | 14 ++-- data/hud/font/5x7/B.csv | 14 ++-- data/hud/font/5x7/C.csv | 14 ++-- data/hud/font/5x7/D.csv | 14 ++-- data/hud/font/5x7/E.csv | 14 ++-- data/hud/font/5x7/F.csv | 14 ++-- data/hud/font/5x7/G.csv | 14 ++-- data/hud/font/5x7/H.csv | 14 ++-- data/hud/font/5x7/I.csv | 14 ++-- data/hud/font/5x7/J.csv | 14 ++-- data/hud/font/5x7/K.csv | 14 ++-- data/hud/font/5x7/L.csv | 14 ++-- data/hud/font/5x7/M.csv | 14 ++-- data/hud/font/5x7/N.csv | 14 ++-- data/hud/font/5x7/O.csv | 14 ++-- data/hud/font/5x7/P.csv | 14 ++-- data/hud/font/5x7/Q.csv | 14 ++-- data/hud/font/5x7/R.csv | 14 ++-- data/hud/font/5x7/S.csv | 14 ++-- data/hud/font/5x7/T.csv | 14 ++-- data/hud/font/5x7/U.csv | 14 ++-- data/hud/font/5x7/V.csv | 14 ++-- data/hud/font/5x7/W.csv | 14 ++-- data/hud/font/5x7/Y.csv | 14 ++-- data/hud/font/5x7/Z.csv | 14 ++-- data/hud/font/5x7/_backslash.csv | 14 ++-- data/hud/font/5x7/_colon.csv | 4 +- data/hud/font/5x7/_comma.csv | 4 +- data/hud/font/5x7/_dash.csv | 2 +- data/hud/font/5x7/_dot.csv | 2 +- data/hud/font/5x7/_semicolon.csv | 6 +- data/hud/font/5x7/_slash.csv | 14 ++-- data/hud/font/5x7/_underscore.csv | 2 +- data/hud/topleft.csv | 4 +- data/hud/topright.csv | 4 +- data/shader/voxelparticle/voxelparticle.frag | 9 ++- data/shader/voxelparticle/voxelparticle.vert | 4 +- data/voxelcluster/banner.csv | 10 +-- data/voxelcluster/gunbullet.csv | 6 +- data/voxelcluster/piratelight.csv | 2 +- data/voxelcluster/pulselaser_bullet.csv | 30 ++++---- data/voxelcluster/roundbullet.csv | 74 +++++++++---------- data/voxelcluster/snowball.csv | 18 ++--- data/voxels.ini | 10 +-- src/equipment/engine.cpp | 2 +- src/equipment/weapons/bullet.cpp | 2 +- src/equipment/weapons/rocket.cpp | 2 +- src/resource/clusterloader.cpp | 2 +- src/resource/colorcoder.cpp | 4 +- src/scenarios/frozengamescenario.cpp | 6 +- src/scenarios/gamescenario.cpp | 6 +- src/scenarios/piratescenario.cpp | 4 +- src/ui/hud/crosshairvoxels.cpp | 4 +- src/ui/hud/objecthudgetcornervoxels.cpp | 20 ++--- src/utils/colorhelper.cpp | 10 +++ src/utils/colorhelper.h | 11 +++ src/voxel/specialvoxels/fuelvoxel.cpp | 2 +- src/voxel/voxel.h | 2 +- src/voxel/voxelrenderdata.cpp | 3 +- src/voxeleffect/enginetrailgenerator.cpp | 2 +- src/voxeleffect/voxelparticleengine.cpp | 1 - src/voxeleffect/voxelparticlesetup.cpp | 4 +- src/voxeleffect/voxelparticlespawnbase.cpp | 2 +- 137 files changed, 653 insertions(+), 629 deletions(-) create mode 100644 src/utils/colorhelper.cpp create mode 100644 src/utils/colorhelper.h diff --git a/data/equipment/engines/candle.ini b/data/equipment/engines/candle.ini index b13c4dfd..b3718a61 100644 --- a/data/equipment/engines/candle.ini +++ b/data/equipment/engines/candle.ini @@ -5,11 +5,11 @@ type=engine [trail] lifetime = 10 -color=0xFFFF00 +color=0xFFFF00FF emissiveness=1.0 [visuals] -color=0xFFFF00 +color=0xFFFF00FF emissiveness=0.7 [sound] diff --git a/data/equipment/engines/enginemk1.ini b/data/equipment/engines/enginemk1.ini index 62a0acfb..c4036c8b 100644 --- a/data/equipment/engines/enginemk1.ini +++ b/data/equipment/engines/enginemk1.ini @@ -5,11 +5,11 @@ type=engine [trail] lifetime = 5 -color=0x0022FF +color=0x0022FFFF emissiveness=0.2 [visuals] -color=0x0022FF +color=0x0022FFFF emissiveness=0.5 [sound] diff --git a/data/equipment/engines/enginemk3.ini b/data/equipment/engines/enginemk3.ini index 7027acd0..0d4d9d9d 100644 --- a/data/equipment/engines/enginemk3.ini +++ b/data/equipment/engines/enginemk3.ini @@ -5,11 +5,11 @@ type=engine [trail] lifetime = 0.3 -color=0xEEFF99 +color=0xEEFF99FF emissiveness=0.6 [visuals] -color=0x889900 +color=0x889900FF emissiveness=0.5 [sound] diff --git a/data/equipment/engines/loudengine.ini b/data/equipment/engines/loudengine.ini index 26777344..0aebd756 100644 --- a/data/equipment/engines/loudengine.ini +++ b/data/equipment/engines/loudengine.ini @@ -5,11 +5,11 @@ type=engine [trail] lifetime = 25 -color=0x0011DD +color=0x0011DDFF emissiveness=0.1 [visuals] -color=0x0022FF +color=0x0022FFFF emissiveness=0.5 [sound] diff --git a/data/equipment/engines/mginemk1.ini b/data/equipment/engines/mginemk1.ini index a1a0ee6c..40a88d41 100644 --- a/data/equipment/engines/mginemk1.ini +++ b/data/equipment/engines/mginemk1.ini @@ -8,7 +8,7 @@ lifetime = 1 emissiveness=0.2 [visuals] -color=0x0077FF +color=0x0077FFFF emissiveness=0.2 [sound] diff --git a/data/equipment/engines/piratethruster.ini b/data/equipment/engines/piratethruster.ini index 33537361..d0cc9138 100644 --- a/data/equipment/engines/piratethruster.ini +++ b/data/equipment/engines/piratethruster.ini @@ -8,7 +8,7 @@ lifetime = 1 emissiveness=0.2 [visuals] -color=0x0077FF +color=0x0077FFFF emissiveness=0.2 [sound] diff --git a/data/equipment/engines/piratethrusterheavy.ini b/data/equipment/engines/piratethrusterheavy.ini index 6454d675..36770ef8 100644 --- a/data/equipment/engines/piratethrusterheavy.ini +++ b/data/equipment/engines/piratethrusterheavy.ini @@ -4,12 +4,12 @@ angularAcceleration=200.0,200.0,200.0 type=engine [trail] -color=0x0077FF +color=0x0077FFFF lifetime = 1 emissiveness=0.2 [visuals] -color=0x0077FF +color=0x0077FFFF emissiveness=0.2 [sound] diff --git a/data/equipment/engines/rocketthrustermk1.ini b/data/equipment/engines/rocketthrustermk1.ini index 5923a97b..9f4b61d2 100644 --- a/data/equipment/engines/rocketthrustermk1.ini +++ b/data/equipment/engines/rocketthrustermk1.ini @@ -8,7 +8,7 @@ lifetime=5 emissiveness=0.2 [visuals] -color=0xFF0000 +color=0xFF0000FF emissiveness=1.0 [sound] diff --git a/data/equipment/engines/slowsublight.ini b/data/equipment/engines/slowsublight.ini index 1ea3c30d..e875e4b1 100644 --- a/data/equipment/engines/slowsublight.ini +++ b/data/equipment/engines/slowsublight.ini @@ -4,11 +4,11 @@ angularAcceleration=200.0,200.0,300.0 [trail] lifetime = 0.7 -color=0xAA8800 +color=0xAA8800FF emissiveness=0.2 [visuals] -color=0x889900 +color=0x889900FF emissiveness=0.5 [sound] diff --git a/data/equipment/engines/superslowengine.ini b/data/equipment/engines/superslowengine.ini index f262d8e4..d4cc502b 100644 --- a/data/equipment/engines/superslowengine.ini +++ b/data/equipment/engines/superslowengine.ini @@ -5,11 +5,11 @@ type=engine [trail] lifetime = 1 -color=0xFF7700 +color=0xFF7700FF emissiveness=0.2 [visuals] -color=0xFF7700 +color=0xFF7700FF emissiveness=0.5 [sound] diff --git a/data/equipment/weapons/gun.ini b/data/equipment/weapons/gun.ini index 40dbc62e..18c86fe1 100644 --- a/data/equipment/weapons/gun.ini +++ b/data/equipment/weapons/gun.ini @@ -4,7 +4,7 @@ cooldownTime=0.1 bullet=gunbullet [visuals] -color=0x00FF00 +color=0x00FF00FF emissiveness=0.3 [sound] diff --git a/data/equipment/weapons/hornetlauncher.ini b/data/equipment/weapons/hornetlauncher.ini index aeedf083..773dde65 100644 --- a/data/equipment/weapons/hornetlauncher.ini +++ b/data/equipment/weapons/hornetlauncher.ini @@ -4,6 +4,6 @@ cooldownTime=2.0 rocket=hornet [visuals] -color=0xFF8000 +color=0xFF8000FF emissiveness=0.5 diff --git a/data/equipment/weapons/railgun.ini b/data/equipment/weapons/railgun.ini index 84eecb3b..89d16782 100644 --- a/data/equipment/weapons/railgun.ini +++ b/data/equipment/weapons/railgun.ini @@ -4,7 +4,7 @@ cooldownTime=0.05 bullet=railgunbullet [visuals] -color=0xFFFF00 +color=0xFFFF00FF emissiveness=0.5 [sound] diff --git a/data/equipment/weapons/snowcanon.ini b/data/equipment/weapons/snowcanon.ini index 2f89f061..50d16200 100644 --- a/data/equipment/weapons/snowcanon.ini +++ b/data/equipment/weapons/snowcanon.ini @@ -4,7 +4,7 @@ cooldownTime=0.2 bullet=snowball [visuals] -color=0xFFFFFF +color=0xFFFFFFFF emissiveness=1.0 [sound] diff --git a/data/hud/arrow.csv b/data/hud/arrow.csv index 2369d5ec..0910e487 100644 --- a/data/hud/arrow.csv +++ b/data/hud/arrow.csv @@ -1,7 +1,7 @@ 5,3,1 -#00000000,#00000000,#FF0000FFL,#00000000,#00000000 +#00000000,#00000000,#FF0000FFF,#00000000,#00000000 -#00000000,#FF0000FFL,#00000000,#FF0000FFL,#00000000 +#00000000,#FF0000FFF,#00000000,#FF0000FFF,#00000000 -#FF0000FFL,#00000000,#00000000,#00000000,#FF0000FFL +#FF0000FFF,#00000000,#00000000,#00000000,#FF0000FFF diff --git a/data/hud/arrowXT.csv b/data/hud/arrowXT.csv index 83bf7cb6..c7cc67b9 100644 --- a/data/hud/arrowXT.csv +++ b/data/hud/arrowXT.csv @@ -1,15 +1,15 @@ 7,7,1 -#00000000,#00000000,#00000000,#FF0000FFL,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#FF0000FF,#00000000,#00000000,#00000000 -#00000000,#00000000,#FF0000FFL,#55557FFFL,#FF0000FFL,#00000000,#00000000 +#00000000,#00000000,#FF0000FF,#55557FFF,#FF0000FF,#00000000,#00000000 -#00000000,#00000000,#FF0000FFL,#55557FFFL,#FF0000FFL,#00000000,#00000000 +#00000000,#00000000,#FF0000FF,#55557FFF,#FF0000FF,#00000000,#00000000 -#00000000,#FF0000FFL,#55557FFFL,#55557FFFL,#55557FFFL,#FF0000FFL,#00000000 +#00000000,#FF0000FF,#55557FFF,#55557FFF,#55557FFF,#FF0000FF,#00000000 -#00000000,#FF0000FFL,#55557FFFL,#FF0000FFL,#55557FFFL,#FF0000FFL,#00000000 +#00000000,#FF0000FF,#55557FFF,#FF0000FF,#55557FFF,#FF0000FF,#00000000 -#00000000,#00000000,#FF0000FFL,#00000000,#FF0000FFL,#00000000,#00000000 +#00000000,#00000000,#FF0000FF,#00000000,#FF0000FF,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/bottom.csv b/data/hud/bottom.csv index 1bacef16..4605abd3 100644 --- a/data/hud/bottom.csv +++ b/data/hud/bottom.csv @@ -1,9 +1,9 @@ 55,4,1 -#00000000,#00000000,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF,#00000000 -#0FF00FFL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL +#0FF00FFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF -#0FF00FFL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL +#0FF00FFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/bottomleft.csv b/data/hud/bottomleft.csv index 5a3f0993..0387d2af 100644 --- a/data/hud/bottomleft.csv +++ b/data/hud/bottomleft.csv @@ -1,5 +1,5 @@ 4,2,1 -#00FF00FL,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/bottomright.csv b/data/hud/bottomright.csv index 6bf0aabd..f11b6938 100644 --- a/data/hud/bottomright.csv +++ b/data/hud/bottomright.csv @@ -1,5 +1,5 @@ 4,2,1 -#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/crosshair.csv b/data/hud/crosshair.csv index 2a3a80df..33ebfcd1 100644 --- a/data/hud/crosshair.csv +++ b/data/hud/crosshair.csv @@ -1,7 +1,7 @@ 9,9,1 -#00FF00FL,#00FF00FL,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -13,7 +13,7 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/0.csv b/data/hud/font/3x5/0.csv index f5a28e26..bc081cd7 100644 --- a/data/hud/font/3x5/0.csv +++ b/data/hud/font/3x5/0.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/1.csv b/data/hud/font/3x5/1.csv index 5b212b12..989315e8 100644 --- a/data/hud/font/3x5/1.csv +++ b/data/hud/font/3x5/1.csv @@ -1,11 +1,11 @@ 3,5,1 -#00000000,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/2.csv b/data/hud/font/3x5/2.csv index 8665ed11..a916ae20 100644 --- a/data/hud/font/3x5/2.csv +++ b/data/hud/font/3x5/2.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/3.csv b/data/hud/font/3x5/3.csv index 0d563c5a..b7f632be 100644 --- a/data/hud/font/3x5/3.csv +++ b/data/hud/font/3x5/3.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/4.csv b/data/hud/font/3x5/4.csv index 0f0b8932..1e21d66f 100644 --- a/data/hud/font/3x5/4.csv +++ b/data/hud/font/3x5/4.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/5.csv b/data/hud/font/3x5/5.csv index 57da7d02..94124ad4 100644 --- a/data/hud/font/3x5/5.csv +++ b/data/hud/font/3x5/5.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/6.csv b/data/hud/font/3x5/6.csv index 1ce3311e..bc54cbb9 100644 --- a/data/hud/font/3x5/6.csv +++ b/data/hud/font/3x5/6.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/7.csv b/data/hud/font/3x5/7.csv index 022d1a7c..6782d12d 100644 --- a/data/hud/font/3x5/7.csv +++ b/data/hud/font/3x5/7.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/8.csv b/data/hud/font/3x5/8.csv index 03248373..2ed54d3c 100644 --- a/data/hud/font/3x5/8.csv +++ b/data/hud/font/3x5/8.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/9.csv b/data/hud/font/3x5/9.csv index c44af925..069c2cf3 100644 --- a/data/hud/font/3x5/9.csv +++ b/data/hud/font/3x5/9.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/A.csv b/data/hud/font/3x5/A.csv index a7d3bef4..ae13f0d5 100644 --- a/data/hud/font/3x5/A.csv +++ b/data/hud/font/3x5/A.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/B.csv b/data/hud/font/3x5/B.csv index 2b2562ef..dca9044e 100644 --- a/data/hud/font/3x5/B.csv +++ b/data/hud/font/3x5/B.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/3x5/C.csv b/data/hud/font/3x5/C.csv index 6f6efe72..9f4d19f1 100644 --- a/data/hud/font/3x5/C.csv +++ b/data/hud/font/3x5/C.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/D.csv b/data/hud/font/3x5/D.csv index f1326186..b89fbac8 100644 --- a/data/hud/font/3x5/D.csv +++ b/data/hud/font/3x5/D.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/3x5/E.csv b/data/hud/font/3x5/E.csv index e46f75da..60b6e39f 100644 --- a/data/hud/font/3x5/E.csv +++ b/data/hud/font/3x5/E.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/F.csv b/data/hud/font/3x5/F.csv index 17945af0..8ba934c6 100644 --- a/data/hud/font/3x5/F.csv +++ b/data/hud/font/3x5/F.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 diff --git a/data/hud/font/3x5/G.csv b/data/hud/font/3x5/G.csv index ced37220..7e6f7fe1 100644 --- a/data/hud/font/3x5/G.csv +++ b/data/hud/font/3x5/G.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/H.csv b/data/hud/font/3x5/H.csv index bafe4219..df29087d 100644 --- a/data/hud/font/3x5/H.csv +++ b/data/hud/font/3x5/H.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/I.csv b/data/hud/font/3x5/I.csv index c20c2ddb..b378b211 100644 --- a/data/hud/font/3x5/I.csv +++ b/data/hud/font/3x5/I.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/J.csv b/data/hud/font/3x5/J.csv index ea63ccce..bc3c46bc 100644 --- a/data/hud/font/3x5/J.csv +++ b/data/hud/font/3x5/J.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/K.csv b/data/hud/font/3x5/K.csv index 8a9c808b..73e34487 100644 --- a/data/hud/font/3x5/K.csv +++ b/data/hud/font/3x5/K.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/L.csv b/data/hud/font/3x5/L.csv index 5e07c862..022d56fd 100644 --- a/data/hud/font/3x5/L.csv +++ b/data/hud/font/3x5/L.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/M.csv b/data/hud/font/3x5/M.csv index b5259f62..38c1dd98 100644 --- a/data/hud/font/3x5/M.csv +++ b/data/hud/font/3x5/M.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/N.csv b/data/hud/font/3x5/N.csv index 79cbda77..63e1ff4f 100644 --- a/data/hud/font/3x5/N.csv +++ b/data/hud/font/3x5/N.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/O.csv b/data/hud/font/3x5/O.csv index f5a28e26..bc081cd7 100644 --- a/data/hud/font/3x5/O.csv +++ b/data/hud/font/3x5/O.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/P.csv b/data/hud/font/3x5/P.csv index 637de571..b31c1972 100644 --- a/data/hud/font/3x5/P.csv +++ b/data/hud/font/3x5/P.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 diff --git a/data/hud/font/3x5/Q.csv b/data/hud/font/3x5/Q.csv index a37dee3c..fab6c330 100644 --- a/data/hud/font/3x5/Q.csv +++ b/data/hud/font/3x5/Q.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/3x5/R.csv b/data/hud/font/3x5/R.csv index bbd143ec..e746b9cf 100644 --- a/data/hud/font/3x5/R.csv +++ b/data/hud/font/3x5/R.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/S.csv b/data/hud/font/3x5/S.csv index a4664665..91b1efd4 100644 --- a/data/hud/font/3x5/S.csv +++ b/data/hud/font/3x5/S.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/T.csv b/data/hud/font/3x5/T.csv index 2a78fa3c..c870cff6 100644 --- a/data/hud/font/3x5/T.csv +++ b/data/hud/font/3x5/T.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 diff --git a/data/hud/font/3x5/U.csv b/data/hud/font/3x5/U.csv index e02d82ad..0b72c306 100644 --- a/data/hud/font/3x5/U.csv +++ b/data/hud/font/3x5/U.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/V.csv b/data/hud/font/3x5/V.csv index ceb606c0..ddd5b96c 100644 --- a/data/hud/font/3x5/V.csv +++ b/data/hud/font/3x5/V.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 diff --git a/data/hud/font/3x5/W.csv b/data/hud/font/3x5/W.csv index aedcd26d..b07ba008 100644 --- a/data/hud/font/3x5/W.csv +++ b/data/hud/font/3x5/W.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/X.csv b/data/hud/font/3x5/X.csv index 5699bef2..d9ef647d 100644 --- a/data/hud/font/3x5/X.csv +++ b/data/hud/font/3x5/X.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/3x5/Y.csv b/data/hud/font/3x5/Y.csv index c0cd8d49..db5c95bd 100644 --- a/data/hud/font/3x5/Y.csv +++ b/data/hud/font/3x5/Y.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 diff --git a/data/hud/font/3x5/Z.csv b/data/hud/font/3x5/Z.csv index 09e6c45c..3eeccb49 100644 --- a/data/hud/font/3x5/Z.csv +++ b/data/hud/font/3x5/Z.csv @@ -1,11 +1,11 @@ 3,5,1 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/3x5/_backslash.csv b/data/hud/font/3x5/_backslash.csv index fb7e9b26..7e9e7c53 100644 --- a/data/hud/font/3x5/_backslash.csv +++ b/data/hud/font/3x5/_backslash.csv @@ -1,11 +1,11 @@ 3,5,1 -#0FF00FFL,#00000000,#00000000 +#0FF00FFF,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#00000000,#00000000,#0FF00FFL +#00000000,#00000000,#0FF00FFF diff --git a/data/hud/font/3x5/_colon.csv b/data/hud/font/3x5/_colon.csv index 3d0cb646..e3ebe439 100644 --- a/data/hud/font/3x5/_colon.csv +++ b/data/hud/font/3x5/_colon.csv @@ -1,11 +1,11 @@ 3,5,1 #00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 #00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 #00000000,#00000000,#00000000 diff --git a/data/hud/font/3x5/_comma.csv b/data/hud/font/3x5/_comma.csv index b9fef647..d9152fa8 100644 --- a/data/hud/font/3x5/_comma.csv +++ b/data/hud/font/3x5/_comma.csv @@ -5,7 +5,7 @@ #00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#0FF00FFL,#00000000,#00000000 +#0FF00FFF,#00000000,#00000000 diff --git a/data/hud/font/3x5/_dash.csv b/data/hud/font/3x5/_dash.csv index 33bc5fd9..4898a3db 100644 --- a/data/hud/font/3x5/_dash.csv +++ b/data/hud/font/3x5/_dash.csv @@ -3,7 +3,7 @@ #00000000,#00000000,#00000000 -#0FF00FFL,#0FF00FFL,#0FF00FFL +#0FF00FFF,#0FF00FFF,#0FF00FFF #00000000,#00000000,#00000000 diff --git a/data/hud/font/3x5/_dot.csv b/data/hud/font/3x5/_dot.csv index 0ce74ca1..4b2667b8 100644 --- a/data/hud/font/3x5/_dot.csv +++ b/data/hud/font/3x5/_dot.csv @@ -7,5 +7,5 @@ #00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 diff --git a/data/hud/font/3x5/_semicolon.csv b/data/hud/font/3x5/_semicolon.csv index 2973520d..b4f8e506 100644 --- a/data/hud/font/3x5/_semicolon.csv +++ b/data/hud/font/3x5/_semicolon.csv @@ -1,11 +1,11 @@ 3,5,1 #00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 #00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#0FF00FFL,#00000000,#00000000 +#0FF00FFF,#00000000,#00000000 diff --git a/data/hud/font/3x5/_slash.csv b/data/hud/font/3x5/_slash.csv index 744683ca..10aecccc 100644 --- a/data/hud/font/3x5/_slash.csv +++ b/data/hud/font/3x5/_slash.csv @@ -1,11 +1,11 @@ 3,5,1 -#00000000,#00000000,#0FF00FFL +#00000000,#00000000,#0FF00FFF -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#00000000,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#00000000 -#0FF00FFL,#00000000,#00000000 +#0FF00FFF,#00000000,#00000000 diff --git a/data/hud/font/3x5/_underscore.csv b/data/hud/font/3x5/_underscore.csv index fa2592c9..bc0e54d3 100644 --- a/data/hud/font/3x5/_underscore.csv +++ b/data/hud/font/3x5/_underscore.csv @@ -7,5 +7,5 @@ #00000000,#00000000,#00000000 -#0FF00FFL,#0FF00FFL,#0FF00FFL +#0FF00FFF,#0FF00FFF,#0FF00FFF diff --git a/data/hud/font/5x7/0.csv b/data/hud/font/5x7/0.csv index 56eddd63..3e9d4ddc 100644 --- a/data/hud/font/5x7/0.csv +++ b/data/hud/font/5x7/0.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#0FF00FFL,#0FF00FFL,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#0FF00FFF,#0FF00FFF,#00000000 -#0FF00FFL,#00000000,#00000000,#00000000,#0FF00FFL +#0FF00FFF,#00000000,#00000000,#00000000,#0FF00FFF -#0FF00FFL,#00000000,#00000000,#0FF00FFL,#0FF00FFL +#0FF00FFF,#00000000,#00000000,#0FF00FFF,#0FF00FFF -#0FF00FFL,#00000000,#0FF00FFL,#00000000,#0FF00FFL +#0FF00FFF,#00000000,#0FF00FFF,#00000000,#0FF00FFF -#0FF00FFL,#0FF00FFL,#00000000,#00000000,#0FF00FFL +#0FF00FFF,#0FF00FFF,#00000000,#00000000,#0FF00FFF -#0FF00FFL,#00000000,#00000000,#00000000,#0FF00FFL +#0FF00FFF,#00000000,#00000000,#00000000,#0FF00FFF -#00000000,#0FF00FFL,#0FF00FFL,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#0FF00FFF,#0FF00FFF,#00000000 diff --git a/data/hud/font/5x7/1.csv b/data/hud/font/5x7/1.csv index 90590ca1..34aacafe 100644 --- a/data/hud/font/5x7/1.csv +++ b/data/hud/font/5x7/1.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00FF00FL,#00FF00FL,#00000000,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/2.csv b/data/hud/font/5x7/2.csv index 5cf4edd6..1f76962c 100644 --- a/data/hud/font/5x7/2.csv +++ b/data/hud/font/5x7/2.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00FF00FL,#00000000 +#00000000,#00000000,#00000000,#00FF00FF,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00FF00FL,#00000000,#00000000,#00000000 +#00000000,#00FF00FF,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/3.csv b/data/hud/font/5x7/3.csv index b3f5f8b5..424c3933 100644 --- a/data/hud/font/5x7/3.csv +++ b/data/hud/font/5x7/3.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/4.csv b/data/hud/font/5x7/4.csv index f1652344..05738e2a 100644 --- a/data/hud/font/5x7/4.csv +++ b/data/hud/font/5x7/4.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/5.csv b/data/hud/font/5x7/5.csv index 7db64957..29361dbe 100644 --- a/data/hud/font/5x7/5.csv +++ b/data/hud/font/5x7/5.csv @@ -1,22 +1,22 @@ 5,7,2 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/6.csv b/data/hud/font/5x7/6.csv index 7ed334b7..29458530 100644 --- a/data/hud/font/5x7/6.csv +++ b/data/hud/font/5x7/6.csv @@ -1,22 +1,22 @@ 5,7,2 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/7.csv b/data/hud/font/5x7/7.csv index 24a4afca..1484fb73 100644 --- a/data/hud/font/5x7/7.csv +++ b/data/hud/font/5x7/7.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/8.csv b/data/hud/font/5x7/8.csv index ea26aec6..106aec8a 100644 --- a/data/hud/font/5x7/8.csv +++ b/data/hud/font/5x7/8.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/9.csv b/data/hud/font/5x7/9.csv index 8230d1f4..0a9ae547 100644 --- a/data/hud/font/5x7/9.csv +++ b/data/hud/font/5x7/9.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/A.csv b/data/hud/font/5x7/A.csv index 66f7d2f7..7f6f3d47 100644 --- a/data/hud/font/5x7/A.csv +++ b/data/hud/font/5x7/A.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/B.csv b/data/hud/font/5x7/B.csv index 593cfe18..9241f5a9 100644 --- a/data/hud/font/5x7/B.csv +++ b/data/hud/font/5x7/B.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/C.csv b/data/hud/font/5x7/C.csv index 30bfba1a..3b0b4239 100644 --- a/data/hud/font/5x7/C.csv +++ b/data/hud/font/5x7/C.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/D.csv b/data/hud/font/5x7/D.csv index 01edba0b..4642fe7c 100644 --- a/data/hud/font/5x7/D.csv +++ b/data/hud/font/5x7/D.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/E.csv b/data/hud/font/5x7/E.csv index ec073e2a..8c4a2dfe 100644 --- a/data/hud/font/5x7/E.csv +++ b/data/hud/font/5x7/E.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/F.csv b/data/hud/font/5x7/F.csv index 0a47d393..334abdf0 100644 --- a/data/hud/font/5x7/F.csv +++ b/data/hud/font/5x7/F.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/G.csv b/data/hud/font/5x7/G.csv index 932f1629..e38e78e4 100644 --- a/data/hud/font/5x7/G.csv +++ b/data/hud/font/5x7/G.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00000000,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/H.csv b/data/hud/font/5x7/H.csv index d4e904cd..a35b8961 100644 --- a/data/hud/font/5x7/H.csv +++ b/data/hud/font/5x7/H.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/I.csv b/data/hud/font/5x7/I.csv index 63c39d9b..8895249a 100644 --- a/data/hud/font/5x7/I.csv +++ b/data/hud/font/5x7/I.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/J.csv b/data/hud/font/5x7/J.csv index 9560d95b..bcd28c23 100644 --- a/data/hud/font/5x7/J.csv +++ b/data/hud/font/5x7/J.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/K.csv b/data/hud/font/5x7/K.csv index 1b0b110c..f937b8e6 100644 --- a/data/hud/font/5x7/K.csv +++ b/data/hud/font/5x7/K.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00FF00FL,#00000000 +#00FF00FF,#00000000,#00000000,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00FF00FF,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00000000,#00000000,#00000000 +#00FF00FF,#00FF00FF,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00FF00FL,#00000000 +#00FF00FF,#00000000,#00000000,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/L.csv b/data/hud/font/5x7/L.csv index c651038c..011681c2 100644 --- a/data/hud/font/5x7/L.csv +++ b/data/hud/font/5x7/L.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/M.csv b/data/hud/font/5x7/M.csv index 9440b45d..be114403 100644 --- a/data/hud/font/5x7/M.csv +++ b/data/hud/font/5x7/M.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00000000,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/N.csv b/data/hud/font/5x7/N.csv index e5f7f92d..52401ae6 100644 --- a/data/hud/font/5x7/N.csv +++ b/data/hud/font/5x7/N.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00000000,#00000000,#00FF00FL +#00FF00FF,#00FF00FF,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00FF00FL,#00FF00FL +#00FF00FF,#00000000,#00000000,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/O.csv b/data/hud/font/5x7/O.csv index d53a8c95..6d4dcf40 100644 --- a/data/hud/font/5x7/O.csv +++ b/data/hud/font/5x7/O.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/P.csv b/data/hud/font/5x7/P.csv index 965ae314..a31c1bba 100644 --- a/data/hud/font/5x7/P.csv +++ b/data/hud/font/5x7/P.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/Q.csv b/data/hud/font/5x7/Q.csv index 1da9007f..60cab81a 100644 --- a/data/hud/font/5x7/Q.csv +++ b/data/hud/font/5x7/Q.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00FF00FL,#00000000 +#00FF00FF,#00000000,#00000000,#00FF00FF,#00000000 -#00000000,#00FF00FL,#00FF00FL,#00000000,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/R.csv b/data/hud/font/5x7/R.csv index b279eb9d..c7b1c034 100644 --- a/data/hud/font/5x7/R.csv +++ b/data/hud/font/5x7/R.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00FF00FL,#00000000,#00000000 +#00FF00FF,#00000000,#00FF00FF,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00FF00FL,#00000000 +#00FF00FF,#00000000,#00000000,#00FF00FF,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/hud/font/5x7/S.csv b/data/hud/font/5x7/S.csv index 1e1edf50..220bed0d 100644 --- a/data/hud/font/5x7/S.csv +++ b/data/hud/font/5x7/S.csv @@ -1,22 +1,22 @@ 5,7,2 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF #00000000,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/T.csv b/data/hud/font/5x7/T.csv index 704a2a44..25fccec3 100644 --- a/data/hud/font/5x7/T.csv +++ b/data/hud/font/5x7/T.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 diff --git a/data/hud/font/5x7/U.csv b/data/hud/font/5x7/U.csv index 577eed19..28c04bcd 100644 --- a/data/hud/font/5x7/U.csv +++ b/data/hud/font/5x7/U.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/V.csv b/data/hud/font/5x7/V.csv index 819779d5..ca4b9d52 100644 --- a/data/hud/font/5x7/V.csv +++ b/data/hud/font/5x7/V.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000,#00FF00FF,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 diff --git a/data/hud/font/5x7/W.csv b/data/hud/font/5x7/W.csv index 77689fa8..96733a1e 100644 --- a/data/hud/font/5x7/W.csv +++ b/data/hud/font/5x7/W.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF,#00000000,#00FF00FF -#00FF00FL,#00000000,#00FF00FL,#00000000,#00FF00FL +#00FF00FF,#00000000,#00FF00FF,#00000000,#00FF00FF -#00000000,#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00FF00FF,#00FF00FF,#00000000 diff --git a/data/hud/font/5x7/Y.csv b/data/hud/font/5x7/Y.csv index 02bdcd94..c762d987 100644 --- a/data/hud/font/5x7/Y.csv +++ b/data/hud/font/5x7/Y.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000,#00FF00FL +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF00FL,#00000000,#00FF00FL,#00000000 +#00000000,#00FF00FF,#00000000,#00FF00FF,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 diff --git a/data/hud/font/5x7/Z.csv b/data/hud/font/5x7/Z.csv index fa57b999..a7143c18 100644 --- a/data/hud/font/5x7/Z.csv +++ b/data/hud/font/5x7/Z.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF -#00000000,#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00000000,#00000000,#00FF00FL,#00000000 +#00000000,#00000000,#00000000,#00FF00FF,#00000000 -#00000000,#00000000,#00FF00FL,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00FF00FL,#00000000,#00000000,#00000000 +#00000000,#00FF00FF,#00000000,#00000000,#00000000 -#00FF00FL,#00000000,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000,#00000000 -#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL,#00FF00FL +#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF,#00FF00FF diff --git a/data/hud/font/5x7/_backslash.csv b/data/hud/font/5x7/_backslash.csv index bc37f696..73ec99b0 100644 --- a/data/hud/font/5x7/_backslash.csv +++ b/data/hud/font/5x7/_backslash.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#00000000,#00000000,#0FF00FFL,#00000000 +#00000000,#00000000,#00000000,#0FF00FFF,#00000000 -#00000000,#00000000,#00000000,#0FF00FFL,#00000000 +#00000000,#00000000,#00000000,#0FF00FFF,#00000000 diff --git a/data/hud/font/5x7/_colon.csv b/data/hud/font/5x7/_colon.csv index eacb2496..0ec5f686 100644 --- a/data/hud/font/5x7/_colon.csv +++ b/data/hud/font/5x7/_colon.csv @@ -3,13 +3,13 @@ #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/_comma.csv b/data/hud/font/5x7/_comma.csv index 01c002ec..36e4b5f5 100644 --- a/data/hud/font/5x7/_comma.csv +++ b/data/hud/font/5x7/_comma.csv @@ -9,7 +9,7 @@ #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/_dash.csv b/data/hud/font/5x7/_dash.csv index ae7b3cf2..f30c4268 100644 --- a/data/hud/font/5x7/_dash.csv +++ b/data/hud/font/5x7/_dash.csv @@ -5,7 +5,7 @@ #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#0FF00FFL,#0FF00FFL,#00000000 +#00000000,#0FF00FFF,#0FF00FFF,#0FF00FFF,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/_dot.csv b/data/hud/font/5x7/_dot.csv index 2483f52c..f94beec3 100644 --- a/data/hud/font/5x7/_dot.csv +++ b/data/hud/font/5x7/_dot.csv @@ -11,5 +11,5 @@ #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 diff --git a/data/hud/font/5x7/_semicolon.csv b/data/hud/font/5x7/_semicolon.csv index db304102..a652232d 100644 --- a/data/hud/font/5x7/_semicolon.csv +++ b/data/hud/font/5x7/_semicolon.csv @@ -3,13 +3,13 @@ #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/_slash.csv b/data/hud/font/5x7/_slash.csv index 184223fa..695e91b8 100644 --- a/data/hud/font/5x7/_slash.csv +++ b/data/hud/font/5x7/_slash.csv @@ -1,15 +1,15 @@ 5,7,1 -#00000000,#00000000,#00000000,#0FF00FFL,#00000000 +#00000000,#00000000,#00000000,#0FF00FFF,#00000000 -#00000000,#00000000,#00000000,#0FF00FFL,#00000000 +#00000000,#00000000,#00000000,#0FF00FFF,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#00000000,#0FF00FFL,#00000000,#00000000 +#00000000,#00000000,#0FF00FFF,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000 -#00000000,#0FF00FFL,#00000000,#00000000,#00000000 +#00000000,#0FF00FFF,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/_underscore.csv b/data/hud/font/5x7/_underscore.csv index f3ddc3e7..8a913039 100644 --- a/data/hud/font/5x7/_underscore.csv +++ b/data/hud/font/5x7/_underscore.csv @@ -11,5 +11,5 @@ #00000000,#00000000,#00000000,#00000000,#00000000 -#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL,#0FF00FFL +#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF,#0FF00FFF diff --git a/data/hud/topleft.csv b/data/hud/topleft.csv index ec4f8117..a3301e84 100644 --- a/data/hud/topleft.csv +++ b/data/hud/topleft.csv @@ -1,5 +1,5 @@ 4,2,1 -#00000000,#00FF00FL,#00FF00FL,#00FF00FL +#00000000,#00FF00FF,#00FF00FF,#00FF00FF -#00FF00FL,#00000000,#00000000,#00000000 +#00FF00FF,#00000000,#00000000,#00000000 diff --git a/data/hud/topright.csv b/data/hud/topright.csv index 974e79e9..fcb4b4ba 100644 --- a/data/hud/topright.csv +++ b/data/hud/topright.csv @@ -1,5 +1,5 @@ 4,2,1 -#00FF00FL,#00FF00FL,#00FF00FL,#00000000 +#00FF00FF,#00FF00FF,#00FF00FF,#00000000 -#00000000,#00000000,#00000000,#00FF00FL +#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index 04821099..e51231f4 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -7,7 +7,7 @@ layout(location = 0) out vec4 fragColor; layout(location = 1) out vec4 normalz; layout(location = 2) out vec4 emissiveness; -in vec3 f_color; +in vec4 f_color; flat in vec3 f_normal; in float f_deathTime; in float f_emissiveness; @@ -23,9 +23,10 @@ void main() { if (time >= f_deathTime) { discard; } - - fragColor = vec4(voxelFragmentColor(f_color, f_emissiveness, f_normal, f_modelposition), 1.0); - emissiveness = voxelFragmentEmissiveness(f_color, f_emissiveness); + + vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); + fragColor = vec4(rgbColor * f_color.a, f_color.a); + emissiveness = voxelFragmentEmissiveness(f_color.xyz, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); } diff --git a/data/shader/voxelparticle/voxelparticle.vert b/data/shader/voxelparticle/voxelparticle.vert index 025e7098..b33dfebc 100644 --- a/data/shader/voxelparticle/voxelparticle.vert +++ b/data/shader/voxelparticle/voxelparticle.vert @@ -14,7 +14,7 @@ layout(location = 8) in float scale; layout(location = 9) in vec4 color; layout(location = 10) in float emissiveness; // Output -out vec3 f_color; +out vec4 f_color; flat out vec3 f_normal; out float f_deathTime; out float f_emissiveness; @@ -36,7 +36,7 @@ void main() { vec3 particlePosition = directionalSpeed * timeDelta + creationPosition; vec3 particleEulers = angularSpeed * timeDelta + creationEulers; vec4 particleOrientation = quat(particleEulers); - f_color = color.xyz; + f_color = color; f_emissiveness = emissiveness; f_modelposition = v_vertex; f_normal = qtransform(particleOrientation, v_normal); diff --git a/data/voxelcluster/banner.csv b/data/voxelcluster/banner.csv index af37bb1b..86f110d7 100644 --- a/data/voxelcluster/banner.csv +++ b/data/voxelcluster/banner.csv @@ -1,11 +1,11 @@ 30,5,1 -#9CA21CFFL,#9CA21CFFL,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL +#9CA21CFF,#9CA21CFF,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF -#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL +#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF -#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#9CA21CFFL,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#9CA21CFFL +#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#9CA21CFF,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#9CA21CFF -#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL +#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF -#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#00000000,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#9CA21CFFL,#9CA21CFFL,#00000000,#9CA21CFFL,#00000000,#00000000,#9CA21CFFL,#00000000,#9CA21CFFL,#9CA21CFFL,#9CA21CFFL +#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#00000000,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#9CA21CFF,#9CA21CFF,#00000000,#9CA21CFF,#00000000,#00000000,#9CA21CFF,#00000000,#9CA21CFF,#9CA21CFF,#9CA21CFF diff --git a/data/voxelcluster/gunbullet.csv b/data/voxelcluster/gunbullet.csv index 31dd481c..91c80409 100644 --- a/data/voxelcluster/gunbullet.csv +++ b/data/voxelcluster/gunbullet.csv @@ -1,5 +1,5 @@ 1,1,3 -#FE0000FFL -#FE0000FFL -#FE0000FFL +#FE0000FFF +#FE0000FFF +#FE0000FFF diff --git a/data/voxelcluster/piratelight.csv b/data/voxelcluster/piratelight.csv index 14026610..56c32e48 100644 --- a/data/voxelcluster/piratelight.csv +++ b/data/voxelcluster/piratelight.csv @@ -8,7 +8,7 @@ #00000000,#00000000,#00000000,#00000000,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#4A4A4AFF,#FFFFFFFF,#4A4A4AFF,#FFFFFFFF,#4A4A4AFF,#FFFFFFFF,#8C3C1CFF,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#4A4A4AFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#4A4A4AFF,#00000000,#00000000,#00000000 -#000D02FF,#00000000,#4F312FFF,#4F312FFF,#4A4A4AFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#4A4A4AFF,#4A4A4AFF,#4A4A4AFF,#00000000,#000D03FFL +#000D02FF,#00000000,#4F312FFF,#4F312FFF,#4A4A4AFF,#FFFFFFFF,#FFFFFFFF,#FFFFFFFF,#4A4A4AFF,#4A4A4AFF,#4A4A4AFF,#00000000,#000D03FFF #00000000,#00000000,#00000000,#00000000,#00000000,#FFFFFFFF,#4A4A4AFF,#FFFFFFFF,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/voxelcluster/pulselaser_bullet.csv b/data/voxelcluster/pulselaser_bullet.csv index cca9ed52..c01442ca 100644 --- a/data/voxelcluster/pulselaser_bullet.csv +++ b/data/voxelcluster/pulselaser_bullet.csv @@ -1,17 +1,17 @@ 1,1,15 -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL -#FE8000FFL +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF +#FE8000FFF diff --git a/data/voxelcluster/roundbullet.csv b/data/voxelcluster/roundbullet.csv index 0e019b18..36803d7a 100644 --- a/data/voxelcluster/roundbullet.csv +++ b/data/voxelcluster/roundbullet.csv @@ -1,56 +1,56 @@ 8,7,7 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL -#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL -#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF +#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF +#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#939292FFL,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#939292FFF,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#939292FFL,#939292FFL,#939292FFL,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#939292FFL,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#939292FFF,#939292FFF,#939292FFF,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#939292FFF,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 \ No newline at end of file diff --git a/data/voxelcluster/snowball.csv b/data/voxelcluster/snowball.csv index f3d8d674..204d6514 100644 --- a/data/voxelcluster/snowball.csv +++ b/data/voxelcluster/snowball.csv @@ -1,13 +1,13 @@ 3,3,3 -#00000000,#FDFCFCFFL,#00000000 -#FDFCFCFFL,#FDFCFCFFL,#FDFCFCFFL -#00000000,#FDFCFCFFL,#00000000 +#00000000,#FDFCFCFFF,#00000000 +#FDFCFCFFF,#FDFCFCFFF,#FDFCFCFFF +#00000000,#FDFCFCFFF,#00000000 -#FDFCFCFFL,#FDFCFCFFL,#FDFCFCFFL -#FDFCFCFFL,#FDFCFCFFL,#FDFCFCFFL -#FDFCFCFFL,#FDFCFCFFL,#FDFCFCFFL +#FDFCFCFFF,#FDFCFCFFF,#FDFCFCFFF +#FDFCFCFFF,#FDFCFCFFF,#FDFCFCFFF +#FDFCFCFFF,#FDFCFCFFF,#FDFCFCFFF -#00000000,#FDFCFCFFL,#00000000 -#FDFCFCFFL,#FDFCFCFFL,#FDFCFCFFL -#00000000,#FDFCFCFFL,#00000000 +#00000000,#FDFCFCFFF,#00000000 +#FDFCFCFFF,#FDFCFCFFF,#FDFCFCFFF +#00000000,#FDFCFCFFF,#00000000 diff --git a/data/voxels.ini b/data/voxels.ini index 467e5324..8cf844cd 100644 --- a/data/voxels.ini +++ b/data/voxels.ini @@ -4,31 +4,31 @@ hp = 50 [engineSlot] prefix = 0x000E -color = 0x0000FF +color = 0x0000FFFF mass = 1 hp = 20 [hardpoint] prefix = 0x000D -color = 0xFFFF00 +color = 0xFFFF00FF mass = 1 hp = 60 [cockpit] prefix = 0x000C -color = 0x00FF00 +color = 0x00FF00FF mass = 1 hp = 40 [fuel] prefix = 0x000F -color = 0xFF0000 +color = 0xFF0000FF mass = 1 hp = 10 [crucial] prefix = 0xC00C -color = 0x00FFFF +color = 0x00FFFFFF mass = 5 hp = 100 diff --git a/src/equipment/engine.cpp b/src/equipment/engine.cpp index ad2f3e03..753acf9a 100644 --- a/src/equipment/engine.cpp +++ b/src/equipment/engine.cpp @@ -97,7 +97,7 @@ Acceleration Engine::currentAcceleration() const { void Engine::setupTrail() { m_trailGenerator->setLifetime(Property::get(equipmentKey() + ".trail.lifetime", 1.0f)); - m_trailGenerator->setColor(Property::get(equipmentKey() + ".trail.color", 0x6666FF)); + m_trailGenerator->setColor(Property::get(equipmentKey() + ".trail.color", 0x6666FFFF)); m_trailGenerator->setEmissiveness(Property::get(equipmentKey() + ".trail.emissiveness", 0.4f)); } diff --git a/src/equipment/weapons/bullet.cpp b/src/equipment/weapons/bullet.cpp index 068eb0ba..1e5c1bb7 100644 --- a/src/equipment/weapons/bullet.cpp +++ b/src/equipment/weapons/bullet.cpp @@ -39,7 +39,7 @@ void Bullet::spawnExplosion() { generator.setScale(m_transform.scale() / 2.0f); generator.setCount(16); generator.setEmissiveness(0.4f); - generator.setColor(0xFF0000); + generator.setColor(0xFF0000FF); generator.setForce(0.6f); generator.setLifetime(0.7f, 0.2f); diff --git a/src/equipment/weapons/rocket.cpp b/src/equipment/weapons/rocket.cpp index f9352a55..a0ef8008 100644 --- a/src/equipment/weapons/rocket.cpp +++ b/src/equipment/weapons/rocket.cpp @@ -64,7 +64,7 @@ void Rocket::spawnExplosion() { generator.setPosition(m_transform.position()); generator.setScale(m_transform.scale() / 3.0f); - generator.setColor(0xFF0000); + generator.setColor(0xFF0000FF); generator.setEmissiveness(0.4f); generator.setCount(150); generator.setLifetime(1.0f, 0.2f); diff --git a/src/resource/clusterloader.cpp b/src/resource/clusterloader.cpp index a6ed96d5..68a016d1 100644 --- a/src/resource/clusterloader.cpp +++ b/src/resource/clusterloader.cpp @@ -109,7 +109,7 @@ void ClusterLoader::readCsv(std::vector *list){ green = stoi(voxelStrings[cell.x].substr(3, 2), NULL, 16); blue = stoi(voxelStrings[cell.x].substr(5, 2), NULL, 16); alpha = stoi(voxelStrings[cell.x].substr(7, 2), NULL, 16); - color = alpha << 24 | red << 16 | green << 8 | blue; + color = red << 24 | green << 16 | blue << 8 | alpha ; if (alpha > 0) list->push_back(new Voxel(cell, color)); cell.x++; diff --git a/src/resource/colorcoder.cpp b/src/resource/colorcoder.cpp index d36e96b7..dde0681b 100644 --- a/src/resource/colorcoder.cpp +++ b/src/resource/colorcoder.cpp @@ -18,8 +18,8 @@ ColorCoder::ColorCoder(): Voxel* ColorCoder::newCodedVoxel(const Voxel& voxel) { uint32_t color = voxel.visuals().color(); - uint32_t prefixBits = (color & 0xFFFF00) >> 8; - int index = color & 0x0000FF; + uint32_t prefixBits = (color & 0xFFFF0000) >> 16; + int index = (color & 0x0000FF00) >> 8; if(prefixBits == m_engineSlotPrefix) { return new EngineSlotVoxel(voxel.gridCell(), index); diff --git a/src/scenarios/frozengamescenario.cpp b/src/scenarios/frozengamescenario.cpp index 79e99243..1ac38651 100644 --- a/src/scenarios/frozengamescenario.cpp +++ b/src/scenarios/frozengamescenario.cpp @@ -92,7 +92,7 @@ void FrozenGameScenario::populateWorld() { for(int x = 0; x < 20; x++) { for(int y = 0; y < 15; y++) { for(int z = 0; z < 3; z++) { - wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878)); + wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878FF)); } } } @@ -112,7 +112,7 @@ void FrozenGameScenario::populateWorld() { glm::vec3 cell(x, y, z); if(glm::length(cell - middle) < diameter/2) { - planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AA)); + planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AAFF)); } } } @@ -131,7 +131,7 @@ void FrozenGameScenario::populateWorld() { for(int x = 0; x < 4; x++) { for(int y = 0; y < 2; y++) { for(int z = 0; z < 8; z++) { - enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF00)); + enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF00FF)); } } } diff --git a/src/scenarios/gamescenario.cpp b/src/scenarios/gamescenario.cpp index 4e0f9786..6e51e3ce 100644 --- a/src/scenarios/gamescenario.cpp +++ b/src/scenarios/gamescenario.cpp @@ -188,7 +188,7 @@ void GameScenario::spawnStuff() { for (int x = 0; x < 20; x++) { for (int y = 0; y < 15; y++) { for (int z = 0; z < 3; z++) { - wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878)); + wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878FF)); } } } @@ -207,7 +207,7 @@ void GameScenario::spawnStuff() { glm::vec3 cell(x, y, z); if (glm::length(cell - middle) < diameter / 2) { - planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AA)); + planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AAFF)); } } } @@ -224,7 +224,7 @@ void GameScenario::spawnStuff() { for (int x = 0; x < 4; x++) { for (int y = 0; y < 2; y++) { for (int z = 0; z < 8; z++) { - enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF00)); + enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF00FF)); } } } diff --git a/src/scenarios/piratescenario.cpp b/src/scenarios/piratescenario.cpp index d940aa6d..d8c7a03c 100644 --- a/src/scenarios/piratescenario.cpp +++ b/src/scenarios/piratescenario.cpp @@ -105,7 +105,7 @@ void PirateScenario::populateWorld() { for(int x = 0; x < 20; x++) { for(int y = 0; y < 15; y++) { for(int z = 0; z < 3; z++) { - wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878)); + wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878FF)); } } } @@ -125,7 +125,7 @@ void PirateScenario::populateWorld() { glm::vec3 cell(x, y, z); if(glm::length(cell - middle) < diameter/2) { - planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AA)); + planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AAFF)); } } } diff --git a/src/ui/hud/crosshairvoxels.cpp b/src/ui/hud/crosshairvoxels.cpp index bef61909..03a77529 100644 --- a/src/ui/hud/crosshairvoxels.cpp +++ b/src/ui/hud/crosshairvoxels.cpp @@ -25,7 +25,7 @@ class CrossHairElement: public VoxelCluster { }; static CrossHairElement* newStick() { - int color = 0x33FF00; + int color = 0x33FF00FF; CrossHairElement* stick = new CrossHairElement(); @@ -38,7 +38,7 @@ static CrossHairElement* newStick() { static CrossHairElement* newDot() { CrossHairElement* dot = new CrossHairElement(); - dot->addVoxel(new Voxel(glm::ivec3(0, 0, 0), 0x33FF00)); + dot->addVoxel(new Voxel(glm::ivec3(0, 0, 0), 0x33FF00FF)); return dot; } diff --git a/src/ui/hud/objecthudgetcornervoxels.cpp b/src/ui/hud/objecthudgetcornervoxels.cpp index 64003e32..7bb21fbd 100644 --- a/src/ui/hud/objecthudgetcornervoxels.cpp +++ b/src/ui/hud/objecthudgetcornervoxels.cpp @@ -18,16 +18,16 @@ ObjectHudgetCornerVoxels::ObjectHudgetCornerVoxels(ObjectHudgetVoxels* objectHud float normalScale = 0.02f; float highlightScale = 0.04f; - addIndex(0, 0xFF0000, normalScale); - addIndex(1, 0xFF0000, highlightScale); - addIndex(2, 0xCC6600, normalScale); - addIndex(3, 0xCC6600, highlightScale); - addIndex(4, 0x66AAFF, normalScale); - addIndex(5, 0x66AAFF, highlightScale); - addIndex(6, 0x33AA00, normalScale); - addIndex(7, 0x33AA00, highlightScale); - addIndex(8, 0x11CC00, normalScale); - addIndex(9, 0x11CC00, highlightScale); + addIndex(0, 0xFF0000FF, normalScale); + addIndex(1, 0xFF0000FF, highlightScale); + addIndex(2, 0xCC6600FF, normalScale); + addIndex(3, 0xCC6600FF, highlightScale); + addIndex(4, 0x66AAFFFF, normalScale); + addIndex(5, 0x66AAFFFF, highlightScale); + addIndex(6, 0x33AA00FF, normalScale); + addIndex(7, 0x33AA00FF, highlightScale); + addIndex(8, 0x11CC00FF, normalScale); + addIndex(9, 0x11CC00FF, highlightScale); } const glm::vec3& ObjectHudgetCornerVoxels::position() const { diff --git a/src/utils/colorhelper.cpp b/src/utils/colorhelper.cpp new file mode 100644 index 00000000..c889862f --- /dev/null +++ b/src/utils/colorhelper.cpp @@ -0,0 +1,10 @@ +#include "colorhelper.h" + + +uint32_t ColorHelper::flipColorForGPU(uint32_t readable) { + uint32_t r = readable >> 24; + uint32_t g = (readable & 0x00FF0000) >> 16; + uint32_t b = (readable & 0x0000FF00) >> 8; + uint32_t a = (readable & 0x000000FF); + return b | g << 8 | r << 16 | a << 24; +} \ No newline at end of file diff --git a/src/utils/colorhelper.h b/src/utils/colorhelper.h new file mode 100644 index 00000000..d1418f15 --- /dev/null +++ b/src/utils/colorhelper.h @@ -0,0 +1,11 @@ +#pragma once + +#include + + + +class ColorHelper { +public: + // Flips bytes from human readable format to OpenGL format + static uint32_t flipColorForGPU(uint32_t humanReadable); +}; diff --git a/src/voxel/specialvoxels/fuelvoxel.cpp b/src/voxel/specialvoxels/fuelvoxel.cpp index 9333f29d..c03b91a1 100644 --- a/src/voxel/specialvoxels/fuelvoxel.cpp +++ b/src/voxel/specialvoxels/fuelvoxel.cpp @@ -39,7 +39,7 @@ void FuelVoxel::onDestruction() { generator.setScale(worldObject->transform().scale() / 2.0f); generator.setCount(30); generator.setEmissiveness(0.4f); - generator.setColor(0xFF0000); + generator.setColor(0xFF0000FF); generator.setForce(0.4f); generator.setLifetime(0.9f, 0.4f); diff --git a/src/voxel/voxel.h b/src/voxel/voxel.h index 36823d04..0229cc8a 100644 --- a/src/voxel/voxel.h +++ b/src/voxel/voxel.h @@ -14,7 +14,7 @@ class Sphere; class Voxel { public: - Voxel(const glm::ivec3& gridCell, uint32_t color = 0xFFFFFF, float unscaledMatss = defaultUnscaledMass(), float hp = defaultHp(), float emissiveness = 0); + Voxel(const glm::ivec3& gridCell, uint32_t color = 0xFFFFFFFF, float unscaledMatss = defaultUnscaledMass(), float hp = defaultHp(), float emissiveness = 0); Voxel(const Voxel& other); virtual ~Voxel(); diff --git a/src/voxel/voxelrenderdata.cpp b/src/voxel/voxelrenderdata.cpp index 1f227303..f0560367 100644 --- a/src/voxel/voxelrenderdata.cpp +++ b/src/voxel/voxelrenderdata.cpp @@ -7,6 +7,7 @@ #include #include +#include "utils/colorhelper.h" #include "utils/tostring.h" #include "voxelcluster.h" @@ -73,7 +74,7 @@ void VoxelRenderData::updateBuffer() { for (auto& pair : m_voxel) { Voxel *voxel = pair.second; assert(voxel != nullptr); - voxelData[i++] = VoxelData{ glm::vec3(voxel->gridCell()), voxel->visuals().color(), voxel->visuals().emissiveness() }; + voxelData[i++] = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(voxel->visuals().color()), voxel->visuals().emissiveness() }; } m_voxelDataBuffer->unmap(); diff --git a/src/voxeleffect/enginetrailgenerator.cpp b/src/voxeleffect/enginetrailgenerator.cpp index 197d5910..e11702fa 100644 --- a/src/voxeleffect/enginetrailgenerator.cpp +++ b/src/voxeleffect/enginetrailgenerator.cpp @@ -24,7 +24,7 @@ EngineTrailGenerator::EngineTrailGenerator(Engine& engine, const WorldObject& cr prop_stepDistance("vfx.engineTrailStepDistance"), prop_idleTime("vfx.engineTrailIdleCooldown") { - m_generator->setColor(0x6666FF); + m_generator->setColor(0x6666FFFF); m_generator->setEmissiveness(0.4f); m_generator->setCount(8); m_generator->setForce(0.10f, 0.3f); diff --git a/src/voxeleffect/voxelparticleengine.cpp b/src/voxeleffect/voxelparticleengine.cpp index 3ddae0f4..728cb1b3 100644 --- a/src/voxeleffect/voxelparticleengine.cpp +++ b/src/voxeleffect/voxelparticleengine.cpp @@ -77,7 +77,6 @@ void VoxelParticleEngine::removeParticle(int index) { VoxelParticleData& particle = m_cpuParticleBuffer[index]; particle.status = VoxelParticleData::Status::Removed; m_freeParticleBufferIndices.push(index); - //particle.color = 0xff00ff; particleChanged(index); } diff --git a/src/voxeleffect/voxelparticlesetup.cpp b/src/voxeleffect/voxelparticlesetup.cpp index 4dbeca86..db3e595c 100644 --- a/src/voxeleffect/voxelparticlesetup.cpp +++ b/src/voxeleffect/voxelparticlesetup.cpp @@ -2,6 +2,8 @@ #include +#include "utils/colorhelper.h" + VoxelParticleSetup::VoxelParticleSetup(const Transform& transform, const Visuals& visuals, const Speed& speed, float lifetime): m_transform(transform), @@ -22,7 +24,7 @@ VoxelParticleData VoxelParticleSetup::toData(float timeSecs) const { particle.creationTime = timeSecs; particle.deathTime = timeSecs + m_lifetime; particle.scale = m_transform.scale(); - particle.color = m_visuals.color(); + particle.color = ColorHelper::flipColorForGPU(m_visuals.color()); particle.emissiveness = m_visuals.emissiveness(); return particle; diff --git a/src/voxeleffect/voxelparticlespawnbase.cpp b/src/voxeleffect/voxelparticlespawnbase.cpp index 6aedc558..2d255081 100644 --- a/src/voxeleffect/voxelparticlespawnbase.cpp +++ b/src/voxeleffect/voxelparticlespawnbase.cpp @@ -29,7 +29,7 @@ VoxelParticleSpawnBase::VoxelParticleSpawnBase( m_forceRandomization(0.0f), m_lifetime(1.0f), m_lifetimeRandomization(0.0f), - m_color(0xFFFFFF), + m_color(0xFFFFFFFF), m_emissiveness(0.0f), m_impactVector(0, 0, 0), m_particleDampening(dampeningName), From 1b899437029025b468e3f391046281164432384f Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 01:09:53 +0200 Subject: [PATCH 05/34] fix shader --- data/shader/voxelcluster/voxelcluster.frag | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 22757af2..2c3a7516 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -23,6 +23,6 @@ void main() { fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); - count = vec4(f_color.a, f_color.a, f_color.a, 1.0); + count = vec4(1/255, f_color.a, 1.0, 1.0); } From 977f4e54e9318cd7b5193183e8cd0a51691f0f97 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 02:56:45 +0200 Subject: [PATCH 06/34] Fix shader even more, the rest is algorithm error --- data/shader/postprocessing/combine.frag | 16 ++++++++++++++-- data/shader/voxelcluster/voxelcluster.frag | 2 +- src/display/rendering/framebuffer.cpp | 2 +- src/gamestate/gameplay/gameplayscene.cpp | 3 +++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index e094abac..9b9711d9 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -11,6 +11,18 @@ in vec2 v_uv; layout(location=0) out vec4 fragColor; -void main() { - fragColor = texture(color, v_uv) + texture(bloom, v_uv) + texture(transparencyAcc, v_uv); +void main() { + vec4 opaque = texture(color, v_uv) + texture(bloom, v_uv); + vec4 accumulated = texture(transparencyAcc, v_uv); + accumulated.a = texture(transparencyCnt, v_uv).z; // Why is Acc.a always 1?! + uint currentN = uint(texture(transparencyCnt, v_uv).x * 255); + + vec4 weightedAverage = vec4(0.0); + if (currentN > uint(0)) { + weightedAverage = vec4(accumulated.rgb / accumulated.a, accumulated.a / currentN); + } + weightedAverage.a = pow(1 - weightedAverage.a, currentN); + + fragColor = weightedAverage * (1 - weightedAverage.a) + opaque * weightedAverage.a; + } \ No newline at end of file diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 2c3a7516..03f89d54 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -23,6 +23,6 @@ void main() { fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); - count = vec4(1/255, f_color.a, 1.0, 1.0); + count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } diff --git a/src/display/rendering/framebuffer.cpp b/src/display/rendering/framebuffer.cpp index 35637bba..ad135077 100644 --- a/src/display/rendering/framebuffer.cpp +++ b/src/display/rendering/framebuffer.cpp @@ -39,7 +39,7 @@ void FrameBuffer::setupFBO() { glow::Texture* texture = new glow::Texture(GL_TEXTURE_2D); texture->bind(); - texture->image2D(0, GL_RGB, m_resolution.x, m_resolution.y, 0, GL_RGB, GL_FLOAT, nullptr); + texture->image2D(0, GL_RGBA, m_resolution.x, m_resolution.y, 0, GL_RGBA, GL_FLOAT, nullptr); texture->setParameter(GL_TEXTURE_MIN_FILTER, GL_LINEAR); texture->setParameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR); diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 0a75fb65..73517518 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -1,5 +1,7 @@ #include "gameplayscene.h" +#include "glow/FrameBufferObject.h" + #include "camera/camera.h" #include "camera/camerahead.h" @@ -52,6 +54,7 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, } m_framebuffer->setResolution(camera.viewport()); + m_framebuffer->get().clearBuffer(GL_COLOR, BufferNames::TransparencyAccumulation, glm::vec4(0.0f)); // clear accumulation buffer with 0 m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); m_framebuffer->clear(); m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness }); From d5e8ca6ca3a8dbe080a1cb585d5acb858023169a Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 03:06:17 +0200 Subject: [PATCH 07/34] Should have done that earlier --- src/gamestate/gameplay/gameplayscene.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 73517518..c8d515a6 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -63,8 +63,8 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); - //glDisable(GL_CULL_FACE); - //CheckGLError(); + glDisable(GL_CULL_FACE); + CheckGLError(); glDepthMask(GL_FALSE); CheckGLError(); glEnable(GL_BLEND); @@ -72,8 +72,8 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, glBlendFunc(GL_ONE, GL_ONE); CheckGLError(); drawGameAlpha(camera); - //glEnable(GL_CULL_FACE); - //CheckGLError(); + glEnable(GL_CULL_FACE); + CheckGLError(); glDepthMask(GL_TRUE); CheckGLError(); glDisable(GL_BLEND); From df7330ed07e170df3fbe368188c8a149b1ecb9ec Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 03:42:53 +0200 Subject: [PATCH 08/34] Transparency! In every VoxelCluster --- data/equipment/engines/candle.ini | 2 +- data/equipment/engines/enginemk1.ini | 2 +- data/equipment/engines/enginemk3.ini | 2 +- data/equipment/engines/loudengine.ini | 2 +- data/equipment/engines/mginemk1.ini | 2 +- data/equipment/engines/piratethruster.ini | 2 +- .../equipment/engines/piratethrusterheavy.ini | 2 +- data/equipment/engines/rocketthrustermk1.ini | 2 +- data/equipment/engines/slowsublight.ini | 2 +- data/equipment/engines/superslowengine.ini | 2 +- data/equipment/weapons/gun.ini | 2 +- data/equipment/weapons/hornetlauncher.ini | 2 +- data/equipment/weapons/ioncannon.ini | 2 +- data/equipment/weapons/pulselaser.ini | 2 +- data/equipment/weapons/railgun.ini | 2 +- data/equipment/weapons/snowcanon.ini | 2 +- data/hud/arrowXT.csv | 12 +++++------ data/hud/font/5x7/X.csv | 14 ++++++------- data/shader/voxelcluster/voxelcluster.frag | 7 +++++++ data/shader/voxelcluster/voxelcluster.vert | 2 +- data/voxelcluster/missionstart.csv | 10 +++++----- data/voxelcluster/mox.csv | 14 ++++++------- data/voxels.ini | 2 +- src/gamestate/gameplay/gameplayscene.cpp | 14 +++++++------ src/gamestate/gameplay/gameplayscene.h | 2 +- src/ui/hud/aimhelperhudgetvoxels.cpp | 2 +- src/ui/hud/objecthudgetcornervoxels.cpp | 20 +++++++++---------- src/voxel/voxelrenderer.cpp | 3 ++- src/voxel/voxelrenderer.h | 2 +- 29 files changed, 73 insertions(+), 63 deletions(-) diff --git a/data/equipment/engines/candle.ini b/data/equipment/engines/candle.ini index b3718a61..5f419b02 100644 --- a/data/equipment/engines/candle.ini +++ b/data/equipment/engines/candle.ini @@ -9,7 +9,7 @@ color=0xFFFF00FF emissiveness=1.0 [visuals] -color=0xFFFF00FF +color=0xFFFF0090 emissiveness=0.7 [sound] diff --git a/data/equipment/engines/enginemk1.ini b/data/equipment/engines/enginemk1.ini index c4036c8b..643fd5f4 100644 --- a/data/equipment/engines/enginemk1.ini +++ b/data/equipment/engines/enginemk1.ini @@ -9,7 +9,7 @@ color=0x0022FFFF emissiveness=0.2 [visuals] -color=0x0022FFFF +color=0x0022FFA0 emissiveness=0.5 [sound] diff --git a/data/equipment/engines/enginemk3.ini b/data/equipment/engines/enginemk3.ini index 0d4d9d9d..db157cfc 100644 --- a/data/equipment/engines/enginemk3.ini +++ b/data/equipment/engines/enginemk3.ini @@ -9,7 +9,7 @@ color=0xEEFF99FF emissiveness=0.6 [visuals] -color=0x889900FF +color=0x889900A0 emissiveness=0.5 [sound] diff --git a/data/equipment/engines/loudengine.ini b/data/equipment/engines/loudengine.ini index 0aebd756..6c76a1d2 100644 --- a/data/equipment/engines/loudengine.ini +++ b/data/equipment/engines/loudengine.ini @@ -9,7 +9,7 @@ color=0x0011DDFF emissiveness=0.1 [visuals] -color=0x0022FFFF +color=0x0022FFB0 emissiveness=0.5 [sound] diff --git a/data/equipment/engines/mginemk1.ini b/data/equipment/engines/mginemk1.ini index 40a88d41..9b5d1ea3 100644 --- a/data/equipment/engines/mginemk1.ini +++ b/data/equipment/engines/mginemk1.ini @@ -8,7 +8,7 @@ lifetime = 1 emissiveness=0.2 [visuals] -color=0x0077FFFF +color=0x0077FFA0 emissiveness=0.2 [sound] diff --git a/data/equipment/engines/piratethruster.ini b/data/equipment/engines/piratethruster.ini index d0cc9138..9103759a 100644 --- a/data/equipment/engines/piratethruster.ini +++ b/data/equipment/engines/piratethruster.ini @@ -8,7 +8,7 @@ lifetime = 1 emissiveness=0.2 [visuals] -color=0x0077FFFF +color=0x0077FFA0 emissiveness=0.2 [sound] diff --git a/data/equipment/engines/piratethrusterheavy.ini b/data/equipment/engines/piratethrusterheavy.ini index 36770ef8..62864d5c 100644 --- a/data/equipment/engines/piratethrusterheavy.ini +++ b/data/equipment/engines/piratethrusterheavy.ini @@ -9,7 +9,7 @@ lifetime = 1 emissiveness=0.2 [visuals] -color=0x0077FFFF +color=0x0077FFA0 emissiveness=0.2 [sound] diff --git a/data/equipment/engines/rocketthrustermk1.ini b/data/equipment/engines/rocketthrustermk1.ini index 9f4b61d2..96fd3404 100644 --- a/data/equipment/engines/rocketthrustermk1.ini +++ b/data/equipment/engines/rocketthrustermk1.ini @@ -8,7 +8,7 @@ lifetime=5 emissiveness=0.2 [visuals] -color=0xFF0000FF +color=0xFF000080 emissiveness=1.0 [sound] diff --git a/data/equipment/engines/slowsublight.ini b/data/equipment/engines/slowsublight.ini index e875e4b1..d2cfaf70 100644 --- a/data/equipment/engines/slowsublight.ini +++ b/data/equipment/engines/slowsublight.ini @@ -8,7 +8,7 @@ color=0xAA8800FF emissiveness=0.2 [visuals] -color=0x889900FF +color=0x88990090 emissiveness=0.5 [sound] diff --git a/data/equipment/engines/superslowengine.ini b/data/equipment/engines/superslowengine.ini index d4cc502b..8646724a 100644 --- a/data/equipment/engines/superslowengine.ini +++ b/data/equipment/engines/superslowengine.ini @@ -9,7 +9,7 @@ color=0xFF7700FF emissiveness=0.2 [visuals] -color=0xFF7700FF +color=0xFF7700B0 emissiveness=0.5 [sound] diff --git a/data/equipment/weapons/gun.ini b/data/equipment/weapons/gun.ini index 18c86fe1..ebfa1abf 100644 --- a/data/equipment/weapons/gun.ini +++ b/data/equipment/weapons/gun.ini @@ -4,7 +4,7 @@ cooldownTime=0.1 bullet=gunbullet [visuals] -color=0x00FF00FF +color=0x00FF00B0 emissiveness=0.3 [sound] diff --git a/data/equipment/weapons/hornetlauncher.ini b/data/equipment/weapons/hornetlauncher.ini index 773dde65..d6f3a709 100644 --- a/data/equipment/weapons/hornetlauncher.ini +++ b/data/equipment/weapons/hornetlauncher.ini @@ -4,6 +4,6 @@ cooldownTime=2.0 rocket=hornet [visuals] -color=0xFF8000FF +color=0xFF8000B0 emissiveness=0.5 diff --git a/data/equipment/weapons/ioncannon.ini b/data/equipment/weapons/ioncannon.ini index cc3a1d5f..bb06d62c 100644 --- a/data/equipment/weapons/ioncannon.ini +++ b/data/equipment/weapons/ioncannon.ini @@ -4,7 +4,7 @@ cooldownTime=2.0 bullet=ionbullet [visuals] -color=0x00FFFFFF +color=0x00FFFFC0 emissiveness=1.0 [sound] diff --git a/data/equipment/weapons/pulselaser.ini b/data/equipment/weapons/pulselaser.ini index 76dec633..a9b0a0f4 100644 --- a/data/equipment/weapons/pulselaser.ini +++ b/data/equipment/weapons/pulselaser.ini @@ -4,7 +4,7 @@ cooldownTime = 0.3 bullet = pulselaser_bullet [visuals] -color = 0x00FF00 +color = 0x00FF00B0 emissiveness = 0.3 [sound] diff --git a/data/equipment/weapons/railgun.ini b/data/equipment/weapons/railgun.ini index 89d16782..38277995 100644 --- a/data/equipment/weapons/railgun.ini +++ b/data/equipment/weapons/railgun.ini @@ -4,7 +4,7 @@ cooldownTime=0.05 bullet=railgunbullet [visuals] -color=0xFFFF00FF +color=0xFFFF00B0 emissiveness=0.5 [sound] diff --git a/data/equipment/weapons/snowcanon.ini b/data/equipment/weapons/snowcanon.ini index 50d16200..9161e21c 100644 --- a/data/equipment/weapons/snowcanon.ini +++ b/data/equipment/weapons/snowcanon.ini @@ -4,7 +4,7 @@ cooldownTime=0.2 bullet=snowball [visuals] -color=0xFFFFFFFF +color=0xFFFFFF70 emissiveness=1.0 [sound] diff --git a/data/hud/arrowXT.csv b/data/hud/arrowXT.csv index c7cc67b9..a82180cc 100644 --- a/data/hud/arrowXT.csv +++ b/data/hud/arrowXT.csv @@ -1,15 +1,15 @@ 7,7,1 -#00000000,#00000000,#00000000,#FF0000FF,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#FF0000E0,#00000000,#00000000,#00000000 -#00000000,#00000000,#FF0000FF,#55557FFF,#FF0000FF,#00000000,#00000000 +#00000000,#00000000,#FF0000E0,#55557FA0,#FF0000E0,#00000000,#00000000 -#00000000,#00000000,#FF0000FF,#55557FFF,#FF0000FF,#00000000,#00000000 +#00000000,#00000000,#FF0000E0,#55557FA0,#FF0000E0,#00000000,#00000000 -#00000000,#FF0000FF,#55557FFF,#55557FFF,#55557FFF,#FF0000FF,#00000000 +#00000000,#FF0000E0,#55557FA0,#55557FA0,#55557FA0,#FF0000E0,#00000000 -#00000000,#FF0000FF,#55557FFF,#FF0000FF,#55557FFF,#FF0000FF,#00000000 +#00000000,#FF0000E0,#55557FA0,#FF0000E0,#55557FA0,#FF0000E0,#00000000 -#00000000,#00000000,#FF0000FF,#00000000,#FF0000FF,#00000000,#00000000 +#00000000,#00000000,#FF0000E0,#00000000,#FF0000E0,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/hud/font/5x7/X.csv b/data/hud/font/5x7/X.csv index f3c85101..bc74ec4e 100644 --- a/data/hud/font/5x7/X.csv +++ b/data/hud/font/5x7/X.csv @@ -1,15 +1,15 @@ 5,7,1 -#00FF0020,#00000000,#00000000,#00000000,#00FF0020 +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF0040,#00000000,#00000000,#00000000,#00FF0020 +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00000000,#00FF0060,#00000000,#00FF0020,#00000000 +#00000000,#00FF00FF,#00000000,#00FF00FF,#00000000 -#00000000,#00000000,#00FF0080,#00000000,#00000000 +#00000000,#00000000,#00FF00FF,#00000000,#00000000 -#00000000,#00FF0020,#00000000,#00FF00A0,#00000000 +#00000000,#00FF00FF,#00000000,#00FF00FF,#00000000 -#00FF0020,#00000000,#00000000,#00000000,#00FF00C0 +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF -#00FF0020,#00000000,#00000000,#00000000,#00FF00F0 +#00FF00FF,#00000000,#00000000,#00000000,#00FF00FF diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 03f89d54..b6104c1b 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -1,6 +1,7 @@ #version 330 uniform float withBorder; +uniform float transparentPass; layout(location = 0) out vec4 fragColor; layout(location = 1) out vec4 normalz; @@ -19,6 +20,12 @@ vec4 voxelFragmenNormalZ(vec3 normal); void main() { + if (transparentPass > 0 && f_color.a > 0.9999) { + discard; + } + if (transparentPass == 0 && f_color.a < 0.9999) { + discard; + } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); diff --git a/data/shader/voxelcluster/voxelcluster.vert b/data/shader/voxelcluster/voxelcluster.vert index 7eb5b759..5d36c3e8 100644 --- a/data/shader/voxelcluster/voxelcluster.vert +++ b/data/shader/voxelcluster/voxelcluster.vert @@ -24,7 +24,7 @@ out vec3 f_modelposition; void main() { - gl_Position = viewProjection * model * (vec4(v_vertex + v_position, 1.0)); + gl_Position = viewProjection * model * (vec4(v_vertex + v_position * 0.999, 1.0)); f_normal = (model * vec4(v_normal, 0.0)).xyz; f_color = v_color; diff --git a/data/voxelcluster/missionstart.csv b/data/voxelcluster/missionstart.csv index 3a2cbec0..6eb3e008 100644 --- a/data/voxelcluster/missionstart.csv +++ b/data/voxelcluster/missionstart.csv @@ -1,11 +1,11 @@ 48,5,1 -#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#FFC30080,#FFC30080,#FFC30080,#00000000,#FFC30080,#FFC30080,#FFC30080,#00000000,#FFC30080,#FFC30080,#FFC30080,#FFC30080,#FFC30080,#00000000,#FFC30080,#FFC30080,#FFC30080,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#FFC30080,#00000000,#00000000,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#FFC30080,#00000000,#00000000,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#FFC30080,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#FFC30080,#00000000,#00000000,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#00000000,#00000000,#FFC300FF,#FFC300FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF +#FFC30080,#FFC30080,#FFC30080,#00000000,#FFC30080,#FFC30080,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#00000000,#FFC30080,#FFC30080,#FFC30080,#00000000,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#FFC300FF,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF,#00000000,#FFC300FF diff --git a/data/voxelcluster/mox.csv b/data/voxelcluster/mox.csv index d08ee0b2..a105a34d 100644 --- a/data/voxelcluster/mox.csv +++ b/data/voxelcluster/mox.csv @@ -12,9 +12,9 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#6C6B6BFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -32,10 +32,10 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#6C6B6BFF,#00000000,#6C6B6BFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#6C6B6BFF,#00000000,#6C6B6BFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#6C6B6BFF,#6C6B6BFF,#6C6B6BFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00BFDBFF,#00BFDBFF,#00BFDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000CDBFF,#000CDBFF,#000CDBFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#6C6B6BFF,#6C6B6BFF,#6C6B6BFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/voxels.ini b/data/voxels.ini index 8cf844cd..67d7c373 100644 --- a/data/voxels.ini +++ b/data/voxels.ini @@ -16,7 +16,7 @@ hp = 60 [cockpit] prefix = 0x000C -color = 0x00FF00FF +color = 0x00FF0070 mass = 1 hp = 40 diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index c8d515a6..ba103261 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -59,8 +59,7 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, m_framebuffer->clear(); m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness }); - drawGame(camera); - + drawGame(camera, false); m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); glDisable(GL_CULL_FACE); @@ -71,7 +70,8 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, CheckGLError(); glBlendFunc(GL_ONE, GL_ONE); CheckGLError(); - drawGameAlpha(camera); + drawGame(camera, true); + //drawGameAlpha(camera); glEnable(GL_CULL_FACE); CheckGLError(); glDepthMask(GL_TRUE); @@ -110,12 +110,14 @@ void GamePlayScene::setOutputBuffer(int i) { glow::info("Switched to output-buffer: %;", bufferNames[m_currentOutputBuffer]); } -void GamePlayScene::drawGame(const Camera& camera) const { - World::instance()->skybox().draw(camera); +void GamePlayScene::drawGame(const Camera& camera, bool transparentPass) const { + if (!transparentPass) { + World::instance()->skybox().draw(camera); + } m_voxelRenderer->program()->setUniform("lightdir", m_defaultLightDir.get()); - m_voxelRenderer->prepareDraw(camera); + m_voxelRenderer->prepareDraw(camera, true, transparentPass); for (WorldObject* worldObject : World::instance()->worldObjects()) { VoxelRenderer::instance()->draw(*worldObject); diff --git a/src/gamestate/gameplay/gameplayscene.h b/src/gamestate/gameplay/gameplayscene.h index 1a927322..81de20a6 100644 --- a/src/gamestate/gameplay/gameplayscene.h +++ b/src/gamestate/gameplay/gameplayscene.h @@ -50,7 +50,7 @@ class GamePlayScene: public Scene { int m_currentOutputBuffer; - void drawGame(const Camera& camera) const; + void drawGame(const Camera& camera, bool transparentPass) const; void drawGameAlpha(const Camera& camera) const; }; diff --git a/src/ui/hud/aimhelperhudgetvoxels.cpp b/src/ui/hud/aimhelperhudgetvoxels.cpp index 416b4990..f4c1b24b 100644 --- a/src/ui/hud/aimhelperhudgetvoxels.cpp +++ b/src/ui/hud/aimhelperhudgetvoxels.cpp @@ -12,7 +12,7 @@ AimHelperHudgetVoxels::AimHelperHudgetVoxels(AimHelperHudget* aimHelperHudget): m_dot(new VoxelCluster(0.04f)), m_circle(new VoxelCluster(0.04f)) { - int color = 0xFFAA00; + int color = 0xFFAA00E0; int radius = 5; int diameter = radius * 2; diff --git a/src/ui/hud/objecthudgetcornervoxels.cpp b/src/ui/hud/objecthudgetcornervoxels.cpp index 7bb21fbd..1e80377c 100644 --- a/src/ui/hud/objecthudgetcornervoxels.cpp +++ b/src/ui/hud/objecthudgetcornervoxels.cpp @@ -18,16 +18,16 @@ ObjectHudgetCornerVoxels::ObjectHudgetCornerVoxels(ObjectHudgetVoxels* objectHud float normalScale = 0.02f; float highlightScale = 0.04f; - addIndex(0, 0xFF0000FF, normalScale); - addIndex(1, 0xFF0000FF, highlightScale); - addIndex(2, 0xCC6600FF, normalScale); - addIndex(3, 0xCC6600FF, highlightScale); - addIndex(4, 0x66AAFFFF, normalScale); - addIndex(5, 0x66AAFFFF, highlightScale); - addIndex(6, 0x33AA00FF, normalScale); - addIndex(7, 0x33AA00FF, highlightScale); - addIndex(8, 0x11CC00FF, normalScale); - addIndex(9, 0x11CC00FF, highlightScale); + addIndex(0, 0xFF0000A0, normalScale); + addIndex(1, 0xFF0000E0, highlightScale); + addIndex(2, 0xCC6600A0, normalScale); + addIndex(3, 0xCC6600E0, highlightScale); + addIndex(4, 0x66AAFFA0, normalScale); + addIndex(5, 0x66AAFFE0, highlightScale); + addIndex(6, 0x33AA00A0, normalScale); + addIndex(7, 0x33AA00E0, highlightScale); + addIndex(8, 0x11CC00A0, normalScale); + addIndex(9, 0x11CC00E0, highlightScale); } const glm::vec3& ObjectHudgetCornerVoxels::position() const { diff --git a/src/voxel/voxelrenderer.cpp b/src/voxel/voxelrenderer.cpp index 3cc2d810..d1d06ec3 100644 --- a/src/voxel/voxelrenderer.cpp +++ b/src/voxel/voxelrenderer.cpp @@ -34,13 +34,14 @@ VoxelRenderer::VoxelRenderer() : createAndSetupShaders(); } -void VoxelRenderer::prepareDraw(const Camera& camera, bool withBorder) { +void VoxelRenderer::prepareDraw(const Camera& camera, bool withBorder, bool transparentPass) { glEnable(GL_DEPTH_TEST); m_program->setUniform("projection", camera.projection()); m_program->setUniform("view", camera.view()); m_program->setUniform("viewProjection", camera.viewProjection()); m_program->setUniform("withBorder", (withBorder ? 1.0f : 0.0f)); + m_program->setUniform("transparentPass", (transparentPass ? 1.0f : 0.0f)); m_modelMatrixUniform = m_program->getUniform("model"); m_emissivenessUniform = m_program->getUniform("emissiveness"); diff --git a/src/voxel/voxelrenderer.h b/src/voxel/voxelrenderer.h index 42761653..ec390348 100644 --- a/src/voxel/voxelrenderer.h +++ b/src/voxel/voxelrenderer.h @@ -23,7 +23,7 @@ class VoxelMesh; class VoxelRenderer : public ContextDependant { public: - void prepareDraw(const Camera& camera, bool withBorder = true); + void prepareDraw(const Camera& camera, bool withBorder = true, bool transparentPass = false); void draw(VoxelCluster& cluster); void afterDraw(); From ed4536f168acb05870ef020348bc87d3b2c5ecb8 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 03:58:52 +0200 Subject: [PATCH 09/34] And because we like it, here is particle transparency --- data/equipment/engines/candle.ini | 2 +- data/equipment/engines/enginemk1.ini | 2 +- data/equipment/engines/enginemk3.ini | 2 +- data/equipment/engines/loudengine.ini | 2 +- data/equipment/engines/mginemk1.ini | 1 + data/equipment/engines/piratethruster.ini | 1 + data/equipment/engines/piratethrusterheavy.ini | 2 +- data/equipment/engines/rocketthrustermk1.ini | 3 ++- data/equipment/engines/slowsublight.ini | 2 +- data/equipment/engines/superslowengine.ini | 2 +- data/shader/voxelparticle/voxelparticle.frag | 9 +++++++++ src/equipment/weapons/bullet.cpp | 2 +- src/equipment/weapons/rocket.cpp | 2 +- src/gamestate/gameplay/gameplayscene.cpp | 2 +- src/voxeleffect/voxelparticleengine.cpp | 4 ++-- src/voxeleffect/voxelparticleengine.h | 2 +- src/voxeleffect/voxelparticlerenderer.cpp | 3 ++- src/voxeleffect/voxelparticlerenderer.h | 2 +- 18 files changed, 29 insertions(+), 16 deletions(-) diff --git a/data/equipment/engines/candle.ini b/data/equipment/engines/candle.ini index 5f419b02..5b9f70d8 100644 --- a/data/equipment/engines/candle.ini +++ b/data/equipment/engines/candle.ini @@ -5,7 +5,7 @@ type=engine [trail] lifetime = 10 -color=0xFFFF00FF +color=0xFFFF00A0 emissiveness=1.0 [visuals] diff --git a/data/equipment/engines/enginemk1.ini b/data/equipment/engines/enginemk1.ini index 643fd5f4..e5741325 100644 --- a/data/equipment/engines/enginemk1.ini +++ b/data/equipment/engines/enginemk1.ini @@ -5,7 +5,7 @@ type=engine [trail] lifetime = 5 -color=0x0022FFFF +color=0x0022FFA0 emissiveness=0.2 [visuals] diff --git a/data/equipment/engines/enginemk3.ini b/data/equipment/engines/enginemk3.ini index db157cfc..878ac39b 100644 --- a/data/equipment/engines/enginemk3.ini +++ b/data/equipment/engines/enginemk3.ini @@ -5,7 +5,7 @@ type=engine [trail] lifetime = 0.3 -color=0xEEFF99FF +color=0xEEFF99A0 emissiveness=0.6 [visuals] diff --git a/data/equipment/engines/loudengine.ini b/data/equipment/engines/loudengine.ini index 6c76a1d2..be656ed4 100644 --- a/data/equipment/engines/loudengine.ini +++ b/data/equipment/engines/loudengine.ini @@ -5,7 +5,7 @@ type=engine [trail] lifetime = 25 -color=0x0011DDFF +color=0x0011DDB0 emissiveness=0.1 [visuals] diff --git a/data/equipment/engines/mginemk1.ini b/data/equipment/engines/mginemk1.ini index 9b5d1ea3..01863366 100644 --- a/data/equipment/engines/mginemk1.ini +++ b/data/equipment/engines/mginemk1.ini @@ -4,6 +4,7 @@ angularAcceleration=1000.0,1000.0,1000.0 type=engine [trail] +color=0x0077FF90 lifetime = 1 emissiveness=0.2 diff --git a/data/equipment/engines/piratethruster.ini b/data/equipment/engines/piratethruster.ini index 9103759a..09f54fe1 100644 --- a/data/equipment/engines/piratethruster.ini +++ b/data/equipment/engines/piratethruster.ini @@ -4,6 +4,7 @@ angularAcceleration=160.0,160.0,160.0 type=engine [trail] +color=0x0077FFC0 lifetime = 1 emissiveness=0.2 diff --git a/data/equipment/engines/piratethrusterheavy.ini b/data/equipment/engines/piratethrusterheavy.ini index 62864d5c..df6e2c08 100644 --- a/data/equipment/engines/piratethrusterheavy.ini +++ b/data/equipment/engines/piratethrusterheavy.ini @@ -4,7 +4,7 @@ angularAcceleration=200.0,200.0,200.0 type=engine [trail] -color=0x0077FFFF +color=0x0077FFC0 lifetime = 1 emissiveness=0.2 diff --git a/data/equipment/engines/rocketthrustermk1.ini b/data/equipment/engines/rocketthrustermk1.ini index 96fd3404..d7c33196 100644 --- a/data/equipment/engines/rocketthrustermk1.ini +++ b/data/equipment/engines/rocketthrustermk1.ini @@ -4,11 +4,12 @@ angularAcceleration=10,10,10 type=engine [trail] +color=0xFF0000F0 lifetime=5 emissiveness=0.2 [visuals] -color=0xFF000080 +color=0xFF0000C0 emissiveness=1.0 [sound] diff --git a/data/equipment/engines/slowsublight.ini b/data/equipment/engines/slowsublight.ini index d2cfaf70..e1cdcf85 100644 --- a/data/equipment/engines/slowsublight.ini +++ b/data/equipment/engines/slowsublight.ini @@ -4,7 +4,7 @@ angularAcceleration=200.0,200.0,300.0 [trail] lifetime = 0.7 -color=0xAA8800FF +color=0xAA880040 emissiveness=0.2 [visuals] diff --git a/data/equipment/engines/superslowengine.ini b/data/equipment/engines/superslowengine.ini index 8646724a..e0585bfd 100644 --- a/data/equipment/engines/superslowengine.ini +++ b/data/equipment/engines/superslowengine.ini @@ -5,7 +5,7 @@ type=engine [trail] lifetime = 1 -color=0xFF7700FF +color=0xFF7700B0 emissiveness=0.2 [visuals] diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index e51231f4..5bde72ed 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -2,10 +2,12 @@ uniform float time; uniform float withBorder; +uniform float transparentPass; layout(location = 0) out vec4 fragColor; layout(location = 1) out vec4 normalz; layout(location = 2) out vec4 emissiveness; +layout(location = 3) out vec4 count; in vec4 f_color; flat in vec3 f_normal; @@ -23,10 +25,17 @@ void main() { if (time >= f_deathTime) { discard; } + if (transparentPass > 0 && f_color.a > 0.9999) { + discard; + } + if (transparentPass == 0 && f_color.a < 0.9999) { + discard; + } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.xyz, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); + count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } diff --git a/src/equipment/weapons/bullet.cpp b/src/equipment/weapons/bullet.cpp index 1e5c1bb7..12aef63a 100644 --- a/src/equipment/weapons/bullet.cpp +++ b/src/equipment/weapons/bullet.cpp @@ -39,7 +39,7 @@ void Bullet::spawnExplosion() { generator.setScale(m_transform.scale() / 2.0f); generator.setCount(16); generator.setEmissiveness(0.4f); - generator.setColor(0xFF0000FF); + generator.setColor(0xFF0000B0); generator.setForce(0.6f); generator.setLifetime(0.7f, 0.2f); diff --git a/src/equipment/weapons/rocket.cpp b/src/equipment/weapons/rocket.cpp index a0ef8008..412d4b2d 100644 --- a/src/equipment/weapons/rocket.cpp +++ b/src/equipment/weapons/rocket.cpp @@ -64,7 +64,7 @@ void Rocket::spawnExplosion() { generator.setPosition(m_transform.position()); generator.setScale(m_transform.scale() / 3.0f); - generator.setColor(0xFF0000FF); + generator.setColor(0xFF0000D0); generator.setEmissiveness(0.4f); generator.setCount(150); generator.setLifetime(1.0f, 0.2f); diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index ba103261..6acd5087 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -127,7 +127,7 @@ void GamePlayScene::drawGame(const Camera& camera, bool transparentPass) const { m_voxelRenderer->afterDraw(); - World::instance()->particleEngine().draw(camera); + World::instance()->particleEngine().draw(camera, transparentPass); if (m_worldTreeRendererEnabled) { m_worldTreeRenderer->draw(camera); diff --git a/src/voxeleffect/voxelparticleengine.cpp b/src/voxeleffect/voxelparticleengine.cpp index 728cb1b3..7296c12b 100644 --- a/src/voxeleffect/voxelparticleengine.cpp +++ b/src/voxeleffect/voxelparticleengine.cpp @@ -86,12 +86,12 @@ void VoxelParticleEngine::update(float deltaSec) { m_remover->update(deltaSec); } -void VoxelParticleEngine::draw(const Camera& camera) { +void VoxelParticleEngine::draw(const Camera& camera, bool transparentPass) { if (m_gpuParticleBufferInvalid) { updateGPUBuffers(m_gpuParticleBufferInvalidBegin, m_gpuParticleBufferInvalidEnd); } - m_renderer->draw(camera); + m_renderer->draw(camera, transparentPass); } void VoxelParticleEngine::particleChanged(int bufferIndex) { diff --git a/src/voxeleffect/voxelparticleengine.h b/src/voxeleffect/voxelparticleengine.h index 818b84c0..ca07178c 100644 --- a/src/voxeleffect/voxelparticleengine.h +++ b/src/voxeleffect/voxelparticleengine.h @@ -38,7 +38,7 @@ class VoxelParticleEngine : ContextDependant { void removeParticle(int index); void update(float deltaSec); - void draw(const Camera& camera); + void draw(const Camera& camera, bool transparentPass); protected: diff --git a/src/voxeleffect/voxelparticlerenderer.cpp b/src/voxeleffect/voxelparticlerenderer.cpp index 008f6b5f..147bb220 100644 --- a/src/voxeleffect/voxelparticlerenderer.cpp +++ b/src/voxeleffect/voxelparticlerenderer.cpp @@ -40,7 +40,7 @@ void VoxelParticleRenderer::updateBuffer(int begin, int end, VoxelParticleData* m_gpuParticleBuffer->setSubData(begin * sizeof(VoxelParticleData), byteCount, data); } -void VoxelParticleRenderer::draw(const Camera& camera) { +void VoxelParticleRenderer::draw(const Camera& camera, bool transparentPass) { if (!m_initialized) { initialize(); } @@ -52,6 +52,7 @@ void VoxelParticleRenderer::draw(const Camera& camera) { m_program->setUniform("viewProjection", camera.viewProjection()); m_program->setUniform("time", m_engine->time()); m_program->setUniform("lightdir", m_defaultLightDir.get()); + m_program->setUniform("transparentPass", (transparentPass ? 1.0f : 0.0f)); m_program->use(); diff --git a/src/voxeleffect/voxelparticlerenderer.h b/src/voxeleffect/voxelparticlerenderer.h index d914856e..40e966ee 100644 --- a/src/voxeleffect/voxelparticlerenderer.h +++ b/src/voxeleffect/voxelparticlerenderer.h @@ -31,7 +31,7 @@ class VoxelParticleRenderer : public ContextDependant { void updateBuffer(int begin, int end, VoxelParticleData* data); - void draw(const Camera& camera); + void draw(const Camera& camera, bool transparentPass); protected: From 1ce8cfcf86c4c5a76dec8013b0f92daeb36adf42 Mon Sep 17 00:00:00 2001 From: Christian Dullweber Date: Mon, 21 Apr 2014 09:07:01 +0200 Subject: [PATCH 10/34] try to make something transparent --- src/scenarios/gamescenario.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scenarios/gamescenario.cpp b/src/scenarios/gamescenario.cpp index 6e51e3ce..535c8730 100644 --- a/src/scenarios/gamescenario.cpp +++ b/src/scenarios/gamescenario.cpp @@ -224,7 +224,7 @@ void GameScenario::spawnStuff() { for (int x = 0; x < 4; x++) { for (int y = 0; y < 2; y++) { for (int z = 0; z < 8; z++) { - enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF00FF)); + enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF0080)); } } } From ea77924b37eb7df7584409f39e62d2c705d1f2f5 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 11:59:37 +0200 Subject: [PATCH 11/34] Make even more things transparent --- data/voxelcluster/f302.csv | 62 ++++++++++++++--------------- data/voxelcluster/ionbullet.csv | 30 +++++++------- data/voxelcluster/pirategunboat.csv | 32 +++++++-------- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/data/voxelcluster/f302.csv b/data/voxelcluster/f302.csv index bc888e73..bddbc630 100644 --- a/data/voxelcluster/f302.csv +++ b/data/voxelcluster/f302.csv @@ -9,9 +9,9 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -24,13 +24,13 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#000C00FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#000C00FF,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4C50,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -39,15 +39,15 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#000D00FF,#A4A4A4FF,#A4A4A4FF,#C00C00FF,#A4A4A4FF,#A4A4A4FF,#000D01FF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4CFF,#4C4C4CFF,#4C4C4CFF,#A4A4A4FF,#4C4C4CFF,#4C4C4CFF,#4C4C4CFF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4CFF,#4C4C4CFF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#4C4C4CFF,#4C4C4CFF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#4C4C4CFF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#4C4C4CFF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#000F00FF,#A4A4A4FF,#000F00FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#000F00FF,#A4A4A4FF,#000F00FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#000D00FF,#A4A4A450,#A4A4A450,#C00C00FF,#A4A4A450,#A4A4A450,#000D01FF,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4C50,#4C4C4C50,#4C4C4C50,#A4A4A450,#4C4C4C50,#4C4C4C50,#4C4C4C50,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4C50,#4C4C4C50,#A4A4A450,#A4A4A450,#A4A4A450,#4C4C4C50,#4C4C4C50,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#4C4C4C50,#A4A4A450,#A4A4A450,#A4A4A450,#4C4C4C50,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#000F00FF,#A4A4A450,#000F00FF,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#000F00FF,#A4A4A450,#000F00FF,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000E00FF,#00000000,#000E01FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -57,14 +57,14 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#4C4C4CFF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#4C4C4CFF,#00000000,#00000000 -#00000000,#00000000,#A4A4A4FF,#4C4C4CFF,#4C4C4CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4CFF,#4C4C4CFF,#A4A4A4FF,#00000000,#00000000 -#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#000D02FF,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#000D03FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000 -#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000 -#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#4C4C4C50,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#4C4C4C50,#00000000,#00000000 +#00000000,#00000000,#A4A4A450,#4C4C4C50,#4C4C4C50,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4C50,#4C4C4C50,#A4A4A450,#00000000,#00000000 +#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#000D02FF,#00000000,#A4A4A450,#00000000,#A4A4A450,#00000000,#000D03FF,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000 +#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#A4A4A450,#00000000,#A4A4A450,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000 +#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#A4A4A450,#00000000,#A4A4A450,#00000000,#A4A4A450,#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#A4A4A450,#00000000,#A4A4A450,#00000000,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -73,10 +73,10 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF -#A4A4A4FF,#4C4C4CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4CFF,#A4A4A4FF -#A4A4A4FF,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#A4A4A4FF -#00000000,#A4A4A4FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A4FF,#00000000 +#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450 +#A4A4A450,#4C4C4C50,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4C4C4C50,#A4A4A450 +#A4A4A450,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#A4A4A450 +#00000000,#A4A4A450,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#A4A4A450,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/voxelcluster/ionbullet.csv b/data/voxelcluster/ionbullet.csv index 2e1d4862..7c2d6dbd 100644 --- a/data/voxelcluster/ionbullet.csv +++ b/data/voxelcluster/ionbullet.csv @@ -1,25 +1,25 @@ 3,3,7 #00000000,#00000000,#00000000 -#00000000,#55AAFFFF,#00000000 -#55AAFFFF,#55AAFFFF,#55AAFFFF -#00000000,#55AAFFFF,#00000000 -#00000000,#55AAFFFF,#00000000 +#00000000,#55AAFF80,#00000000 +#55AAFF80,#55AAFF80,#55AAFF80 +#00000000,#55AAFF80,#00000000 +#00000000,#55AAFF80,#00000000 #00000000,#00000000,#00000000 #00000000,#00000000,#00000000 -#00000000,#55AAFFFF,#00000000 -#55AAFFFF,#55AAFFFF,#55AAFFFF -#55AAFFFF,#55AAFFFF,#55AAFFFF -#55AAFFFF,#55AAFFFF,#55AAFFFF -#55AAFFFF,#55AAFFFF,#55AAFFFF -#00000000,#55AAFFFF,#00000000 -#00000000,#55AAFFFF,#00000000 +#00000000,#55AAFF80,#00000000 +#55AAFF80,#55AAFF80,#55AAFF80 +#55AAFF80,#55AAFF80,#55AAFF80 +#55AAFF80,#55AAFF80,#55AAFF80 +#55AAFF80,#55AAFF80,#55AAFF80 +#00000000,#55AAFF80,#00000000 +#00000000,#55AAFF80,#00000000 #00000000,#00000000,#00000000 -#00000000,#55AAFFFF,#00000000 -#55AAFFFF,#55AAFFFF,#55AAFFFF -#00000000,#55AAFFFF,#00000000 -#00000000,#55AAFFFF,#00000000 +#00000000,#55AAFF80,#00000000 +#55AAFF80,#55AAFF80,#55AAFF80 +#00000000,#55AAFF80,#00000000 +#00000000,#55AAFF80,#00000000 #00000000,#00000000,#00000000 #00000000,#00000000,#00000000 diff --git a/data/voxelcluster/pirategunboat.csv b/data/voxelcluster/pirategunboat.csv index 1b2fb2ee..b28a4c87 100644 --- a/data/voxelcluster/pirategunboat.csv +++ b/data/voxelcluster/pirategunboat.csv @@ -12,11 +12,11 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -46,11 +46,11 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00AA7FFF,#00AA7FFF,#00AA7FFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#4A4A4AFF,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -114,11 +114,11 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00AA7FFF,#00AA7FFF,#00AA7FFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#4A4A4AFF,#00AA7FFF,#4A4A4AFF,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#4A4A4AFF,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#4A4A4AFF,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4F312FFF,#4A4A4AFF,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -148,11 +148,11 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFFF,#00000000,#55AAFFFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#55AAFFA0,#00000000,#55AAFFA0,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#4A4A4AFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 From 5c2043f4af6ab3fa32d522625e5a02c2b5e2da57 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 12:04:06 +0200 Subject: [PATCH 12/34] shader formatting --- data/shader/postprocessing/combine.frag | 26 ++++++++++---------- data/shader/voxelcluster/voxelcluster.frag | 16 ++++++------ data/shader/voxelparticle/voxelparticle.frag | 18 +++++++------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index 9b9711d9..f8a4ac4c 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -11,18 +11,18 @@ in vec2 v_uv; layout(location=0) out vec4 fragColor; -void main() { - vec4 opaque = texture(color, v_uv) + texture(bloom, v_uv); - vec4 accumulated = texture(transparencyAcc, v_uv); - accumulated.a = texture(transparencyCnt, v_uv).z; // Why is Acc.a always 1?! - uint currentN = uint(texture(transparencyCnt, v_uv).x * 255); - - vec4 weightedAverage = vec4(0.0); - if (currentN > uint(0)) { - weightedAverage = vec4(accumulated.rgb / accumulated.a, accumulated.a / currentN); - } - weightedAverage.a = pow(1 - weightedAverage.a, currentN); - - fragColor = weightedAverage * (1 - weightedAverage.a) + opaque * weightedAverage.a; +void main() { + vec4 opaque = texture(color, v_uv) + texture(bloom, v_uv); + vec4 accumulated = texture(transparencyAcc, v_uv); + accumulated.a = texture(transparencyCnt, v_uv).z; // Why is Acc.a always 1?! + uint currentN = uint(texture(transparencyCnt, v_uv).x * 255); + + vec4 weightedAverage = vec4(0.0); + if (currentN > uint(0)) { + weightedAverage = vec4(accumulated.rgb / accumulated.a, accumulated.a / currentN); + } + weightedAverage.a = pow(1 - weightedAverage.a, currentN); + + fragColor = weightedAverage * (1 - weightedAverage.a) + opaque * weightedAverage.a; } \ No newline at end of file diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index b6104c1b..b568c614 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -20,16 +20,16 @@ vec4 voxelFragmenNormalZ(vec3 normal); void main() { - if (transparentPass > 0 && f_color.a > 0.9999) { - discard; - } - if (transparentPass == 0 && f_color.a < 0.9999) { - discard; - } - vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); + if (transparentPass > 0 && f_color.a > 0.9999) { + discard; + } + if (transparentPass == 0 && f_color.a < 0.9999) { + discard; + } + vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); - count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); + count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index 5bde72ed..bda4958c 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -25,17 +25,17 @@ void main() { if (time >= f_deathTime) { discard; } - if (transparentPass > 0 && f_color.a > 0.9999) { - discard; - } - if (transparentPass == 0 && f_color.a < 0.9999) { - discard; - } - - vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); + if (transparentPass > 0 && f_color.a > 0.9999) { + discard; + } + if (transparentPass == 0 && f_color.a < 0.9999) { + discard; + } + + vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.xyz, f_emissiveness); normalz = voxelFragmenNormalZ(f_normal); - count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); + count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } From 3f0f12209cbd3c774234069df98ce84be1c14791 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 12:08:04 +0200 Subject: [PATCH 13/34] Add missing cockpitvoxels --- data/voxelcluster/c306.csv | 14 +++++++------- data/voxelcluster/smallpolice.csv | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/voxelcluster/c306.csv b/data/voxelcluster/c306.csv index 2e7d5a73..eaf35003 100644 --- a/data/voxelcluster/c306.csv +++ b/data/voxelcluster/c306.csv @@ -1772,7 +1772,7 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -1942,8 +1942,8 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -1987,10 +1987,10 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#3C3C3CFF,#3C3C3CFF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 diff --git a/data/voxelcluster/smallpolice.csv b/data/voxelcluster/smallpolice.csv index 3dbdfd89..e932838f 100644 --- a/data/voxelcluster/smallpolice.csv +++ b/data/voxelcluster/smallpolice.csv @@ -12,7 +12,7 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#23ACB0FF,#00000000,#23ACB0FF,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#00000000,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 @@ -37,7 +37,7 @@ #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000,#00000000 -#00000000,#00000000,#00000000,#00000000,#00000000,#23ACB0FF,#23ACB0FF,#23ACB0FF,#00000000,#00000000,#00000000,#00000000,#00000000 +#00000000,#00000000,#00000000,#00000000,#00000000,#000C00FF,#000C00FF,#000C00FF,#00000000,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#00000000,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#00000000,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#000D00FF,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#000D01FF,#00000000,#00000000,#00000000 #00000000,#00000000,#00000000,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#45B023FF,#00000000,#00000000,#00000000 From 56e4239baf4f292e7a487f7389ab1fce2e7e595b Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 12:09:16 +0200 Subject: [PATCH 14/34] more shader formatting --- data/shader/voxelcluster/voxelcluster.frag | 4 ++-- data/shader/voxelparticle/voxelparticle.frag | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index b568c614..422dfecb 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -21,10 +21,10 @@ vec4 voxelFragmenNormalZ(vec3 normal); void main() { if (transparentPass > 0 && f_color.a > 0.9999) { - discard; + discard; } if (transparentPass == 0 && f_color.a < 0.9999) { - discard; + discard; } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index bda4958c..5585affd 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -26,10 +26,10 @@ void main() { discard; } if (transparentPass > 0 && f_color.a > 0.9999) { - discard; + discard; } if (transparentPass == 0 && f_color.a < 0.9999) { - discard; + discard; } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); From f9d38ae8ba925066232ced00c87bbeec5514a1f3 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 12:11:04 +0200 Subject: [PATCH 15/34] buffer clear order --- src/gamestate/gameplay/gameplayscene.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 6acd5087..bef29fa5 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -54,9 +54,9 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, } m_framebuffer->setResolution(camera.viewport()); - m_framebuffer->get().clearBuffer(GL_COLOR, BufferNames::TransparencyAccumulation, glm::vec4(0.0f)); // clear accumulation buffer with 0 m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); m_framebuffer->clear(); + m_framebuffer->get().clearBuffer(GL_COLOR, BufferNames::TransparencyAccumulation, glm::vec4(0.0f)); // clear accumulation buffer with 0 m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness }); drawGame(camera, false); From b860371d68191c74806c8883743135b134b3acb0 Mon Sep 17 00:00:00 2001 From: psieg Date: Mon, 21 Apr 2014 12:23:29 +0200 Subject: [PATCH 16/34] make things transparent for mrzzzrm --- src/scenarios/frozengamescenario.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/scenarios/frozengamescenario.cpp b/src/scenarios/frozengamescenario.cpp index 1ac38651..3858c949 100644 --- a/src/scenarios/frozengamescenario.cpp +++ b/src/scenarios/frozengamescenario.cpp @@ -92,7 +92,7 @@ void FrozenGameScenario::populateWorld() { for(int x = 0; x < 20; x++) { for(int y = 0; y < 15; y++) { for(int z = 0; z < 3; z++) { - wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878FF)); + wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB4787830)); } } } @@ -112,7 +112,7 @@ void FrozenGameScenario::populateWorld() { glm::vec3 cell(x, y, z); if(glm::length(cell - middle) < diameter/2) { - planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AAFF)); + planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AA80)); } } } @@ -131,7 +131,7 @@ void FrozenGameScenario::populateWorld() { for(int x = 0; x < 4; x++) { for(int y = 0; y < 2; y++) { for(int z = 0; z < 8; z++) { - enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF00FF)); + enemy->addVoxel(new Voxel(glm::ivec3(x, y, z), 0xF0FF0070)); } } } From 92fd3fea058a2861911329708fe303d2018caadf Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 26 Apr 2014 19:21:49 +0200 Subject: [PATCH 17/34] Only render relevant voxels in correspondig pass (voxelrenderer) --- src/voxel/voxelrenderdata.cpp | 27 ++++++++++++++++++++++----- src/voxel/voxelrenderdata.h | 5 ++++- src/voxel/voxelrenderer.cpp | 7 ++++++- src/voxel/voxelrenderer.h | 1 + 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/voxel/voxelrenderdata.cpp b/src/voxel/voxelrenderdata.cpp index f0560367..0792f09d 100644 --- a/src/voxel/voxelrenderdata.cpp +++ b/src/voxel/voxelrenderdata.cpp @@ -27,7 +27,8 @@ namespace { VoxelRenderData::VoxelRenderData(std::unordered_map &voxel) : m_voxel(voxel), m_isDirty(true), - m_bufferSize(0) + m_bufferSize(0), + m_transparentCount(0) { } @@ -70,11 +71,19 @@ void VoxelRenderData::updateBuffer() { VoxelData* voxelData = static_cast(m_voxelDataBuffer->mapRange(0, m_voxel.size() * sizeof(VoxelData), GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT)); assert(voxelData != nullptr); - int i = 0; + m_transparentCount = 0; + int i = 0; // counts from front, opaque voxels + int j = m_voxel.size() - 1; // counts from back, transparent voxels for (auto& pair : m_voxel) { Voxel *voxel = pair.second; assert(voxel != nullptr); - voxelData[i++] = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(voxel->visuals().color()), voxel->visuals().emissiveness() }; + uint32_t color = voxel->visuals().color(); + if ((color & 0x000000FF) == 0xFF) { + voxelData[i++] = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(voxel->visuals().color()), voxel->visuals().emissiveness() }; + } else { + voxelData[j--] = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(voxel->visuals().color()), voxel->visuals().emissiveness() }; + m_transparentCount++; + } } m_voxelDataBuffer->unmap(); @@ -82,8 +91,16 @@ void VoxelRenderData::updateBuffer() { m_isDirty = false; } -int VoxelRenderData::voxelCount() { - return m_voxel.size(); +int VoxelRenderData::opaqueVoxelCount() { + return m_voxel.size() - m_transparentCount; +} + +int VoxelRenderData::transparentVoxelCount() { + return m_transparentCount; +} + +int VoxelRenderData::transparentVoxelBase() { + return m_bufferSize - m_transparentCount; } void VoxelRenderData::invalidate() { diff --git a/src/voxel/voxelrenderdata.h b/src/voxel/voxelrenderdata.h index 8bea1088..73cb5bec 100644 --- a/src/voxel/voxelrenderdata.h +++ b/src/voxel/voxelrenderdata.h @@ -23,7 +23,9 @@ class VoxelRenderData : public ContextDependant { VoxelRenderData(std::unordered_map &voxel); void invalidate(); - int voxelCount(); + int opaqueVoxelCount(); + int transparentVoxelCount(); + int transparentVoxelBase(); glow::VertexArrayObject* vertexArrayObject(); @@ -31,6 +33,7 @@ class VoxelRenderData : public ContextDependant { std::unordered_map &m_voxel; bool m_isDirty; int m_bufferSize; + int m_transparentCount; glow::ref_ptr m_voxelDataBuffer; glow::ref_ptr m_vertexArrayObject; diff --git a/src/voxel/voxelrenderer.cpp b/src/voxel/voxelrenderer.cpp index d1d06ec3..49e97012 100644 --- a/src/voxel/voxelrenderer.cpp +++ b/src/voxel/voxelrenderer.cpp @@ -53,6 +53,7 @@ void VoxelRenderer::prepareDraw(const Camera& camera, bool withBorder, bool tran glProvokingVertex(GL_LAST_VERTEX_CONVENTION); + m_transparentPass = transparentPass; m_prepared = true; } @@ -68,7 +69,11 @@ void VoxelRenderer::draw(VoxelCluster& cluster) { glVertexAttribDivisor(m_program->getAttributeLocation("v_position"), 1); glVertexAttribDivisor(m_program->getAttributeLocation("v_color"), 1); glVertexAttribDivisor(m_program->getAttributeLocation("v_emissiveness"), 1); - renderData->vertexArrayObject()->drawArraysInstanced(GL_TRIANGLE_STRIP, 0, 14, renderData->voxelCount()); + if (m_transparentPass) { + renderData->vertexArrayObject()->drawArraysInstancedBaseInstance(GL_TRIANGLE_STRIP, 0, 14, renderData->transparentVoxelCount(), renderData->transparentVoxelBase()); + } else { + renderData->vertexArrayObject()->drawArraysInstanced(GL_TRIANGLE_STRIP, 0, 14, renderData->opaqueVoxelCount()); + } } void VoxelRenderer::afterDraw() { diff --git a/src/voxel/voxelrenderer.h b/src/voxel/voxelrenderer.h index ec390348..22332bb7 100644 --- a/src/voxel/voxelrenderer.h +++ b/src/voxel/voxelrenderer.h @@ -38,6 +38,7 @@ class VoxelRenderer : public ContextDependant { glow::ref_ptr m_program; std::unique_ptr m_voxelMesh; bool m_prepared; + bool m_transparentPass; glow::Uniform* m_modelMatrixUniform; glow::Uniform* m_emissivenessUniform; From da6a0626ac8732384d3ffff4c5d440db6d936808 Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 26 Apr 2014 19:36:10 +0200 Subject: [PATCH 18/34] Shader no longer needs ifs --- data/shader/voxelcluster/voxelcluster.frag | 6 ------ 1 file changed, 6 deletions(-) diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 422dfecb..e9d08d0b 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -20,12 +20,6 @@ vec4 voxelFragmenNormalZ(vec3 normal); void main() { - if (transparentPass > 0 && f_color.a > 0.9999) { - discard; - } - if (transparentPass == 0 && f_color.a < 0.9999) { - discard; - } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); From f7af066461f57b8267f565eabbdb76cfb59a639e Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 26 Apr 2014 20:05:27 +0200 Subject: [PATCH 19/34] do not render normals for transparent geometry --- data/shader/voxelcluster/voxelcluster.frag | 6 +++++- data/shader/voxelparticle/voxelparticle.frag | 6 +++++- src/gamestate/gameplay/gameplayscene.cpp | 5 +++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index e9d08d0b..0ffc0247 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -23,7 +23,11 @@ void main() { vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); - normalz = voxelFragmenNormalZ(f_normal); + if(transparentPass > 0) { + normalz = vec4(0.0); + } else { + normalz = voxelFragmenNormalZ(f_normal); + } count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index 5585affd..d36d6adc 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -35,7 +35,11 @@ void main() { vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.xyz, f_emissiveness); - normalz = voxelFragmenNormalZ(f_normal); + if(transparentPass > 0) { + normalz = vec4(0.0); + } else { + normalz = voxelFragmenNormalZ(f_normal); + } count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index bef29fa5..0aa881e7 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -57,10 +57,11 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); m_framebuffer->clear(); m_framebuffer->get().clearBuffer(GL_COLOR, BufferNames::TransparencyAccumulation, glm::vec4(0.0f)); // clear accumulation buffer with 0 - m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness }); + m_framebuffer->setDrawBuffers({ BufferNames::Color, BufferNames::NormalZ, BufferNames::Emissisiveness, /* the last buffer can silently be omitted */ }); - drawGame(camera, false); + drawGame(camera, false); + // the shaders [render 0 (added) =>] nothing to the normalZ buffer, but it must be listed here so the same shaders can be used for the opaque and transparent pass m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); glDisable(GL_CULL_FACE); CheckGLError(); From b22ad910215656aacca9c35705ff772f437233b0 Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 26 Apr 2014 21:00:23 +0200 Subject: [PATCH 20/34] fix tests --- test/perftest/testperformance.cpp | 3 --- test/voxelcluster/testvoxelcluster.cpp | 11 ++++++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/test/perftest/testperformance.cpp b/test/perftest/testperformance.cpp index 416e6c6e..93a0e630 100644 --- a/test/perftest/testperformance.cpp +++ b/test/perftest/testperformance.cpp @@ -71,7 +71,6 @@ static void doSplitDetection(WorldObject* planet, WorldObjectModification &mod, go_bandit([](){ describe("VoxelTree", [](){ - World *world; PropertyManager::instance()->reset(); PropertyManager::instance()->load("data/config.ini"); PropertyManager::instance()->load("data/voxels.ini", "voxels"); @@ -79,8 +78,6 @@ go_bandit([](){ before_each([&]() { World::reset(); - world = World::instance(); - world->setPlayer(*new Player()); }); after_each([&]() { diff --git a/test/voxelcluster/testvoxelcluster.cpp b/test/voxelcluster/testvoxelcluster.cpp index a893538b..97598a55 100644 --- a/test/voxelcluster/testvoxelcluster.cpp +++ b/test/voxelcluster/testvoxelcluster.cpp @@ -29,7 +29,7 @@ go_bandit([](){ }); it("can add/remove voxel", [&]() { - cluster->addVoxel(new Voxel(glm::ivec3(1, 2, 3), 0xFF8000)); + cluster->addVoxel(new Voxel(glm::ivec3(1, 2, 3), 0xFF8000FF)); AssertThat(cluster->voxel(glm::ivec3(1, 2, 3)) != nullptr, Equals(true)); cluster->removeVoxel(cluster->voxel(glm::ivec3(1, 2, 3))); @@ -37,12 +37,13 @@ go_bandit([](){ }); it("test generate texture", [&]() { - cluster->addVoxel(new Voxel(glm::ivec3('a', 'b', 'c'), 0xFF8000)); - cluster->addVoxel(new Voxel(glm::ivec3(3, 4, 5), 0x808000)); - cluster->addVoxel(new Voxel(glm::ivec3(1, 5, 3), 0xFF8000)); + cluster->addVoxel(new Voxel(glm::ivec3('a', 'b', 'c'), 0xFF8000FF)); + cluster->addVoxel(new Voxel(glm::ivec3(3, 4, 5), 0x808000FF)); + cluster->addVoxel(new Voxel(glm::ivec3(1, 5, 3), 0xFF800066)); // cant assert anything usefull just verify that nothing crashes ;) - AssertThat(cluster->voxelRenderData()->voxelCount(), Equals(3)); + AssertThat(cluster->voxelRenderData()->opaqueVoxelCount(), Equals(2)); + AssertThat(cluster->voxelRenderData()->transparentVoxelCount(), Equals(1)); }); }); From 6b6bfaca57a6a0d3392cbe7fb6d6531081ed31a2 Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 26 Apr 2014 21:59:02 +0200 Subject: [PATCH 21/34] can't test voxelrenderer as GL context is required --- src/voxel/voxelrenderdata.cpp | 9 +++++++++ test/voxelcluster/testvoxelcluster.cpp | 11 ----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/voxel/voxelrenderdata.cpp b/src/voxel/voxelrenderdata.cpp index 0792f09d..3685981d 100644 --- a/src/voxel/voxelrenderdata.cpp +++ b/src/voxel/voxelrenderdata.cpp @@ -92,14 +92,23 @@ void VoxelRenderData::updateBuffer() { } int VoxelRenderData::opaqueVoxelCount() { + if (m_isDirty) { + updateBuffer(); + } return m_voxel.size() - m_transparentCount; } int VoxelRenderData::transparentVoxelCount() { + if (m_isDirty) { + updateBuffer(); + } return m_transparentCount; } int VoxelRenderData::transparentVoxelBase() { + if (m_isDirty) { + updateBuffer(); + } return m_bufferSize - m_transparentCount; } diff --git a/test/voxelcluster/testvoxelcluster.cpp b/test/voxelcluster/testvoxelcluster.cpp index 97598a55..2eb42e6e 100644 --- a/test/voxelcluster/testvoxelcluster.cpp +++ b/test/voxelcluster/testvoxelcluster.cpp @@ -35,17 +35,6 @@ go_bandit([](){ cluster->removeVoxel(cluster->voxel(glm::ivec3(1, 2, 3))); AssertThat(cluster->voxel(glm::ivec3(1, 2, 3)) == nullptr, Equals(true)); }); - - it("test generate texture", [&]() { - cluster->addVoxel(new Voxel(glm::ivec3('a', 'b', 'c'), 0xFF8000FF)); - cluster->addVoxel(new Voxel(glm::ivec3(3, 4, 5), 0x808000FF)); - cluster->addVoxel(new Voxel(glm::ivec3(1, 5, 3), 0xFF800066)); - - // cant assert anything usefull just verify that nothing crashes ;) - AssertThat(cluster->voxelRenderData()->opaqueVoxelCount(), Equals(2)); - AssertThat(cluster->voxelRenderData()->transparentVoxelCount(), Equals(1)); - }); - }); describe("voxel hasher", []() { it("can hash glm::ivec3", [&]() { From d87d3513da81beefe3c6a327c1993593ae71708f Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 27 Apr 2014 17:57:41 +0200 Subject: [PATCH 22/34] Fix tansparent voxels disappearing --- src/voxel/voxelrenderdata.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/voxel/voxelrenderdata.cpp b/src/voxel/voxelrenderdata.cpp index 3685981d..cc6a5cc9 100644 --- a/src/voxel/voxelrenderdata.cpp +++ b/src/voxel/voxelrenderdata.cpp @@ -73,7 +73,7 @@ void VoxelRenderData::updateBuffer() { m_transparentCount = 0; int i = 0; // counts from front, opaque voxels - int j = m_voxel.size() - 1; // counts from back, transparent voxels + int j = m_bufferSize - 1; // counts from back, transparent voxels for (auto& pair : m_voxel) { Voxel *voxel = pair.second; assert(voxel != nullptr); From c5f5091f12fb445e3dea6c3f59c455fe77d4a931 Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 27 Apr 2014 19:00:20 +0200 Subject: [PATCH 23/34] cleanup --- src/gamestate/gameplay/gameplayscene.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 0aa881e7..cc5ec1a1 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -82,7 +82,6 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, glDisable(GL_DEPTH_TEST); CheckGLError(); - RenderMetaData metadata(camera, side); m_renderPipeline->apply(*m_framebuffer, metadata); @@ -133,11 +132,4 @@ void GamePlayScene::drawGame(const Camera& camera, bool transparentPass) const { if (m_worldTreeRendererEnabled) { m_worldTreeRenderer->draw(camera); } -} - -void GamePlayScene::drawGameAlpha(const Camera& camera) const { - m_voxelRenderer->prepareDraw(camera, false); - m_voxelRenderer->program()->setUniform("lightdir", m_defaultLightDir.get()); - VoxelFont::instance()->drawString("Voxellancer", glm::vec3(0, 0.5f, -1) * 40.f, glm::quat(), FontSize::SIZE5x7, 0.4f, FontAlign::CENTER); - m_voxelRenderer->afterDraw(); -} +} \ No newline at end of file From f2ed7bf9af731aefaca0539bc6ee4b6faad97782 Mon Sep 17 00:00:00 2001 From: psieg Date: Thu, 1 May 2014 20:53:22 +0200 Subject: [PATCH 24/34] Different ParticleEngines for opaque/transparent particles --- .../voxelparticleexpirecheck.cpp | 4 +- .../particlechecks/voxelparticleexpirecheck.h | 6 +- .../voxelparticleintersectioncheck.cpp | 4 +- .../voxelparticleintersectioncheck.h | 6 +- .../particlechecks/voxelparticleremover.cpp | 4 +- .../particlechecks/voxelparticleremover.h | 6 +- src/voxeleffect/voxelparticleengine.cpp | 144 ++-------------- src/voxeleffect/voxelparticleengine.h | 39 +---- src/voxeleffect/voxelparticleengineimpl.cpp | 155 ++++++++++++++++++ src/voxeleffect/voxelparticleengineimpl.h | 65 ++++++++ src/voxeleffect/voxelparticlerenderer.cpp | 4 +- src/voxeleffect/voxelparticlerenderer.h | 8 +- src/voxeleffect/voxelparticlesetup.cpp | 3 + src/voxeleffect/voxelparticlesetup.h | 10 +- 14 files changed, 274 insertions(+), 184 deletions(-) create mode 100644 src/voxeleffect/voxelparticleengineimpl.cpp create mode 100644 src/voxeleffect/voxelparticleengineimpl.h diff --git a/src/voxeleffect/particlechecks/voxelparticleexpirecheck.cpp b/src/voxeleffect/particlechecks/voxelparticleexpirecheck.cpp index 5199c4f8..1fd9e4a6 100644 --- a/src/voxeleffect/particlechecks/voxelparticleexpirecheck.cpp +++ b/src/voxeleffect/particlechecks/voxelparticleexpirecheck.cpp @@ -1,10 +1,10 @@ #include "voxelparticleexpirecheck.h" #include "voxeleffect/voxelparticledata.h" -#include "voxeleffect/voxelparticleengine.h" +#include "voxeleffect/voxelparticleengineimpl.h" -VoxelParticleExpireCheck::VoxelParticleExpireCheck(const VoxelParticleEngine& engine): +VoxelParticleExpireCheck::VoxelParticleExpireCheck(const VoxelParticleEngineImpl& engine): m_particleEngine(engine) { } diff --git a/src/voxeleffect/particlechecks/voxelparticleexpirecheck.h b/src/voxeleffect/particlechecks/voxelparticleexpirecheck.h index c9dd4db1..ddb32112 100644 --- a/src/voxeleffect/particlechecks/voxelparticleexpirecheck.h +++ b/src/voxeleffect/particlechecks/voxelparticleexpirecheck.h @@ -4,7 +4,7 @@ #include "voxelparticleremovecheck.h" -class VoxelParticleEngine; +class VoxelParticleEngineImpl; struct VoxelParticleData; @@ -15,11 +15,11 @@ struct VoxelParticleData; */ class VoxelParticleExpireCheck: public VoxelParticleRemoveCheck { public: - VoxelParticleExpireCheck(const VoxelParticleEngine& engine); + VoxelParticleExpireCheck(const VoxelParticleEngineImpl& engine); virtual bool isDead(const VoxelParticleData& particle) override; protected: - const VoxelParticleEngine& m_particleEngine; + const VoxelParticleEngineImpl& m_particleEngine; }; diff --git a/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.cpp b/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.cpp index f036cb34..7a2812a4 100644 --- a/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.cpp +++ b/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.cpp @@ -14,12 +14,12 @@ #include "voxel/voxelclusterbounds.h" #include "voxeleffect/voxelparticledata.h" -#include "voxeleffect/voxelparticleengine.h" +#include "voxeleffect/voxelparticleengineimpl.h" #include "player.h" #include "camera/camerahead.h" -VoxelParticleIntersectionCheck::VoxelParticleIntersectionCheck(const VoxelParticleEngine& engine) : +VoxelParticleIntersectionCheck::VoxelParticleIntersectionCheck(const VoxelParticleEngineImpl& engine) : m_particleEngine(engine) { } diff --git a/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.h b/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.h index 9af9bf00..c4a1d4f1 100644 --- a/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.h +++ b/src/voxeleffect/particlechecks/voxelparticleintersectioncheck.h @@ -7,7 +7,7 @@ #include "geometry/sphere.h" class Player; -class VoxelParticleEngine; +class VoxelParticleEngineImpl; struct VoxelParticleData; @@ -16,12 +16,12 @@ struct VoxelParticleData; */ class VoxelParticleIntersectionCheck: public VoxelParticleRemoveCheck { public: - VoxelParticleIntersectionCheck(const VoxelParticleEngine& engine); + VoxelParticleIntersectionCheck(const VoxelParticleEngineImpl& engine); virtual bool isDead(const VoxelParticleData& particle) override; protected: - const VoxelParticleEngine& m_particleEngine; + const VoxelParticleEngineImpl& m_particleEngine; Sphere m_Sphere; virtual void beforeCheck(); diff --git a/src/voxeleffect/particlechecks/voxelparticleremover.cpp b/src/voxeleffect/particlechecks/voxelparticleremover.cpp index 813e9ffd..81ca1233 100644 --- a/src/voxeleffect/particlechecks/voxelparticleremover.cpp +++ b/src/voxeleffect/particlechecks/voxelparticleremover.cpp @@ -5,12 +5,12 @@ #include "utils/threadpool.h" #include "voxeleffect/voxelparticledata.h" -#include "voxeleffect/voxelparticleengine.h" +#include "voxeleffect/voxelparticleengineimpl.h" #include "voxelparticleremovecheck.h" -VoxelParticleRemover::VoxelParticleRemover(VoxelParticleEngine* world): +VoxelParticleRemover::VoxelParticleRemover(VoxelParticleEngineImpl* world): m_particleEngine(world), m_currentIndex(0), m_interval("particle.checkinterval"), diff --git a/src/voxeleffect/particlechecks/voxelparticleremover.h b/src/voxeleffect/particlechecks/voxelparticleremover.h index b8cb7a55..1d81d7f6 100644 --- a/src/voxeleffect/particlechecks/voxelparticleremover.h +++ b/src/voxeleffect/particlechecks/voxelparticleremover.h @@ -11,7 +11,7 @@ class ThreadPool; class Player; struct VoxelParticleData; -class VoxelParticleEngine; +class VoxelParticleEngineImpl; class VoxelParticleRemoveCheck; /* @@ -21,7 +21,7 @@ class VoxelParticleRemoveCheck; */ class VoxelParticleRemover { public: - VoxelParticleRemover(VoxelParticleEngine* world); + VoxelParticleRemover(VoxelParticleEngineImpl* world); ~VoxelParticleRemover(); void addCheck(std::shared_ptr checker); @@ -35,7 +35,7 @@ class VoxelParticleRemover { protected: - VoxelParticleEngine* m_particleEngine; + VoxelParticleEngineImpl* m_particleEngine; std::vector> m_checker; std::unique_ptr> m_threadPool; diff --git a/src/voxeleffect/voxelparticleengine.cpp b/src/voxeleffect/voxelparticleengine.cpp index 7296c12b..8ab8f027 100644 --- a/src/voxeleffect/voxelparticleengine.cpp +++ b/src/voxeleffect/voxelparticleengine.cpp @@ -1,155 +1,43 @@ #include "voxelparticleengine.h" -#include "voxelparticledata.h" -#include "voxelparticlerenderer.h" +#include "voxelparticleengineimpl.h" #include "voxelparticlesetup.h" -#include "particlechecks/voxelparticleremover.h" -#include "particlechecks/voxelparticleremovecheck.h" -#include "particlechecks/voxelparticleintersectioncheck.h" -#include "particlechecks/voxelparticleexpirecheck.h" -#include "particlechecks/voxelparticlefuturecheck.h" -#include "world/world.h" - - -VoxelParticleEngine::VoxelParticleEngine(): - m_time(0.0f), - m_initialized(false), - m_renderer(new VoxelParticleRenderer(this)), - m_remover(new VoxelParticleRemover(this)), - m_gpuParticleBufferInvalid(false), - m_gpuParticleBufferInvalidBegin(0), - m_gpuParticleBufferInvalidEnd(0) +VoxelParticleEngine::VoxelParticleEngine() : + m_opaqueEngine(new VoxelParticleEngineImpl()), + m_transparentEngine(new VoxelParticleEngineImpl()) { - m_remover->addCheck(std::make_shared(*this)); - m_remover->addCheck(std::make_shared(*this)); - setBufferSize(1024); } VoxelParticleEngine::~VoxelParticleEngine() = default; -float VoxelParticleEngine::time() const { - return m_time; -} - -int VoxelParticleEngine::particleDataCount() const { - return m_cpuParticleBuffer.size(); -} - int VoxelParticleEngine::particleCount() const { - return m_cpuParticleBuffer.size() - m_freeParticleBufferIndices.size(); -} - -VoxelParticleData* VoxelParticleEngine::particleData(int index) { - return &m_cpuParticleBuffer[index]; -} - -std::vector& VoxelParticleEngine::particleDataVector() { - return m_cpuParticleBuffer; + return m_opaqueEngine->particleCount() + m_transparentEngine->particleCount(); } void VoxelParticleEngine::setPlayer(Player& m_player) { - m_remover->setPlayer(m_player); + m_opaqueEngine->setPlayer(m_player); + m_transparentEngine->setPlayer(m_player); } void VoxelParticleEngine::addParticle(const VoxelParticleSetup& particleSetup, const VoxelCluster* creator) { - VoxelParticleData particle = particleSetup.toData(m_time); - - if (creator != nullptr && VoxelParticleFutureCheck::intersectsIn(particle, 0.5f, *creator)) { - return; - } - - if(m_freeParticleBufferIndices.empty()) { - setBufferSize(m_cpuParticleBuffer.size() * 2); + if ((particleSetup.visuals().color() & 0xFF) == 0xFF) { + m_opaqueEngine->addParticle(particleSetup, creator); + } else { + m_transparentEngine->addParticle(particleSetup, creator); } - - int bufferIndex = m_freeParticleBufferIndices.top(); - m_cpuParticleBuffer[bufferIndex] = particle; - particleChanged(bufferIndex); - - m_freeParticleBufferIndices.pop(); -} - -void VoxelParticleEngine::removeParticle(int index) { - assert(index < m_cpuParticleBuffer.size()); - - VoxelParticleData& particle = m_cpuParticleBuffer[index]; - particle.status = VoxelParticleData::Status::Removed; - m_freeParticleBufferIndices.push(index); - - particleChanged(index); } void VoxelParticleEngine::update(float deltaSec) { - m_time += deltaSec; - m_remover->update(deltaSec); + m_opaqueEngine->update(deltaSec); + m_transparentEngine->update(deltaSec); } void VoxelParticleEngine::draw(const Camera& camera, bool transparentPass) { - if (m_gpuParticleBufferInvalid) { - updateGPUBuffers(m_gpuParticleBufferInvalidBegin, m_gpuParticleBufferInvalidEnd); - } - - m_renderer->draw(camera, transparentPass); -} - -void VoxelParticleEngine::particleChanged(int bufferIndex) { - int oldInvalidBegin = m_gpuParticleBufferInvalidBegin; - int oldInvalidEnd = m_gpuParticleBufferInvalidEnd; - - if (m_gpuParticleBufferInvalid) { - if(bufferIndex < m_gpuParticleBufferInvalidBegin) { - m_gpuParticleBufferInvalidBegin = bufferIndex; - } else if (bufferIndex > m_gpuParticleBufferInvalidEnd) { - m_gpuParticleBufferInvalidEnd = bufferIndex; - } + if (transparentPass) { + m_transparentEngine->draw(camera, true); } else { - m_gpuParticleBufferInvalid = true; - m_gpuParticleBufferInvalidBegin = bufferIndex; - m_gpuParticleBufferInvalidEnd = bufferIndex; + m_transparentEngine->draw(camera, false); } - /* - If the range of particles gets too big, probably because of too many - particles between two free positions, push the old range to the gpu - */ - int oldInvalidCount = oldInvalidEnd - oldInvalidBegin; - int newInvalidCount = m_gpuParticleBufferInvalidEnd - m_gpuParticleBufferInvalidBegin; - if (newInvalidCount - oldInvalidCount > 512) { - updateGPUBuffers(oldInvalidBegin, oldInvalidEnd); - m_gpuParticleBufferInvalidBegin = bufferIndex; - m_gpuParticleBufferInvalidEnd = bufferIndex; - } -} - -void VoxelParticleEngine::setBufferSize(int bufferSize) { - for(int i = m_cpuParticleBuffer.size(); i < bufferSize; i++) { - m_freeParticleBufferIndices.push(i); - } - - m_cpuParticleBuffer.resize(bufferSize); - - // Rather be safe than sorry for now - m_gpuParticleBufferInvalid = true; - m_gpuParticleBufferInvalidBegin = 0; - m_gpuParticleBufferInvalidEnd = bufferSize - 1; -} - - -/* - Update the GPU buffers of all components that use such -*/ -void VoxelParticleEngine::updateGPUBuffers(int begin, int end) { - m_renderer->updateBuffer(begin, end, &m_cpuParticleBuffer[begin]); - - m_gpuParticleBufferInvalid = false; } - -void VoxelParticleEngine::beforeContextDestroy() { - // nothing to do -} - -void VoxelParticleEngine::afterContextRebuild() { - updateGPUBuffers(0, m_cpuParticleBuffer.size()-1); -} - diff --git a/src/voxeleffect/voxelparticleengine.h b/src/voxeleffect/voxelparticleengine.h index ca07178c..208fc23e 100644 --- a/src/voxeleffect/voxelparticleengine.h +++ b/src/voxeleffect/voxelparticleengine.h @@ -10,56 +10,33 @@ class Player; class Camera; -struct VoxelParticleData; -class VoxelParticleSetup; -class VoxelParticleRenderer; -class VoxelParticleRemover; class VoxelCluster; +class VoxelParticleSetup; +class VoxelParticleEngineImpl; -/* - Main class for managing and displaying the VoxelParticles of - a World. +/** + * Interface abstraction for the two VoxelParticleEngineImpl's + * for opaque and transparent particles */ -class VoxelParticleEngine : ContextDependant { +class VoxelParticleEngine { public: VoxelParticleEngine(); ~VoxelParticleEngine(); - float time() const; - int particleCount() const; - int particleDataCount() const; - VoxelParticleData* particleData(int index); - std::vector& particleDataVector(); void setPlayer(Player& m_player); void addParticle(const VoxelParticleSetup& particleSetup, const VoxelCluster* creator); - void removeParticle(int index); void update(float deltaSec); void draw(const Camera& camera, bool transparentPass); protected: - float m_time; - bool m_initialized; - - std::unique_ptr m_renderer; - std::unique_ptr m_remover; - - std::vector m_cpuParticleBuffer; - std::stack m_freeParticleBufferIndices; - - bool m_gpuParticleBufferInvalid; - int m_gpuParticleBufferInvalidBegin; - int m_gpuParticleBufferInvalidEnd; - void setBufferSize(int bufferSize); - void particleChanged(int bufferIndex); - void updateGPUBuffers(int begin, int end); + std::unique_ptr m_opaqueEngine; + std::unique_ptr m_transparentEngine; - virtual void beforeContextDestroy(); - virtual void afterContextRebuild(); }; diff --git a/src/voxeleffect/voxelparticleengineimpl.cpp b/src/voxeleffect/voxelparticleengineimpl.cpp new file mode 100644 index 00000000..f5d145bf --- /dev/null +++ b/src/voxeleffect/voxelparticleengineimpl.cpp @@ -0,0 +1,155 @@ +#include "voxelparticleengineimpl.h" + +#include "voxelparticledata.h" +#include "voxelparticlerenderer.h" +#include "voxelparticlesetup.h" + +#include "particlechecks/voxelparticleremover.h" +#include "particlechecks/voxelparticleremovecheck.h" +#include "particlechecks/voxelparticleintersectioncheck.h" +#include "particlechecks/voxelparticleexpirecheck.h" +#include "particlechecks/voxelparticlefuturecheck.h" + +#include "world/world.h" + + +VoxelParticleEngineImpl::VoxelParticleEngineImpl(): + m_time(0.0f), + m_initialized(false), + m_renderer(new VoxelParticleRenderer(this)), + m_remover(new VoxelParticleRemover(this)), + m_gpuParticleBufferInvalid(false), + m_gpuParticleBufferInvalidBegin(0), + m_gpuParticleBufferInvalidEnd(0) +{ + m_remover->addCheck(std::make_shared(*this)); + m_remover->addCheck(std::make_shared(*this)); + setBufferSize(1024); +} + +VoxelParticleEngineImpl::~VoxelParticleEngineImpl() = default; + +float VoxelParticleEngineImpl::time() const { + return m_time; +} + +int VoxelParticleEngineImpl::particleDataCount() const { + return m_cpuParticleBuffer.size(); +} + +int VoxelParticleEngineImpl::particleCount() const { + return m_cpuParticleBuffer.size() - m_freeParticleBufferIndices.size(); +} + +VoxelParticleData* VoxelParticleEngineImpl::particleData(int index) { + return &m_cpuParticleBuffer[index]; +} + +std::vector& VoxelParticleEngineImpl::particleDataVector() { + return m_cpuParticleBuffer; +} + +void VoxelParticleEngineImpl::setPlayer(Player& m_player) { + m_remover->setPlayer(m_player); +} + +void VoxelParticleEngineImpl::addParticle(const VoxelParticleSetup& particleSetup, const VoxelCluster* creator) { + VoxelParticleData particle = particleSetup.toData(m_time); + + if (creator != nullptr && VoxelParticleFutureCheck::intersectsIn(particle, 0.5f, *creator)) { + return; + } + + if(m_freeParticleBufferIndices.empty()) { + setBufferSize(m_cpuParticleBuffer.size() * 2); + } + + int bufferIndex = m_freeParticleBufferIndices.top(); + m_cpuParticleBuffer[bufferIndex] = particle; + particleChanged(bufferIndex); + + m_freeParticleBufferIndices.pop(); +} + +void VoxelParticleEngineImpl::removeParticle(int index) { + assert(index < m_cpuParticleBuffer.size()); + + VoxelParticleData& particle = m_cpuParticleBuffer[index]; + particle.status = VoxelParticleData::Status::Removed; + m_freeParticleBufferIndices.push(index); + + particleChanged(index); +} + +void VoxelParticleEngineImpl::update(float deltaSec) { + m_time += deltaSec; + m_remover->update(deltaSec); +} + +void VoxelParticleEngineImpl::draw(const Camera& camera, bool transparentPass) { + if (m_gpuParticleBufferInvalid) { + updateGPUBuffers(m_gpuParticleBufferInvalidBegin, m_gpuParticleBufferInvalidEnd); + } + + m_renderer->draw(camera, transparentPass); +} + +void VoxelParticleEngineImpl::particleChanged(int bufferIndex) { + int oldInvalidBegin = m_gpuParticleBufferInvalidBegin; + int oldInvalidEnd = m_gpuParticleBufferInvalidEnd; + + if (m_gpuParticleBufferInvalid) { + if(bufferIndex < m_gpuParticleBufferInvalidBegin) { + m_gpuParticleBufferInvalidBegin = bufferIndex; + } else if (bufferIndex > m_gpuParticleBufferInvalidEnd) { + m_gpuParticleBufferInvalidEnd = bufferIndex; + } + } else { + m_gpuParticleBufferInvalid = true; + m_gpuParticleBufferInvalidBegin = bufferIndex; + m_gpuParticleBufferInvalidEnd = bufferIndex; + } + /* + If the range of particles gets too big, probably because of too many + particles between two free positions, push the old range to the gpu + */ + int oldInvalidCount = oldInvalidEnd - oldInvalidBegin; + int newInvalidCount = m_gpuParticleBufferInvalidEnd - m_gpuParticleBufferInvalidBegin; + if (newInvalidCount - oldInvalidCount > 512) { + updateGPUBuffers(oldInvalidBegin, oldInvalidEnd); + m_gpuParticleBufferInvalidBegin = bufferIndex; + m_gpuParticleBufferInvalidEnd = bufferIndex; + } +} + +void VoxelParticleEngineImpl::setBufferSize(int bufferSize) { + for(int i = m_cpuParticleBuffer.size(); i < bufferSize; i++) { + m_freeParticleBufferIndices.push(i); + } + + m_cpuParticleBuffer.resize(bufferSize); + + // Rather be safe than sorry for now + m_gpuParticleBufferInvalid = true; + m_gpuParticleBufferInvalidBegin = 0; + m_gpuParticleBufferInvalidEnd = bufferSize - 1; +} + + +/* + Update the GPU buffers of all components that use such +*/ +void VoxelParticleEngineImpl::updateGPUBuffers(int begin, int end) { + m_renderer->updateBuffer(begin, end, &m_cpuParticleBuffer[begin]); + + m_gpuParticleBufferInvalid = false; +} + +void VoxelParticleEngineImpl::beforeContextDestroy() { + // nothing to do +} + +void VoxelParticleEngineImpl::afterContextRebuild() { + updateGPUBuffers(0, m_cpuParticleBuffer.size()-1); +} + diff --git a/src/voxeleffect/voxelparticleengineimpl.h b/src/voxeleffect/voxelparticleengineimpl.h new file mode 100644 index 00000000..e61f1650 --- /dev/null +++ b/src/voxeleffect/voxelparticleengineimpl.h @@ -0,0 +1,65 @@ +#pragma once + +#include +#include +#include + +#include "etc/contextdependant.h" + +#include "property/property.h" + +class Player; +class Camera; +struct VoxelParticleData; +class VoxelParticleSetup; +class VoxelParticleRenderer; +class VoxelParticleRemover; +class VoxelCluster; + +/* + Main class for managing and displaying the VoxelParticles of + a World. +*/ +class VoxelParticleEngineImpl : ContextDependant { +public: + VoxelParticleEngineImpl(); + ~VoxelParticleEngineImpl(); + + float time() const; + + int particleCount() const; + int particleDataCount() const; + VoxelParticleData* particleData(int index); + std::vector& particleDataVector(); + + void setPlayer(Player& m_player); + + void addParticle(const VoxelParticleSetup& particleSetup, const VoxelCluster* creator); + void removeParticle(int index); + + void update(float deltaSec); + void draw(const Camera& camera, bool transparentPass); + + +protected: + float m_time; + bool m_initialized; + + std::unique_ptr m_renderer; + std::unique_ptr m_remover; + + std::vector m_cpuParticleBuffer; + std::stack m_freeParticleBufferIndices; + + bool m_gpuParticleBufferInvalid; + int m_gpuParticleBufferInvalidBegin; + int m_gpuParticleBufferInvalidEnd; + + void setBufferSize(int bufferSize); + void particleChanged(int bufferIndex); + void updateGPUBuffers(int begin, int end); + + virtual void beforeContextDestroy(); + virtual void afterContextRebuild(); +}; + diff --git a/src/voxeleffect/voxelparticlerenderer.cpp b/src/voxeleffect/voxelparticlerenderer.cpp index 147bb220..4268821c 100644 --- a/src/voxeleffect/voxelparticlerenderer.cpp +++ b/src/voxeleffect/voxelparticlerenderer.cpp @@ -11,11 +11,11 @@ #include "utils/math.h" -#include "voxelparticleengine.h" +#include "voxelparticleengineimpl.h" #include "voxelmesh.h" -VoxelParticleRenderer::VoxelParticleRenderer(VoxelParticleEngine* engine): +VoxelParticleRenderer::VoxelParticleRenderer(VoxelParticleEngineImpl* engine): m_initialized(false), m_engine(engine), m_bufferSize(0), diff --git a/src/voxeleffect/voxelparticlerenderer.h b/src/voxeleffect/voxelparticlerenderer.h index 40e966ee..9f4f31ef 100644 --- a/src/voxeleffect/voxelparticlerenderer.h +++ b/src/voxeleffect/voxelparticlerenderer.h @@ -18,15 +18,15 @@ namespace glow { class Camera; class VoxelMesh; -class VoxelParticleEngine; +class VoxelParticleEngineImpl; /* - Component of a VoxelParticleEngine responsible for rendering the particles + Component of a VoxelParticleEngineImpl responsible for rendering the particles It holds its own GPU-Buffer and receives updates for the particles by updateBuffer() */ class VoxelParticleRenderer : public ContextDependant { public: - VoxelParticleRenderer(VoxelParticleEngine* engine); + VoxelParticleRenderer(VoxelParticleEngineImpl* engine); ~VoxelParticleRenderer(); void updateBuffer(int begin, int end, VoxelParticleData* data); @@ -38,7 +38,7 @@ class VoxelParticleRenderer : public ContextDependant { std::unique_ptr m_voxelMesh; bool m_initialized; - VoxelParticleEngine* m_engine; + VoxelParticleEngineImpl* m_engine; int m_bufferSize; Property m_defaultLightDir; diff --git a/src/voxeleffect/voxelparticlesetup.cpp b/src/voxeleffect/voxelparticlesetup.cpp index db3e595c..979b3754 100644 --- a/src/voxeleffect/voxelparticlesetup.cpp +++ b/src/voxeleffect/voxelparticlesetup.cpp @@ -30,3 +30,6 @@ VoxelParticleData VoxelParticleSetup::toData(float timeSecs) const { return particle; } +Visuals VoxelParticleSetup::visuals() const { + return m_visuals; +} \ No newline at end of file diff --git a/src/voxeleffect/voxelparticlesetup.h b/src/voxeleffect/voxelparticlesetup.h index 24873627..25d93a32 100644 --- a/src/voxeleffect/voxelparticlesetup.h +++ b/src/voxeleffect/voxelparticlesetup.h @@ -9,10 +9,10 @@ #include "voxelparticledata.h" -/* - Setup for a particle used for its spawning by the VoxelParticlewWorld. - Note that the VoxelParticlewWorld itsself stores the Particle optimized - inside a buffer of VoxelParticleData, which is a data-only-structure +/** + * Setup for a particle used for its spawning by the VoxelParticlewWorld. + * Note that the VoxelParticlewWorld itsself stores the Particle optimized + * inside a buffer of VoxelParticleData, which is a data-only-structure */ class VoxelParticleSetup { public: @@ -20,6 +20,8 @@ class VoxelParticleSetup { VoxelParticleData toData(float timeSecs) const; + Visuals visuals() const; + protected: Transform m_transform; From ca18a2e9b66b65bd88decbbaf0728cf7450eccea Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 4 May 2014 21:12:02 +0200 Subject: [PATCH 25/34] switch uniform to bool --- data/shader/voxelcluster/voxelcluster.frag | 4 ++-- data/shader/voxelparticle/voxelparticle.frag | 8 ++++---- src/voxel/voxelrenderer.cpp | 2 +- src/voxeleffect/voxelparticlerenderer.cpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 0ffc0247..82ce224e 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -1,7 +1,7 @@ #version 330 uniform float withBorder; -uniform float transparentPass; +uniform bool transparentPass; layout(location = 0) out vec4 fragColor; layout(location = 1) out vec4 normalz; @@ -23,7 +23,7 @@ void main() { vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); - if(transparentPass > 0) { + if(transparentPass) { normalz = vec4(0.0); } else { normalz = voxelFragmenNormalZ(f_normal); diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index d36d6adc..6f6af11b 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -2,7 +2,7 @@ uniform float time; uniform float withBorder; -uniform float transparentPass; +uniform bool transparentPass; layout(location = 0) out vec4 fragColor; layout(location = 1) out vec4 normalz; @@ -25,17 +25,17 @@ void main() { if (time >= f_deathTime) { discard; } - if (transparentPass > 0 && f_color.a > 0.9999) { + if (transparentPass && f_color.a > 0.9999) { discard; } - if (transparentPass == 0 && f_color.a < 0.9999) { + if (!transparentPass && f_color.a < 0.9999) { discard; } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.xyz, f_emissiveness); - if(transparentPass > 0) { + if(transparentPass) { normalz = vec4(0.0); } else { normalz = voxelFragmenNormalZ(f_normal); diff --git a/src/voxel/voxelrenderer.cpp b/src/voxel/voxelrenderer.cpp index 49e97012..08898026 100644 --- a/src/voxel/voxelrenderer.cpp +++ b/src/voxel/voxelrenderer.cpp @@ -41,7 +41,7 @@ void VoxelRenderer::prepareDraw(const Camera& camera, bool withBorder, bool tran m_program->setUniform("view", camera.view()); m_program->setUniform("viewProjection", camera.viewProjection()); m_program->setUniform("withBorder", (withBorder ? 1.0f : 0.0f)); - m_program->setUniform("transparentPass", (transparentPass ? 1.0f : 0.0f)); + m_program->setUniform("transparentPass", transparentPass); m_modelMatrixUniform = m_program->getUniform("model"); m_emissivenessUniform = m_program->getUniform("emissiveness"); diff --git a/src/voxeleffect/voxelparticlerenderer.cpp b/src/voxeleffect/voxelparticlerenderer.cpp index 4268821c..4bb0e268 100644 --- a/src/voxeleffect/voxelparticlerenderer.cpp +++ b/src/voxeleffect/voxelparticlerenderer.cpp @@ -52,7 +52,7 @@ void VoxelParticleRenderer::draw(const Camera& camera, bool transparentPass) { m_program->setUniform("viewProjection", camera.viewProjection()); m_program->setUniform("time", m_engine->time()); m_program->setUniform("lightdir", m_defaultLightDir.get()); - m_program->setUniform("transparentPass", (transparentPass ? 1.0f : 0.0f)); + m_program->setUniform("transparentPass", transparentPass); m_program->use(); From 3671959d5fb7be3cecf19cb2609d0a38d074db95 Mon Sep 17 00:00:00 2001 From: psieg Date: Fri, 9 May 2014 08:42:36 +0200 Subject: [PATCH 26/34] Lots of curious bugs --- data/shader/postprocessing/combine.frag | 2 +- data/shader/voxelcluster/voxelcluster.vert | 2 +- data/shader/voxelparticle/voxelparticle.frag | 6 ------ src/voxel/voxelrenderdata.cpp | 9 +++++---- src/voxeleffect/voxelparticleengine.cpp | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index f8a4ac4c..d2d47767 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -11,7 +11,7 @@ in vec2 v_uv; layout(location=0) out vec4 fragColor; -void main() { +void main() { vec4 opaque = texture(color, v_uv) + texture(bloom, v_uv); vec4 accumulated = texture(transparencyAcc, v_uv); accumulated.a = texture(transparencyCnt, v_uv).z; // Why is Acc.a always 1?! diff --git a/data/shader/voxelcluster/voxelcluster.vert b/data/shader/voxelcluster/voxelcluster.vert index 5d36c3e8..a4c5370a 100644 --- a/data/shader/voxelcluster/voxelcluster.vert +++ b/data/shader/voxelcluster/voxelcluster.vert @@ -24,7 +24,7 @@ out vec3 f_modelposition; void main() { - gl_Position = viewProjection * model * (vec4(v_vertex + v_position * 0.999, 1.0)); + gl_Position = viewProjection * model * (vec4(v_position + v_vertex * 0.999, 1.0)); f_normal = (model * vec4(v_normal, 0.0)).xyz; f_color = v_color; diff --git a/data/shader/voxelparticle/voxelparticle.frag b/data/shader/voxelparticle/voxelparticle.frag index 6f6af11b..7819ebc3 100644 --- a/data/shader/voxelparticle/voxelparticle.frag +++ b/data/shader/voxelparticle/voxelparticle.frag @@ -25,12 +25,6 @@ void main() { if (time >= f_deathTime) { discard; } - if (transparentPass && f_color.a > 0.9999) { - discard; - } - if (!transparentPass && f_color.a < 0.9999) { - discard; - } vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); diff --git a/src/voxel/voxelrenderdata.cpp b/src/voxel/voxelrenderdata.cpp index 20cd5ca6..df946d33 100644 --- a/src/voxel/voxelrenderdata.cpp +++ b/src/voxel/voxelrenderdata.cpp @@ -71,16 +71,17 @@ void VoxelRenderData::updateBuffer() { assert(voxelData != nullptr); m_transparentCount = 0; - int i = 0; // counts from front, opaque voxels - int j = m_bufferSize - 1; // counts from back, transparent voxels + int opaqueCursor = 0; // counts from front, opaque voxels + int transparentCursor = m_bufferSize - 1; // counts from back, transparent voxels for (auto& pair : m_voxel) { Voxel *voxel = pair.second; assert(voxel != nullptr); uint32_t color = voxel->visuals().color(); + VoxelData data = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(color), voxel->visuals().emissiveness() }; if ((color & 0x000000FF) == 0xFF) { - voxelData[i++] = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(voxel->visuals().color()), voxel->visuals().emissiveness() }; + voxelData[opaqueCursor++] = data; } else { - voxelData[j--] = VoxelData{ glm::vec3(voxel->gridCell()), ColorHelper::flipColorForGPU(voxel->visuals().color()), voxel->visuals().emissiveness() }; + voxelData[transparentCursor--] = data; m_transparentCount++; } } diff --git a/src/voxeleffect/voxelparticleengine.cpp b/src/voxeleffect/voxelparticleengine.cpp index 92636daa..0f10d638 100644 --- a/src/voxeleffect/voxelparticleengine.cpp +++ b/src/voxeleffect/voxelparticleengine.cpp @@ -38,6 +38,6 @@ void VoxelParticleEngine::draw(const Camera& camera, bool transparentPass) { if (transparentPass) { m_transparentEngine->draw(camera, true); } else { - m_transparentEngine->draw(camera, false); + m_opaqueEngine->draw(camera, false); } } \ No newline at end of file From f62c540c4227c06b41ad8ed31e40e6cab21bb7ae Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 10 May 2014 14:17:49 +0200 Subject: [PATCH 27/34] Some shader documentation --- data/shader/postprocessing/combine.frag | 24 +++++++++++++++------- data/shader/voxelcluster/voxelcluster.vert | 1 + 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index d2d47767..2bb82bbe 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -12,17 +12,27 @@ in vec2 v_uv; layout(location=0) out vec4 fragColor; void main() { + // Implements Weighted Average + // see http://www.slideshare.net/acbess/order-independent-transparency-presentation slide 27 + // and http://jcgt.org/published/0002/02/09/paper.pdf p 127 + vec4 opaque = texture(color, v_uv) + texture(bloom, v_uv); vec4 accumulated = texture(transparencyAcc, v_uv); - accumulated.a = texture(transparencyCnt, v_uv).z; // Why is Acc.a always 1?! - uint currentN = uint(texture(transparencyCnt, v_uv).x * 255); + // HACK: actually accumulated.a should be the accumulation of the a values + // It seems to always be 1, while using the count-buffer's z for the same purpose works + accumulated.a = texture(transparencyCnt, v_uv).z; + + uint nTransparentLayers = uint(texture(transparencyCnt, v_uv).x * 255); vec4 weightedAverage = vec4(0.0); - if (currentN > uint(0)) { - weightedAverage = vec4(accumulated.rgb / accumulated.a, accumulated.a / currentN); + // build the weighted average of the transparent colors, where the alpha value is the weight + if (nTransparentLayers > uint(0)) { + weightedAverage = vec4(accumulated.rgb / accumulated.a, accumulated.a / nTransparentLayers); } - weightedAverage.a = pow(1 - weightedAverage.a, currentN); - - fragColor = weightedAverage * (1 - weightedAverage.a) + opaque * weightedAverage.a; + + // blend the transparent average over the opaque surface + // the more transparent fragments there were, the fewer of the background is taken into account + weightedAverage.a = pow(1.0 - weightedAverage.a, nTransparentLayers); + fragColor = weightedAverage * (1.0 - weightedAverage.a) + opaque * weightedAverage.a; } \ No newline at end of file diff --git a/data/shader/voxelcluster/voxelcluster.vert b/data/shader/voxelcluster/voxelcluster.vert index a4c5370a..9e3b37b0 100644 --- a/data/shader/voxelcluster/voxelcluster.vert +++ b/data/shader/voxelcluster/voxelcluster.vert @@ -24,6 +24,7 @@ out vec3 f_modelposition; void main() { + // to avoid z-fighting, minimally shrink all cubes gl_Position = viewProjection * model * (vec4(v_position + v_vertex * 0.999, 1.0)); f_normal = (model * vec4(v_normal, 0.0)).xyz; From 510b04aaeb9f177db6559e46a762bfbb8698ce89 Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 10 May 2014 14:24:08 +0200 Subject: [PATCH 28/34] Add bloom last --- data/shader/postprocessing/combine.frag | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index 2bb82bbe..6e8dd0dc 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -16,7 +16,7 @@ void main() { // see http://www.slideshare.net/acbess/order-independent-transparency-presentation slide 27 // and http://jcgt.org/published/0002/02/09/paper.pdf p 127 - vec4 opaque = texture(color, v_uv) + texture(bloom, v_uv); + vec4 opaque = texture(color, v_uv); vec4 accumulated = texture(transparencyAcc, v_uv); // HACK: actually accumulated.a should be the accumulation of the a values // It seems to always be 1, while using the count-buffer's z for the same purpose works @@ -32,7 +32,8 @@ void main() { // blend the transparent average over the opaque surface // the more transparent fragments there were, the fewer of the background is taken into account + // finally add the bloom on top. Note the bloom of obscured opaque surfaces will "shine through" entirely weightedAverage.a = pow(1.0 - weightedAverage.a, nTransparentLayers); - fragColor = weightedAverage * (1.0 - weightedAverage.a) + opaque * weightedAverage.a; + fragColor = weightedAverage * (1.0 - weightedAverage.a) + opaque * weightedAverage.a + texture(bloom, v_uv); } \ No newline at end of file From cc48cd48c01f23055135e6090d76fddbe5b6525e Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 10 May 2014 14:25:14 +0200 Subject: [PATCH 29/34] remove drawGameAlpha development leftovers --- src/gamestate/gameplay/gameplayscene.cpp | 1 - src/gamestate/gameplay/gameplayscene.h | 1 - 2 files changed, 2 deletions(-) diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index cc5ec1a1..1883e706 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -72,7 +72,6 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, glBlendFunc(GL_ONE, GL_ONE); CheckGLError(); drawGame(camera, true); - //drawGameAlpha(camera); glEnable(GL_CULL_FACE); CheckGLError(); glDepthMask(GL_TRUE); diff --git a/src/gamestate/gameplay/gameplayscene.h b/src/gamestate/gameplay/gameplayscene.h index 81de20a6..e308bb47 100644 --- a/src/gamestate/gameplay/gameplayscene.h +++ b/src/gamestate/gameplay/gameplayscene.h @@ -51,6 +51,5 @@ class GamePlayScene: public Scene { void drawGame(const Camera& camera, bool transparentPass) const; - void drawGameAlpha(const Camera& camera) const; }; From f4e319e1a4695ccedcec43c5f25059822ad59adc Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 10 May 2014 14:55:03 +0200 Subject: [PATCH 30/34] switch gameplayscene to glow::State --- src/gamestate/gameplay/gameplayscene.cpp | 29 ++++++++++-------------- src/gamestate/gameplay/gameplayscene.h | 4 ++++ src/voxeleffect/voxelparticleengine.cpp | 2 +- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/gamestate/gameplay/gameplayscene.cpp b/src/gamestate/gameplay/gameplayscene.cpp index 1883e706..f820a123 100644 --- a/src/gamestate/gameplay/gameplayscene.cpp +++ b/src/gamestate/gameplay/gameplayscene.cpp @@ -1,6 +1,7 @@ #include "gameplayscene.h" #include "glow/FrameBufferObject.h" +#include "glow/State.h" #include "camera/camera.h" #include "camera/camerahead.h" @@ -41,7 +42,8 @@ GamePlayScene::GamePlayScene(GamePlay& gamePlay): m_worldTreeRenderer(new WorldTreeRenderer()), m_framebuffer(nullptr), m_currentOutputBuffer(0), - m_defaultLightDir("vfx.lightdir") + m_defaultLightDir("vfx.lightdir"), + m_glState(new glow::State()) { m_renderPipeline->add(m_starField, 0); } @@ -63,24 +65,17 @@ void GamePlayScene::draw(const Camera& camera, glow::FrameBufferObject* target, // the shaders [render 0 (added) =>] nothing to the normalZ buffer, but it must be listed here so the same shaders can be used for the opaque and transparent pass m_framebuffer->setDrawBuffers({ BufferNames::TransparencyAccumulation, BufferNames::NormalZ, BufferNames::Emissisiveness, BufferNames::TransparencyCount }); - glDisable(GL_CULL_FACE); - CheckGLError(); - glDepthMask(GL_FALSE); - CheckGLError(); - glEnable(GL_BLEND); - CheckGLError(); - glBlendFunc(GL_ONE, GL_ONE); - CheckGLError(); + m_glState->disable(GL_CULL_FACE); + m_glState->depthMask(GL_FALSE); + m_glState->enable(GL_BLEND); + m_glState->blendFunc(GL_ONE, GL_ONE); drawGame(camera, true); - glEnable(GL_CULL_FACE); - CheckGLError(); - glDepthMask(GL_TRUE); - CheckGLError(); - glDisable(GL_BLEND); - CheckGLError(); - glDisable(GL_DEPTH_TEST); - CheckGLError(); + m_glState->disable(GL_BLEND); + m_glState->depthMask(GL_TRUE); + m_glState->enable(GL_CULL_FACE); + // Apply renderpipeline + //m_glState->disable(GL_DEPTH_TEST); RenderMetaData metadata(camera, side); m_renderPipeline->apply(*m_framebuffer, metadata); diff --git a/src/gamestate/gameplay/gameplayscene.h b/src/gamestate/gameplay/gameplayscene.h index e308bb47..ebe4bf1c 100644 --- a/src/gamestate/gameplay/gameplayscene.h +++ b/src/gamestate/gameplay/gameplayscene.h @@ -19,6 +19,9 @@ class RenderPipeline; class Player; class Starfield; class WorldTreeRenderer; +namespace glow { + class State; +} class GamePlayScene: public Scene { public: @@ -40,6 +43,7 @@ class GamePlayScene: public Scene { mutable std::unique_ptr m_framebuffer; std::shared_ptr m_voxelRenderer; std::shared_ptr m_starField; + mutable glow::ref_ptr m_glState; bool m_worldTreeRendererEnabled; std::unique_ptr m_worldTreeRenderer; diff --git a/src/voxeleffect/voxelparticleengine.cpp b/src/voxeleffect/voxelparticleengine.cpp index 0f10d638..1b169315 100644 --- a/src/voxeleffect/voxelparticleengine.cpp +++ b/src/voxeleffect/voxelparticleengine.cpp @@ -4,7 +4,7 @@ #include "voxelparticlesetup.h" -VoxelParticleEngine::VoxelParticleEngine() : +VoxelParticleEngine::VoxelParticleEngine(): m_opaqueEngine(new VoxelParticleEngineImpl()), m_transparentEngine(new VoxelParticleEngineImpl()) { From 46a677c9e8dc537ea044e6650590b752bfa42ee9 Mon Sep 17 00:00:00 2001 From: psieg Date: Sat, 10 May 2014 15:23:41 +0200 Subject: [PATCH 31/34] fix crucial voxel color not rendered --- data/voxels.ini | 2 +- src/voxel/specialvoxels/crucialvoxel.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/voxels.ini b/data/voxels.ini index cbd8c508..24267631 100644 --- a/data/voxels.ini +++ b/data/voxels.ini @@ -28,7 +28,7 @@ hp = 10 [crucial] prefix = 0xC00C -color = 0x00FFFFFF +color = 0x000000FF density = 5 hp = 100 diff --git a/src/voxel/specialvoxels/crucialvoxel.cpp b/src/voxel/specialvoxels/crucialvoxel.cpp index 72d8f9fd..6fc844c5 100644 --- a/src/voxel/specialvoxels/crucialvoxel.cpp +++ b/src/voxel/specialvoxels/crucialvoxel.cpp @@ -8,7 +8,7 @@ CrucialVoxel::CrucialVoxel(const glm::ivec3& gridCell, int index): - SpecialVoxel(gridCell, Property::get("voxels.crucial.color"), index, Property::get("voxels.crucial.density"), Property::get("voxels.crucial.hp")) + SpecialVoxel(gridCell, index, Property::get("voxels.crucial.color"), Property::get("voxels.crucial.density"), Property::get("voxels.crucial.hp")) { } From b134b9fccbadd2b8d7a2f0b9d509dab1117bbede Mon Sep 17 00:00:00 2001 From: mrzzzrm Date: Sun, 18 May 2014 18:18:23 +0200 Subject: [PATCH 32/34] made objects that aren't rendered beautifully when transparent opaque again --- src/scenarios/frozengamescenario.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scenarios/frozengamescenario.cpp b/src/scenarios/frozengamescenario.cpp index 0055b935..53e5c4c5 100644 --- a/src/scenarios/frozengamescenario.cpp +++ b/src/scenarios/frozengamescenario.cpp @@ -92,7 +92,7 @@ void FrozenGameScenario::populateWorld() { for(int x = 0; x < 20; x++) { for(int y = 0; y < 15; y++) { for(int z = 0; z < 3; z++) { - wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB4787830)); + wall->addVoxel(new Voxel(glm::ivec3(z, x, y), 0xB47878FF)); } } } @@ -112,7 +112,7 @@ void FrozenGameScenario::populateWorld() { glm::vec3 cell(x, y, z); if(glm::length(cell - middle) < diameter/2) { - planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AA80)); + planet->addVoxel(new Voxel(glm::ivec3(x, y, z), 0x0055AAFF)); } } } From 4a1ab193aa65f6e46fb652c2f132530d0cf920c5 Mon Sep 17 00:00:00 2001 From: mrzzzrm Date: Sun, 18 May 2014 18:38:43 +0200 Subject: [PATCH 33/34] some formating --- data/shader/postprocessing/combine.frag | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/data/shader/postprocessing/combine.frag b/data/shader/postprocessing/combine.frag index 6e8dd0dc..7cdcac98 100644 --- a/data/shader/postprocessing/combine.frag +++ b/data/shader/postprocessing/combine.frag @@ -9,19 +9,20 @@ uniform sampler2D transparencyCnt; in vec2 v_uv; -layout(location=0) out vec4 fragColor; +layout(location = 0) out vec4 fragColor; + +// Implements Weighted Average +// see http://www.slideshare.net/acbess/order-independent-transparency-presentation slide 27 +// and http://jcgt.org/published/0002/02/09/paper.pdf p 127 void main() { - // Implements Weighted Average - // see http://www.slideshare.net/acbess/order-independent-transparency-presentation slide 27 - // and http://jcgt.org/published/0002/02/09/paper.pdf p 127 - vec4 opaque = texture(color, v_uv); vec4 accumulated = texture(transparencyAcc, v_uv); + // HACK: actually accumulated.a should be the accumulation of the a values // It seems to always be 1, while using the count-buffer's z for the same purpose works accumulated.a = texture(transparencyCnt, v_uv).z; - + uint nTransparentLayers = uint(texture(transparencyCnt, v_uv).x * 255); vec4 weightedAverage = vec4(0.0); @@ -29,11 +30,14 @@ void main() { if (nTransparentLayers > uint(0)) { weightedAverage = vec4(accumulated.rgb / accumulated.a, accumulated.a / nTransparentLayers); } - + // blend the transparent average over the opaque surface // the more transparent fragments there were, the fewer of the background is taken into account // finally add the bloom on top. Note the bloom of obscured opaque surfaces will "shine through" entirely weightedAverage.a = pow(1.0 - weightedAverage.a, nTransparentLayers); - fragColor = weightedAverage * (1.0 - weightedAverage.a) + opaque * weightedAverage.a + texture(bloom, v_uv); -} \ No newline at end of file + fragColor = weightedAverage * (1.0 - weightedAverage.a) + + opaque * weightedAverage.a + + texture(bloom, v_uv); +} + From 7bacd1d4c8d4ce325d480d2c7c037a225bf2759a Mon Sep 17 00:00:00 2001 From: psieg Date: Sun, 18 May 2014 19:54:10 +0200 Subject: [PATCH 34/34] Avoid if in fragment shader --- data/shader/voxelcluster/voxelcluster.frag | 6 +----- src/utils/colorhelper.h | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/data/shader/voxelcluster/voxelcluster.frag b/data/shader/voxelcluster/voxelcluster.frag index 82ce224e..88ea3bec 100644 --- a/data/shader/voxelcluster/voxelcluster.frag +++ b/data/shader/voxelcluster/voxelcluster.frag @@ -23,11 +23,7 @@ void main() { vec3 rgbColor = voxelFragmentColor(f_color.rgb, f_emissiveness, f_normal, f_modelposition); fragColor = vec4(rgbColor * f_color.a, f_color.a); emissiveness = voxelFragmentEmissiveness(f_color.rgb, f_emissiveness); - if(transparentPass) { - normalz = vec4(0.0); - } else { - normalz = voxelFragmenNormalZ(f_normal); - } + normalz = (1 - float(transparentPass)) * voxelFragmenNormalZ(f_normal); count = vec4(1.0/255.0, 0.0, f_color.a, 1.0); } diff --git a/src/utils/colorhelper.h b/src/utils/colorhelper.h index d1418f15..2693634b 100644 --- a/src/utils/colorhelper.h +++ b/src/utils/colorhelper.h @@ -3,7 +3,6 @@ #include - class ColorHelper { public: // Flips bytes from human readable format to OpenGL format