Merge branch 'WIP' into main
This commit is contained in:
commit
1e4dd8555d
30 changed files with 571 additions and 275 deletions
|
|
@ -75,7 +75,8 @@ export class UniformArrayAutoScalingProgram implements IProgram {
|
|||
return 0;
|
||||
}
|
||||
const uniformName = uniformNames[1];
|
||||
return uniforms[uniformName] ? uniforms[uniformName].length : 0;
|
||||
const scaler = d.objectCountScaler === undefined ? 1 : d.objectCountScaler;
|
||||
return uniforms[uniformName] ? scaler * uniforms[uniformName].length : 0;
|
||||
});
|
||||
|
||||
const closest = this.programs.find((p) => p.values.every((v, i) => v >= values[i]));
|
||||
|
|
@ -91,7 +92,11 @@ export class UniformArrayAutoScalingProgram implements IProgram {
|
|||
this.descriptors!.map((d, i) => {
|
||||
const difference = closest.values[i] - values[i];
|
||||
for (let i = 0; i < difference; i++) {
|
||||
d.empty.serializeToUniforms(uniforms, mat2d.create(), 0);
|
||||
d.empty.serializeToUniforms(
|
||||
uniforms,
|
||||
mat2d.fromTranslation(mat2d.create(), vec2.fromValues(-10000, -10000)),
|
||||
0
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -171,12 +176,12 @@ export class UniformArrayAutoScalingProgram implements IProgram {
|
|||
}(position, objectColor);
|
||||
|
||||
color = mix(
|
||||
objectColor / {paletteSize},
|
||||
color,
|
||||
objectColor / {paletteSize},
|
||||
color,
|
||||
${
|
||||
descriptors[i].sdf?.isInverted
|
||||
? `step(-distanceNdcPixelSize, -objectMinDistance)`
|
||||
: `step(1.0 * distanceNdcPixelSize, objectMinDistance)`
|
||||
: `step(distanceNdcPixelSize, objectMinDistance)`
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ export class RendererImplementation implements Renderer {
|
|||
palette: 1,
|
||||
|
||||
distanceNdcPixelSize: 2 / Math.max(...this.distanceFieldFrameBuffer.getSize()),
|
||||
shadingNdcPixelSize: 2 / Math.max(...this.distanceFieldFrameBuffer.getSize()),
|
||||
shadingNdcPixelSize: 2 / Math.max(...this.lightingFrameBuffer.getSize()),
|
||||
};
|
||||
|
||||
this.distancePass.render(this.uniformsProvider.getUniforms(common), ...this.textures);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ float getDistance(in vec2 target) {
|
|||
|
||||
float shadowTransparency(float startingDistance, float lightCenterDistance, vec2 direction) {
|
||||
float rayLength = startingDistance;
|
||||
for (int j = 0; j < SHADOW_TRACE_COUNT; j++) {
|
||||
for (int i = 0; i < SHADOW_TRACE_COUNT; i++) {
|
||||
rayLength += max(0.0, getDistance(uvCoordinates + direction * rayLength));
|
||||
}
|
||||
return min(1.0, pow(rayLength / lightCenterDistance, 0.3));
|
||||
|
|
@ -103,7 +103,7 @@ void main() {
|
|||
lightCenterDistance,
|
||||
direction
|
||||
);
|
||||
|
||||
|
||||
lightingInside += lightColorAtPosition;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue