Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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!

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

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.

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.

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

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.