Jump to content

WTD

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by WTD

  1. Oh i forgot that was there, that's just something i was messing around with, i removed it and it had no effect. Thanks for pointing out that oversight though.
  2. Hi all, I'm doing some custom rendering using the TickeEvent.RenderTickEvent event, and when the game is in fullscreen mode, i consistently get a lag spike every second. This doesn't happen when the game is not rendering using the full screen resolution. This makes me believe that it is something to do with the resolution that i render at with the custom render code. What i don't understand why it would spike every second and then run at a constant fps, until it then spikes again. I think it may have something to with memory management but i'm not sure. Here is the code: @SideOnly(Side.CLIENT) @SubscribeEvent public void onTick(TickEvent.RenderTickEvent event) { Minecraft mc = Minecraft.getMinecraft(); if(!mc.inGameHasFocus) return; if(mc.skipRenderWorld) return; //backup all rendering information Entity entityBackup = mc.getRenderViewEntity(); PortalRenderGlobal pgr = new PortalRenderGlobal(mc); GameSettings settings = mc.gameSettings; RenderGlobal renderBackup = mc.renderGlobal; int framebufferBackup = GL11.glGetInteger(GL_DRAW_FRAMEBUFFER_BINDING); int renderDistanceBackup = settings.renderDistanceChunks; //get the width and height to render at int width = mc.displayWidth; int height = mc.displayHeight;; //mc.renderGlobal = pgr; mc.setRenderViewEntity(entity); EntityRenderer entityRenderer = mc.entityRenderer; //bind a new framebuffer glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); //bind the texture to render to and set its parameters glBindTexture(GL_TEXTURE_2D, renderedTexture); glTexImage2D(GL_TEXTURE_2D, 0,GL_RGB, width, height, 0,GL_RGB, GL_UNSIGNED_BYTE, BufferUtils.createByteBuffer(width * height*3)); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); //bind the deptjh render buffer glBindRenderbuffer(GL_RENDERBUFFER, depthrenderbuffer); glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width, height); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthrenderbuffer); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, renderedTexture, 0); glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); glViewport(0,0,width,height); //render the world int fps = Math.min(30, settings.limitFramerate); entityRenderer.renderWorld(event.renderTickTime,0L); glBindFramebuffer(GL_FRAMEBUFFER, framebufferBackup); mc.renderGlobal = renderBackup; mc.setRenderViewEntity(entityBackup); } Where entity, frambuffer, renderedTexture and depthrenderbuffer are all global variables. Any help or advice would be appreciated.
  3. I have an idea for a mod for 1.12 and I've been looking into the logistics of it for a little while now, delving into the source code but I'm still struggling to quite understand how the game rendering works. I understand the basics, the server sends the chunk details to the client and then the client renders it, but I can't find where all of this happens in the code. If someone would be able to point me in the right direction and explain how and where the server sends the chunk information to the client and how the client renders that data, that would be very much appreciated. Formore context I wish to render locations remotely, I understand that mods like security craft already do this and the looking Glass API drives this, but it's not quite what I want to achieve; and unless I'm misinformed, it hadn't been updated for a long time now. Again any information is appreciated, thank you!
×
×
  • Create New...

Important Information

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