Try to fix the ant problem
This commit is contained in:
parent
c8a07d0783
commit
81526052f2
4 changed files with 10 additions and 3 deletions
|
|
@ -47,6 +47,10 @@ export default class Renderer {
|
|||
|
||||
constructor(public canvas: HTMLCanvasElement) {
|
||||
this.renderer = new THREE.WebGLRenderer({ canvas });
|
||||
// clear alpha must be 0: UnsignedByte render targets (antsDiscreteRT) retain
|
||||
// the clear value in pixels not covered by instanced draws. alpha=1 produces
|
||||
// byte 255, which world.frag misinterprets as depositMatId=255.
|
||||
this.renderer.setClearColor(0x000000, 0);
|
||||
|
||||
this.initResources();
|
||||
|
||||
|
|
@ -181,6 +185,7 @@ export default class Renderer {
|
|||
);
|
||||
scenes.sandPhysics.material.uniforms.uFrame.value = this.frameCounter;
|
||||
this.renderer.render(scenes.sandPhysics, scenes.sandPhysics.camera);
|
||||
|
||||
this.frameCounter++;
|
||||
|
||||
this.setViewportFromRT(this.resources.worldBlurredRenderTarget);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ const BUILTIN_MATERIALS: Material[] = [
|
|||
name: "air",
|
||||
behavior: BEHAVIOR_GAS,
|
||||
density: 0,
|
||||
color: [0, 0, 0, 0],
|
||||
color: [0.53, 0.81, 0.92, 1.0],
|
||||
hardness: 0,
|
||||
angleOfRepose: 0,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ export default class ScreenScene extends AbstractScene {
|
|||
constructor(renderer: Renderer) {
|
||||
super(renderer);
|
||||
|
||||
const groundDefines = this.renderer.getCommonMaterialDefines();
|
||||
|
||||
const ground = new THREE.Mesh(
|
||||
new THREE.PlaneGeometry(1, 1),
|
||||
new THREE.ShaderMaterial({
|
||||
|
|
@ -70,7 +72,7 @@ export default class ScreenScene extends AbstractScene {
|
|||
},
|
||||
vertexShader: vertexShaderGround,
|
||||
fragmentShader: fragmentShaderGround,
|
||||
defines: this.renderer.getCommonMaterialDefines(),
|
||||
defines: groundDefines,
|
||||
glslVersion: THREE.GLSL3,
|
||||
}),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ void main() {
|
|||
|
||||
if (a == 0.) t = vec3(0);
|
||||
|
||||
vec3 color = mix(vec3(1, 1, 1), t, a * 0.7);
|
||||
vec3 color = mix(vec3(0.53, 0.81, 0.92), t, a * 0.7);
|
||||
|
||||
// non-air cells use material color as base, with pheromone tint
|
||||
if (materialId != MAT_AIR) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue