Posted June 1, 20205 yr 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 June 1, 20205 yr by Papa_Prime Solved
June 1, 20205 yr Author Marking solved. silly mistake. I did not specify the positions of the particleand thus it spawned at the world origin 0,0,0 as expected from the vertex code
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.