Question

Quelle est la façon habituelle de contourner les bords sur un cube, un objet rectangulaire comme dans les exemples?

Entrez la description de l'image ici  Entrez la description de l'image ici

Le résultat idéal semblerait à peu près exactement comme ces images.

(Naturellement, vous pouvez littéralement utiliser un maillage qui a soigneusement arrondi des bords et des coins arrondis, mais il faut beaucoup de tris pour y parvenir.)


Note, bien sûr pour une approche non -Shader ...

Entrez l'image Description ici

Ajoutez deux petites boîtes plats et faites simplement cette nouvelle normale à mi-chemin normal, c'est-à-dire 45 degrés, entre les deux côtés:

Entrez la description de l'image ici

qui serait parfaitement rond ...

GDG ci-dessous a fourni un article dans lequel quelqu'un affirme que c'est bien le meilleur moyen, sinon d'utiliser une approche de shader.

Je me demande vraiment comment faire cela avec un shader cependant.


Remarque - Tutoriel incroyablement détaillé sur l'approche non shader

http://catlikecoding.com/unity/tatudials/rounded-cube/

Était-ce utile?

La solution

Utilisation de l'ombrage différé, vous pouvez accéder à G-tampon pour localiser et arrondir les bords comme celui-ci en Ce papier .Bien qu'il s'agisse d'une technique de post-traitement, elle est donc capable d'émuler la rondeur dans des limites de certains pixels.

Entrez la description de l'image ici

NORMALs moyennes moyennes (1 pixel largeur):

Entrez la description de l'image ici

NORMALs moyennes simples (largeur de 2 pixels):

Entrez la description de l'image ici

NORMALs moyennes moyennes (3 pixels largeur):

Entrez la description de l'image ici

Autres conseils

Je différerais certainement une réponse orientée dans le shader, mais surtout si les shaders nécessaires ne sont pas disponibles sur une plate-forme donnée, je l'accomplirais avec quelques modèles de "niveau de détail" alias LOD.

  • Donnez au GAMEObject pour ces mailles d'objet pour une boîte à 6 côtés, une boîte légèrement incurvée et une boîte très courbe très proche.( http://www.wings3d.com/ est mon outil de modélisation simple)
  • Donnez au jeu un script de comportement qui vérifie chaque image pour la distance de la caméra.

  • Activez le maillage approprié en fonction de la distance et désactivez les autres, cela doit être effectué à distance où le changement n'est pas détectable à la résolution la plus haute disponible pour le lecteur.

Cette technique est assez utilisée dans des jeux 3D, un bon moyen de représenter des essaims lointains de choses qui peuvent devenir beaucoup plus détaillées une fois que la caméra se lève près.

Nous avons pu accomplir des cubes biseautés pour notre jeu WorldTobuild.La clé est vraiment que vous pouvez aller de l'avant et faire le modèle biseauté, puis déplacez simplement les sommets en groupes.

Donc en bref, tout ce que je devais faire pour atteindre l'effet était:

  • créer un cube biseauté (j'ai utilisé Blender).
  • Trouvez quels sommets vous allez vous déplacer dans chaque direction par leur position du centre.
  • Calculez les bords biseautés et définissez la taille exacte.

J'ai écrit un article à ce sujet ici.Faites défiler jusqu'au bas de l'article si vous souhaitez simplement connaître le processus:

https://www.linkedin.com/ PULSE / CODING-RESTINABLE-BEVERSED-CUBES-UNITY-RICHARD-CHRISTLEY

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top