Rename species to generation
This commit is contained in:
parent
3414f38c3a
commit
f3f2547724
10 changed files with 31 additions and 31 deletions
|
|
@ -13,7 +13,7 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|||
return;
|
||||
}
|
||||
|
||||
if agents[id].species % 2 == 0 {
|
||||
if agents[id].generation % 2 == 0 {
|
||||
atomicAdd(&counters.evenGenerationAlive, 1);
|
||||
} else {
|
||||
atomicAdd(&counters.oddGenerationAlive, 1);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,6 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|||
}
|
||||
|
||||
if length(settings.center - agents[id].position) < settings.radius {
|
||||
agents[id].species = settings.nextGenerationId;
|
||||
agents[id].generation = settings.nextGenerationId;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
struct Agent {
|
||||
position: vec2<f32>,
|
||||
angle: f32,
|
||||
species: f32,
|
||||
generation: f32,
|
||||
}
|
||||
|
||||
@group(1) @binding(1) var<storage, read_write> agents: array<Agent>;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { vec2 } from 'gl-matrix';
|
|||
export interface Agent {
|
||||
position: vec2;
|
||||
angle: number;
|
||||
species: number;
|
||||
generation: number;
|
||||
}
|
||||
|
||||
export const AGENT_SIZE_IN_BYTES = 4 * Float32Array.BYTES_PER_ELEMENT;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|||
// even generation id -> red channel
|
||||
// odd generation id -> green channel
|
||||
|
||||
let isFromEvenGeneration = agent.species % 2 == 0;
|
||||
let isFromEvenGeneration = agent.generation % 2 == 0;
|
||||
|
||||
let trailForward = sense(agent.position, agent.angle, settings.sensorOffset, 0);
|
||||
let trailLeft = sense(agent.position, agent.angle, settings.sensorOffset, settings.sensorAngle);
|
||||
|
|
@ -81,18 +81,18 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|||
|
||||
if(isFromEvenGeneration) {
|
||||
if next.r < next.g {
|
||||
if agent.species == settings.nextGenerationId {
|
||||
// agent.species -= 1;
|
||||
if agent.generation == settings.nextGenerationId {
|
||||
// agent.generation -= 1;
|
||||
} else {
|
||||
agent.species += 1;
|
||||
agent.generation += 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if next.g < next.r {
|
||||
if agent.species == settings.nextGenerationId {
|
||||
// agent.species -= 1;
|
||||
if agent.generation == settings.nextGenerationId {
|
||||
// agent.generation -= 1;
|
||||
} else {
|
||||
agent.species += 1;
|
||||
agent.generation += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ export class RenderPipeline {
|
|||
|
||||
public setParameters({
|
||||
brushColor,
|
||||
speciesAColor,
|
||||
speciesBColor,
|
||||
evenGenerationColor,
|
||||
oddGenerationColor,
|
||||
clarity,
|
||||
}: RenderSettings) {
|
||||
this.device.queue.writeBuffer(
|
||||
|
|
@ -63,9 +63,9 @@ export class RenderPipeline {
|
|||
new Float32Array([
|
||||
...brushColor,
|
||||
0, //padding
|
||||
...speciesAColor,
|
||||
...evenGenerationColor,
|
||||
0, //padding
|
||||
...speciesBColor,
|
||||
...oddGenerationColor,
|
||||
clarity,
|
||||
])
|
||||
);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { vec3 } from 'gl-matrix';
|
|||
|
||||
export interface RenderSettings {
|
||||
brushColor: vec3;
|
||||
speciesAColor: vec3;
|
||||
speciesBColor: vec3;
|
||||
evenGenerationColor: vec3;
|
||||
oddGenerationColor: vec3;
|
||||
clarity: number;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
struct Settings {
|
||||
brushColor: vec3<f32>,
|
||||
speciesAColor: vec3<f32>,
|
||||
speciesBColor: vec3<f32>,
|
||||
evenGenerationColor: vec3<f32>,
|
||||
oddGenerationColor: vec3<f32>,
|
||||
clarity: f32,
|
||||
};
|
||||
|
||||
|
|
@ -16,12 +16,12 @@ fn fragment(@location(0) uv: vec2<f32>) -> @location(0) vec4<f32> {
|
|||
|
||||
let backgroundColor = vec3(0.9) + 0.075 * random.r;
|
||||
|
||||
let speciesAStrength = clamp(pow(traces.r, settings.clarity), 0, 1);
|
||||
let speciesBStrength = clamp(pow(traces.g, settings.clarity), 0, 1);
|
||||
let evenGenerationStrength = clamp(pow(traces.r, settings.clarity), 0, 1);
|
||||
let oddGenerationStrength = clamp(pow(traces.g, settings.clarity), 0, 1);
|
||||
let brushStrength = traces.a;
|
||||
|
||||
let agentColor = step(speciesAStrength, speciesBStrength) * settings.speciesBColor * speciesBStrength + step(speciesBStrength, speciesAStrength) * settings.speciesAColor * speciesAStrength;
|
||||
let agentStrength = speciesAStrength + speciesBStrength;
|
||||
let agentColor = step(evenGenerationStrength, oddGenerationStrength) * settings.oddGenerationColor * oddGenerationStrength + step(oddGenerationStrength, evenGenerationStrength) * settings.evenGenerationColor * evenGenerationStrength;
|
||||
let agentStrength = evenGenerationStrength + oddGenerationStrength;
|
||||
|
||||
let rgbColor = sqrt(
|
||||
mix(agentColor, settings.brushColor * brushStrength, clamp(brushStrength - agentStrength, 0, 1))
|
||||
|
|
|
|||
Loading…
Reference in a new issue