Posted April 29, 201411 yr I have a mod with many custom rendered blocks with models. I have noticed that when I have a lot of those blocks in one small area, they start to cause fps loss. I guessing tesselators are less resource intensive because you are not drawing the excess face of you block, but is it worth the trouble because my models are decently complex and it might be difficult to recreate them with tesselators. So which is the better of the two? Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!
April 29, 201411 yr Hi I would personally prefer models for anything more complicated than more than 2 or three cuboid components. The tessellator just becomes major head damage to do anything complicated with, especially if it has oblique lines or non-triangular/rectangular faces in it, and I suspect it wouldn't be much faster, assuming the model is rendering efficiently. Is your model in a IBSRH or a TileEntity? One of the reasons that vanilla blocks with the tessellator are so fast, is that they are compiled once into a render list (slow), and then just rendered from the render list each time (fast). TileEntities on the other hand do a custom re-render every single frame (slow). -TGG
April 29, 201411 yr I would prefer Tessellators over Models for tile entities (In fact, I'm trying to convert my TE-Models into tessellator renderers), since if you look at the render method within the ModelRenderer class (the class of a cube from the model), it's a bit heavy; here's a snippet of the render code: if (!this.isHidden) then if (this.showModel) then if (!this.compiled) then this.compileDisplayList(par1); GL11.glTranslatef(this.offsetX, this.offsetY, this.offsetZ); if (this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) then if (this.rotationPointX == 0.0F && this.rotationPointY == 0.0F && this.rotationPointZ == 0.0F) then GL11.glCallList(this.displayList); if (this.childModels != null) then for (i = 0; i < this.childModels.size(); ++i) do ((ModelRenderer)this.childModels.get(i)).render(par1); else ... etc. ... Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! | mah twitter This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.
May 2, 201411 yr I would say to start out with Models because they are easier. When you've mastered those, then I highly encourage ISBRH <-- they are truly my favorite Forge thing at the moment; they're powerful, simple, and very easy to make. But again, if you are trying to create complex shapes in the world, then it is highly difficult to hard code them with the Tessellator in an ISBRH if you are new or unskilled.
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.