From 112cf26baddd64a03379fa04213d9c10760943b0 Mon Sep 17 00:00:00 2001 From: austin Date: Fri, 20 Sep 2024 16:56:48 -0400 Subject: [PATCH] particle coloration work --- assets/Data/entity/creatures/human.json | 1 + assets/Data/entity/creatures/skeleton.json | 1 + assets/Data/entity/foliage.json | 18 ------------------ assets/Data/entity/objects/game_objects.json | 6 +++--- assets/Shaders/entities/particle/particle.fs | 7 ++++--- assets/Shaders/entities/particle/particle.vs | 13 ++++++------- assets/Textures/particles/flame_05.png | Bin 0 -> 13395 bytes buildNumber.properties | 4 ++-- .../client/foliagemanager/FoliageCell.java | 2 +- .../client/particle/ClientParticleTree.java | 4 ++-- 10 files changed, 20 insertions(+), 36 deletions(-) create mode 100644 assets/Textures/particles/flame_05.png diff --git a/assets/Data/entity/creatures/human.json b/assets/Data/entity/creatures/human.json index 2a5e3839..474ae58d 100644 --- a/assets/Data/entity/creatures/human.json +++ b/assets/Data/entity/creatures/human.json @@ -371,6 +371,7 @@ "dimension1" : 0.2, "dimension2" : 1.6, "dimension3" : 0.2, + "linearFriction": 0.001, "mass": 0.3, "rotX": 0, "rotY": 0, diff --git a/assets/Data/entity/creatures/skeleton.json b/assets/Data/entity/creatures/skeleton.json index 2dbda9e8..80e2e6b7 100644 --- a/assets/Data/entity/creatures/skeleton.json +++ b/assets/Data/entity/creatures/skeleton.json @@ -255,6 +255,7 @@ "dimension1" : 0.2, "dimension2" : 1.6, "dimension3" : 0.2, + "linearFriction": 0.001, "mass": 0.3, "rotX": 0, "rotY": 0, diff --git a/assets/Data/entity/foliage.json b/assets/Data/entity/foliage.json index 3503f705..ae28a450 100644 --- a/assets/Data/entity/foliage.json +++ b/assets/Data/entity/foliage.json @@ -1,23 +1,5 @@ { "foliageList" : [ - { - "id" : "FallOak1", - "tokens" : [ - "BLENDER_ROTATION" - ], - "physicsObjects" : [ - { - "type" : "CYLINDER", - "dimension1" : 0.1, - "dimension2" : 0.45, - "dimension3" : 0.1, - "offsetX" : 0, - "offsetY" : 0.45, - "offsetZ" : 0 - } - ], - "modelPath" : "Models/falloak1.fbx" - }, { "id" : "Green Grass", "tokens" : [ diff --git a/assets/Data/entity/objects/game_objects.json b/assets/Data/entity/objects/game_objects.json index 4e3ce895..76a619b2 100644 --- a/assets/Data/entity/objects/game_objects.json +++ b/assets/Data/entity/objects/game_objects.json @@ -11,7 +11,7 @@ { "id" : "particleEmitterTest", "particleEmitter": { - "maxLife": 40, + "maxLife": 20, "lifeCurrent": 0, "particleVelocity": { "x": 0.0, @@ -19,14 +19,14 @@ "z": 0.0 }, "acceleration": -0.01, - "texture": "blood1.png", + "texture": "flame_05.png", "size": 0.3, "color": { "x": 0.5, "y": 0.5, "z": 0.5 }, - "frequency": 1 + "frequency": 2 }, "tokens": [ ] diff --git a/assets/Shaders/entities/particle/particle.fs b/assets/Shaders/entities/particle/particle.fs index cbc97b17..f02dab25 100644 --- a/assets/Shaders/entities/particle/particle.fs +++ b/assets/Shaders/entities/particle/particle.fs @@ -77,7 +77,7 @@ in vec3 ViewFragPos; in vec3 Normal; in vec2 TexCoord; in vec4 FragPosLightSpace; -in vec4 color; +in vec4 instanceColor; uniform vec3 viewPos; @@ -120,7 +120,7 @@ void main(){ //get color of base texture // vec3 textureColor = vec3((norm.x + 1) / 2.0, norm.y, 1.0 - (norm.x + 1) / 2.0); - vec4 textureColor = texture(material.diffuse,TexCoord); + vec4 textureColor = texture(material.diffuse,TexCoord) * instanceColor; // vec3 textureColor = vec3(0.17647,0.4,0.09411);//texture(material.diffuse, TexCoord).rgb; //shadow @@ -150,11 +150,12 @@ void main(){ // } //calculate weight function - float weight = clamp(pow(min(1.0, finalColor.a * 10.0) + 0.01, 3.0) * 1e8 * + float weight = clamp(pow(min(1.0, finalColor.a * 10.0) + 0.01, 3.0) * 1e3 * pow(1.0 - gl_FragCoord.z * 0.9, 3.0), 1e-2, 3e3); //emit colors accum = vec4(finalColor.rgb * finalColor.a, finalColor.a) * weight; + // accum = finalColor * weight; reveal = finalColor.a; } diff --git a/assets/Shaders/entities/particle/particle.vs b/assets/Shaders/entities/particle/particle.vs index 1db9db09..2beafcb6 100644 --- a/assets/Shaders/entities/particle/particle.vs +++ b/assets/Shaders/entities/particle/particle.vs @@ -40,17 +40,15 @@ out vec3 FragPos; out vec3 ViewFragPos; out vec2 TexCoord; out vec4 FragPosLightSpace; -out vec4 color; +out vec4 instanceColor; void main() { + ParticleData currentParticle = particleData[gl_InstanceID]; - ParticleData currentData = particleData[gl_InstanceID]; - - mat4 model = currentData.model; - color = currentData.color; + mat4 model = currentParticle.model; //normalize posiiton and normal vec4 FinalVertex = vec4(aPos, 1.0); @@ -67,10 +65,11 @@ void main() { Normal = mat3(transpose(inverse(model))) * aNormal; //offset based on data stored in particle data - TexCoord = (aTex * currentData.texture.xy) + currentData.texture.zw; + TexCoord = (aTex * currentParticle.texture.xy) + currentParticle.texture.zw; + instanceColor = currentParticle.color; - //shadow map stuff + //shadow map stuff FragPosLightSpace = lightSpaceMatrix * vec4(FragPos, 1.0); diff --git a/assets/Textures/particles/flame_05.png b/assets/Textures/particles/flame_05.png new file mode 100644 index 0000000000000000000000000000000000000000..e221498e14d97323488a4654c2d5a57125260ec9 GIT binary patch literal 13395 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 literal 0 HcmV?d00001 diff --git a/buildNumber.properties b/buildNumber.properties index ee41aa98..e90e541a 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Thu Sep 19 23:04:32 EDT 2024 -buildNumber=355 +#Fri Sep 20 15:37:40 EDT 2024 +buildNumber=359 diff --git a/src/main/java/electrosphere/client/foliagemanager/FoliageCell.java b/src/main/java/electrosphere/client/foliagemanager/FoliageCell.java index f3a34bf5..2ee01274 100644 --- a/src/main/java/electrosphere/client/foliagemanager/FoliageCell.java +++ b/src/main/java/electrosphere/client/foliagemanager/FoliageCell.java @@ -216,7 +216,7 @@ public class FoliageCell { } List foliageTypesSupported = Globals.gameConfigCurrent.getVoxelData().getTypeFromId(data.getType(voxelPosition)).getAmbientFoliage(); boolean airAbove = data.getType(voxelPosition.x,voxelPosition.y+1,voxelPosition.z) == 0; - if(foliageTypesSupported != null && airAbove && scale < 3){ + if(foliageTypesSupported != null && foliageTypesSupported.size() > 0 && airAbove && scale < 3){ shouldGenerate = true; } if(shouldGenerate){ diff --git a/src/main/java/electrosphere/entity/state/client/particle/ClientParticleTree.java b/src/main/java/electrosphere/entity/state/client/particle/ClientParticleTree.java index bf520b2a..d2c35c9e 100644 --- a/src/main/java/electrosphere/entity/state/client/particle/ClientParticleTree.java +++ b/src/main/java/electrosphere/entity/state/client/particle/ClientParticleTree.java @@ -70,7 +70,7 @@ public class ClientParticleTree implements BehaviorTree { this.acceleration = particleData.getAcceleration(); this.hasLife = particleData.getMaxLife() != null; this.lifeCurrent = maxLife; - this.color = new Vector3d(new Random().nextFloat(),new Random().nextFloat(),new Random().nextFloat()); + this.color = new Vector3d(new Random().nextFloat(),new Random().nextFloat(),0); } public int getMaxLife() { @@ -130,7 +130,7 @@ public class ClientParticleTree implements BehaviorTree { new Quaternionf(rotation), scale )); - instancedActor.setAttribute(Globals.particleService.getColorAttrib(), new Vector4f((float)this.color.x,(float)this.color.y,(float)this.color.z,1.0f)); + instancedActor.setAttribute(Globals.particleService.getColorAttrib(), new Vector4f((float)this.color.y,(float)this.color.z,1.0f,(float)this.color.x)); //when written to buffer, will be written in order w, x, y, z //but gpu will fetch in order x, y, z, w