Add ant presence texture for future spatial neighbor queries
This commit is contained in:
parent
bdf42a3176
commit
862cbfc3b7
3 changed files with 25 additions and 0 deletions
|
|
@ -79,6 +79,17 @@ export default class Renderer {
|
|||
minFilter: THREE.NearestFilter,
|
||||
},
|
||||
),
|
||||
antsPresenceRenderTarget: new THREE.WebGLRenderTarget(
|
||||
Config.worldSize,
|
||||
Config.worldSize,
|
||||
{
|
||||
format: THREE.RGBAFormat,
|
||||
type: THREE.FloatType,
|
||||
depthBuffer: false,
|
||||
magFilter: THREE.NearestFilter,
|
||||
minFilter: THREE.NearestFilter,
|
||||
},
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -109,6 +120,9 @@ export default class Renderer {
|
|||
this.resources.worldRenderTarget.texture;
|
||||
this.renderer.render(scenes.worldBlur, scenes.worldBlur.camera);
|
||||
|
||||
this.renderer.setRenderTarget(this.resources.antsPresenceRenderTarget);
|
||||
this.renderer.clear();
|
||||
|
||||
this.setViewportFromRT(antsComputeTarget);
|
||||
this.renderer.setRenderTarget(antsComputeTarget);
|
||||
scenes.ants.material.uniforms.tLastState.value =
|
||||
|
|
@ -117,6 +131,8 @@ export default class Renderer {
|
|||
antsComputeSource.textures[1];
|
||||
scenes.ants.material.uniforms.tWorld.value =
|
||||
this.resources.worldBlurredRenderTarget.texture;
|
||||
scenes.ants.material.uniforms.tPresence.value =
|
||||
this.resources.antsPresenceRenderTarget.texture;
|
||||
this.renderer.render(scenes.ants, scenes.ants.camera);
|
||||
|
||||
this.setViewportFromRT(this.resources.antsDiscreteRenderTarget);
|
||||
|
|
@ -266,6 +282,13 @@ export default class Renderer {
|
|||
this.renderer.setRenderTarget(this.resources.antsDiscreteRenderTarget);
|
||||
this.renderer.clear();
|
||||
|
||||
this.resources.antsPresenceRenderTarget.setSize(
|
||||
Config.worldSize,
|
||||
Config.worldSize,
|
||||
);
|
||||
this.renderer.setRenderTarget(this.resources.antsPresenceRenderTarget);
|
||||
this.renderer.clear();
|
||||
|
||||
for (const scene of Object.values(scenes)) {
|
||||
scene.recompileMaterials();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ export default class AntsComputeScene extends AbstractScene {
|
|||
tLastState: { value: null },
|
||||
tLastExtState: { value: null },
|
||||
tWorld: { value: null },
|
||||
tPresence: { value: null },
|
||||
},
|
||||
vertexShader,
|
||||
fragmentShader,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ uniform float uTime;
|
|||
uniform sampler2D tLastState;
|
||||
uniform sampler2D tLastExtState;
|
||||
uniform sampler2D tWorld;
|
||||
uniform sampler2D tPresence;
|
||||
|
||||
const float sampleDistance = 20.;
|
||||
const float cellSize = 1. / WORLD_SIZE;
|
||||
|
|
|
|||
Loading…
Reference in a new issue