Jump to content

[1.15.2] [SOLVED] 3 Dimensional Particle Rendering


Papa_Prime

Recommended Posts

I am experiencing an issue with rendering the custom particle. Everything is set up properly(I have tested it with the vanilla implementation) and issues only occur when I begin to use custom rendering.

@Override
    public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) {
        RenderSystem.pushMatrix();

        RenderSystem.enableDepthTest();
        RenderSystem.disableTexture();

        BufferBuilder buf = Tessellator.getInstance().getBuffer();
        buf.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);

        IVertexBuilder buff = buf.getVertexBuilder();
        
        int j = this.getBrightnessForRender(partialTicks);
        Vec3d projectedView = renderInfo.getProjectedView();
        RenderSystem.translated(-projectedView.x, -projectedView.y, -projectedView.z);

        injectPreBuffer(buff);

        //TOP
        buff.pos(1, 1, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 1, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 1, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 1, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();

        //BOTOM
        buff.pos(1, 0, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 0, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 0, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 0, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();

        //Side1
        buff.pos(1, 1, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 1, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 0, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 0, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();

        //Side2
        buff.pos(1, 1, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 1, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 0, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 0, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();

        //Side3
        buff.pos(0, 1, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 0, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 0, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(0, 1, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();

        //Side4
        buff.pos(1, 1, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 0, 1).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 0, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();
        buff.pos(1, 1, 0).tex(minU, minV).color(r, g, b, a).lightmap(j).endVertex();

        injectPostBuffer(buff);

        Tessellator.getInstance().draw();

        RenderSystem.enableTexture();
        RenderSystem.popAttributes();
        RenderSystem.popMatrix();

    }

    @Override
    public IParticleRenderType getRenderType() {
        return IParticleRenderType.CUSTOM;
    }

This rendering code does not produce errors but it doesn't render anything either. 

If I remove this:

Tesselator.getInstance().draw();

The game crashes with:

Description: Rendering Particle

java.lang.IllegalStateException: Already building!
	at net.minecraft.client.renderer.BufferBuilder.begin(BufferBuilder.java:176) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.papaprime.gaze.client.fx.CubicParticle.renderParticle(CubicParticle.java:50) ~[main/:?] {re:classloading}
	at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:330) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1084) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:612) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:434) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:962) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:559) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:177) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_251] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_251] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_251] {}
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_251] {}
	at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0.jar:?] {}
	at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at net.minecraft.client.renderer.BufferBuilder.begin(BufferBuilder.java:176)
	at net.papaprime.gaze.client.fx.CubicParticle.renderParticle(CubicParticle.java:50)

-- Particle being rendered --
Details:
	Particle: VoidFX, Pos (148.37379868704417,140.37968291644503,154.80088228616063), RGBA (1.0,1.0,1.0,1.0), Age 5
	Particle Type: CUSTOM
Stacktrace:
	at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:330)
	at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1084)
	at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:612)

The debug loop does not have any other interesting details.

If I use the vertex buffer provided in the method and slight adjustments to my code, which also means that I do not get the buffer builder instance, I get the following crash:

Description: Rendering Particle

java.lang.IllegalStateException: BufferBuilder not started
	at net.minecraft.client.renderer.BufferBuilder.getCurrentElement(BufferBuilder.java:322) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at com.mojang.blaze3d.vertex.IVertexConsumer.pos(IVertexConsumer.java:21) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.papaprime.gaze.client.fx.CubicParticle.renderParticle(CubicParticle.java:47) ~[main/:?] {re:classloading}
	at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:330) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1084) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:612) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:434) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:962) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:559) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:177) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_251] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_251] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_251] {}
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_251] {}
	at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0.jar:?] {}
	at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.1.44_mapped_snapshot_20200225-1.15.1-recomp.jar:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at net.minecraft.client.renderer.BufferBuilder.getCurrentElement(BufferBuilder.java:322)
	at com.mojang.blaze3d.vertex.IVertexConsumer.pos(IVertexConsumer.java:21)
	at net.papaprime.gaze.client.fx.CubicParticle.renderParticle(CubicParticle.java:47)

-- Particle being rendered --
Details:
	Particle: VoidFX, Pos (134.74721086926692,93.8254443294199,107.66141755800653), RGBA (1.0,1.0,1.0,1.0), Age 6
	Particle Type: CUSTOM
Stacktrace:
	at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:330)
	at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1084)
	at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:612)

 

Edited by Papa_Prime
Solved
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.