1
\$\begingroup\$

When adding custom models to function as tile entity representations, what is a reasonable ceiling - based on performance - to maintain for individual models? Assume that the player will have the potential possibility to place as many of these as desired, but functionally it would also be reasonable to assume no more than 20 would have to be rendered at once.

If the answer has changed between significant versions of the game, it would be nice if that could be reflected

\$\endgroup\$
  • \$\begingroup\$ It heavily depends on many things. How strong is the usual player's computer, how much calculations does it have to do, etc. If the player can place infinitely many of it, then the answer is 0. \$\endgroup\$ – Bálint Apr 19 '17 at 9:54
  • \$\begingroup\$ @Bálint I know there are many factors, which is why I asked for a reasonable ceiling. I frankly do not know about the average user system or how 'heavy' minecraft is of itself. \$\endgroup\$ – Weckar E. Apr 19 '17 at 10:00
  • \$\begingroup\$ This sounds like a job for profiling. Make yourself a test model that's say just a soup of some number of cubes, then place as many as you can in you world before performance suffers. Then try a slightly lighter or slightly heavier model and repeat. Where you draw the line for what's an acceptable performance cost for the asset you're making is ultimately a judgement call you'll have to make for yourself. \$\endgroup\$ – DMGregory Apr 19 '17 at 13:30
  • \$\begingroup\$ @DMGregory Unfortunately in this case, my computer is a relative powerhouse. I therefore cannot reliably run such a test for a 'normal' system. \$\endgroup\$ – Weckar E. Apr 19 '17 at 22:04
  • \$\begingroup\$ Surely you have a friend or family member with an old junker you can use to get a low-end estimate too. ;) This does help highlight the problem with asking others to decide your polygon budgets for you - it's going to be so contingent on what hardware you choose to examine that identifying a "correct" answer is quite difficult. \$\endgroup\$ – DMGregory Apr 20 '17 at 3:05
1
\$\begingroup\$

Sooo...basically the answer is "a bunch, really" as long as you're talking a block model (that is, a model that's precomputed and cached per the 1.10 JSON model system or ISBRH in 1.7, although ISBRH is going to be slightly CPU heavier than a JSON or IBakedModel as ISBRH aren't cached the same way IBakedModels are, they are periodically recomputed).

Based on one user's experimentation with Menger Sponge models the limitation is more RAM based than CPU or GPU (that is: having to open and read a 1.3 MB file, cache it, as well as busing over the massive mesh to the GPU).

TileEntity models (TESR) are insanely heavy on the CPU and should just be avoided at all costs. If it doesn't animate, you don't need a TESR.

\$\endgroup\$
  • \$\begingroup\$ I had not even considered the version difference here (1.7.10). While not strictly animated, it is a stateful model. TESR seems almost unavoidable. \$\endgroup\$ – Weckar E. May 4 '17 at 14:45
  • \$\begingroup\$ You can use TEs and Blockstates just fine. block (including TE data) and blockstate. \$\endgroup\$ – Draco18s May 4 '17 at 15:02
  • \$\begingroup\$ Json models in 1.7.10? I feel like that warrants a new question all on its own. \$\endgroup\$ – Weckar E. May 4 '17 at 15:08
  • \$\begingroup\$ Oh you meant TEs in 1.7.10, I misunderstood. \$\endgroup\$ – Draco18s May 4 '17 at 15:09
  • \$\begingroup\$ No problem at all, I really do appreciate your answer. \$\endgroup\$ – Weckar E. May 4 '17 at 15:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.