3D-lowTexture-highpoly or PreRender3D(highTexture)-fewPoly?

3D-lowTexture-highpoly or PreRender3D(highTexture)-fewPoly?

I wonder how much we can push the poly count if we use a single material for every object.

I’m modeling an environment and all objects ( 2 human, 8 animals, 10 environment prop, and ground map ) are sharing the same material ( 128 x 128 pixel texture ). If i have them all on screen ( and duplicates ) will it be one draw call ?

Looking a mobile game as reference (archero):
It uses a pre rendered background, and the other map stuff are 3d.
I ask myself if using the entire map as 3d can be better/faster.

In my case I would be trading a single map ( 768x2048 ) for 4k tris.
But being able to create multiple variations of the the map without incresing the app size.
and what if we think that we need bigger maps later ?

As I write this i think the case is that they want use more memory usage in return to being able to focus in a good rendertime? I think that makes sense if theyr memory usage is low.

I went here wanting a simple answer and as i write i see that its a very complicated topic that changes game-by-game and we would make test with some devices to have an idea.

This post is turning into a mental conversation, so I will create the topic now :laughing:
I will be glad if anyone join the discussion, or point to link to a good reading.
I may add more info later.

I think best is to try and test it. I’ve applied similar rules on my latest game:

I used same material on some characters and also applied camera frustum culling to get rid of objects outside camera view. I was getting +2 more draw calls for each model I added to the scene because of shadows. There is an option for gpu instancing if we are talking about crowds :slight_smile: but I’m not sure if it’s implemented in CC 2.3.3 yet.

Can anyone say if there is gpu instancing ?

How i would go to ‘bake’ all static meshs together at gameStart ?

I think GPU instancing is not implemented yet in Cocos Creator but I’ve made a test to see how we can reduce draw calls and result amazed me :smiley:
Here is the video that I’ve recorded for this subject:

I applied 2 differens methods to see the effect. First I tried to merge all materials into single material/texture but kept models seperated. In second test I merged all meshes into single one also. That was incredible :smiley:

Someone has to make an extension to Cocos Creator to compile static objects into single mesh (or may be into several meshes). @slackmoehrle do you have any plans about that?

1 Like

@FocusCreative we can ask @jare to help answer.