Quels sont les avantages d'un mur en tant qu'avion ou boîte? Dois-je utiliser un avion avec un collisionneur de boîtes au lieu d'un collisionneur de mailles?
la source
Quels sont les avantages d'un mur en tant qu'avion ou boîte? Dois-je utiliser un avion avec un collisionneur de boîtes au lieu d'un collisionneur de mailles?
Il y aura deux ou trois choses différentes que vous devrez considérer.
Remarque: les avantages des optimisations décrites ci-dessous ne comptent vraiment qu'avec une tonne de murs. À ce stade, il pourrait être judicieux d'envisager une solution différente comme le partitionnement d'espace binaire (BSP) pour créer vos murs dans votre jeu. Cela rendrait vos niveaux hautement optimisés pour le rendu (s'ils sont conçus correctement) et pour la physique (car vous avez une très bonne définition de ce qui entre en collision et de ce qui ne le fait pas).
Une boîte va demander plus de rendu qu'un avion. Il a plus de sommets et de triangles, ce qui signifie que votre vertex shader et le rasterizer devront être exécutés sur plus de données. Par conséquent, n'utilisez une boîte que lorsque vous en avez besoin en termes de visibilité. Retirez les visages au besoin pour ce que le joueur devra voir.
Vous devriez toujours utiliser un BoxCollider
par opposition à un MeshCollider
quand vous le pouvez. MeshCollider
Les s doivent appliquer des collisions par face (ou comme coque convexe) du maillage et ralentir le lancer de rayons et la physique (mais c'est une quantité négligeable pour une seule boîte). Une autre chose avec, BoxColliders
c'est qu'il est beaucoup plus difficile pour le joueur de les traverser quand ils vont très vite. Même avec des collisions continues, si vous vous retrouvez toujours avec des choses en phase à travers les murs, vous pouvez toujoursBoxColliders
Si vous travaillez beaucoup plus rapidement avec des avions MeshColliders
(car vous n'avez pas besoin d'ajuster tous les BoxColliders
pour correspondre à leurs dimensions), il peut être judicieux de les utiliser uniquement si vous obtenez les performances souhaitées.
Développant un peu les points de "Coburn" :
Rendu : si vous rendez le mur uniquement comme un plan, le mur ne sera visible que d'un côté, car le plan (ou plus exactement ses faces) n'a qu'un seul côté rendu. Donc, si le joueur est capable de se déplacer autour du mur, vous aurez besoin de plusieurs avions pour couvrir tous les côtés, ce qui signifie que vous vous retrouvez avec une boîte de toute façon.
Physique : les collisionneurs à géométrie simple (sphères, boîtes, etc.) sont toujours plus rapides à calculer que les collisionneurs à maillage complet, car toutes les faces du maillage ne doivent pas être vérifiées individuellement. Au lieu de cela, des raycasts "simples" peuvent être utilisés ou des calculs de distance (par exemple la distance au centre de la sphère moins la taille de la sphère).
Pour les autres moteurs physiques qui ont un "collisionneur d'avion" séparé (ce qui n'est pas le cas pour Unity), il n'y en a pas de "meilleur". Un avion peut être légèrement plus rapide en termes de performances, mais vous pouvez alors rencontrer le problème des objets rapides qui le traversent sans réellement entrer en collision. Ensuite, vous vous retrouvez avec des collisionneurs plus épais (donc une boîte au lieu d'un avion) ou passez à la détection de collision continue (CCD), comme expliqué ici .
One more thing about Rendering: When you have your own shadow-mapping implementation, walls made out of boxes can be superior to walls made out of planes due to peter-panning that can appear with planes.
Here's an explanation of the symptom:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#peter-panning
la source
I was always told that if u are going to have shadows that its best to make it solid to help with light bleeding because the difference in depth is to small and it will bleed.
Je peux me tromper, mais je fais tous mes murs et des trucs comme ça des deux côtés, un mur ne sera que quelques verts, donc ça ne devrait pas être beaucoup d'économies en ayant un avion.
Il y a certaines choses que je laisse de côté, mais c'est surtout le bas ou le haut des trucs qui ont beaucoup de choses autour pour aider à saigner légèrement.
Je fais de même pour la physique, je n'y ai pas vraiment pensé, mais il me semblait juste d'utiliser un mur comme mur et un avion comme avion mais c'est juste moi
la source