Jump to content

What is better models or drawing with tesselators?


Recommended Posts

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!

Link to comment
Share on other sites



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).



Link to comment
Share on other sites

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

                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

                        if (this.childModels != null) then
                            for (i = 0; i < this.childModels.size(); ++i) do
... 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.

Link to comment
Share on other sites

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.

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.

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.


  • Create New...

Important Information

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