mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2024-12-26 06:57:02 +01:00
Breaking bright
- Fix crumbling having an incorrect draw buffer bound, causing it to appear too bright on indirect
This commit is contained in:
parent
3b7f9c7770
commit
7148ff3f31
3 changed files with 6 additions and 11 deletions
|
@ -109,11 +109,9 @@ public class IndirectBuffers {
|
|||
GlBufferType.DRAW_INDIRECT_BUFFER.bind(draw.handle());
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind all buffers except the draw command buffer.
|
||||
*/
|
||||
public void bindForCrumbling() {
|
||||
multiBind(1, 4);
|
||||
// All we need is the instance buffer. Crumbling uses its own draw buffer.
|
||||
multiBind(BufferBindings.INSTANCE, 1);
|
||||
}
|
||||
|
||||
private void multiBind(int base, int count) {
|
||||
|
|
|
@ -2,7 +2,6 @@ package dev.engine_room.flywheel.backend.engine.indirect;
|
|||
|
||||
import static org.lwjgl.opengl.GL11.GL_TRIANGLES;
|
||||
import static org.lwjgl.opengl.GL11.GL_UNSIGNED_INT;
|
||||
import static org.lwjgl.opengl.GL30.glUniform1ui;
|
||||
import static org.lwjgl.opengl.GL42.GL_COMMAND_BARRIER_BIT;
|
||||
import static org.lwjgl.opengl.GL42.glMemoryBarrier;
|
||||
import static org.lwjgl.opengl.GL43.glDispatchCompute;
|
||||
|
@ -215,8 +214,8 @@ public class IndirectCullingGroup<I extends Instance> {
|
|||
}
|
||||
}
|
||||
|
||||
public void bindWithContextShader(ContextShader override, Material material) {
|
||||
var program = programs.getIndirectProgram(instanceType, override, material);
|
||||
public void bindForCrumbling(Material material) {
|
||||
var program = programs.getIndirectProgram(instanceType, ContextShader.CRUMBLING, material);
|
||||
|
||||
program.bind();
|
||||
|
||||
|
@ -224,8 +223,7 @@ public class IndirectCullingGroup<I extends Instance> {
|
|||
|
||||
drawBarrier();
|
||||
|
||||
var flwBaseDraw = program.getUniformLocation("_flw_baseDraw");
|
||||
glUniform1ui(flwBaseDraw, 0);
|
||||
program.setUInt("_flw_baseDraw", 0);
|
||||
}
|
||||
|
||||
private void drawBarrier() {
|
||||
|
|
|
@ -17,7 +17,6 @@ import dev.engine_room.flywheel.api.instance.Instance;
|
|||
import dev.engine_room.flywheel.api.instance.InstanceType;
|
||||
import dev.engine_room.flywheel.api.visualization.VisualType;
|
||||
import dev.engine_room.flywheel.backend.Samplers;
|
||||
import dev.engine_room.flywheel.backend.compile.ContextShader;
|
||||
import dev.engine_room.flywheel.backend.compile.IndirectPrograms;
|
||||
import dev.engine_room.flywheel.backend.engine.AbstractInstancer;
|
||||
import dev.engine_room.flywheel.backend.engine.CommonCrumbling;
|
||||
|
@ -235,7 +234,7 @@ public class IndirectDrawManager extends DrawManager<IndirectInstancer<?>> {
|
|||
// Transform the material to be suited for crumbling.
|
||||
CommonCrumbling.applyCrumblingProperties(crumblingMaterial, draw.material());
|
||||
|
||||
cullingGroup.bindWithContextShader(ContextShader.CRUMBLING, crumblingMaterial);
|
||||
cullingGroup.bindForCrumbling(crumblingMaterial);
|
||||
|
||||
MaterialRenderState.setup(crumblingMaterial);
|
||||
|
||||
|
|
Loading…
Reference in a new issue