Utilisation de différentes particules dans Godot 3. Aucun effet de post-traitement.
Liens:
Démarrer WebGL2 et télécharger d' autres versions contiennent un lien vers itch.io .
Code source sur github .
L'article est divisé en sections:
Lissage des petites particules, de différentes manières.
Beaucoup de balles - des particules sans perte de performance. Et une projection 3D dans le shader.
Système de décalcomanies d'espace d'écran.
Autre.
1. Lissage des particules
J'utilise un objet plat 2 ou 4 fois plus grand que les graphiques affichés, les graphiques les plus critiques au centre de la texture ressemblent à ceci, à gauche il est 2 fois plus grand à droite que 4 fois:
Et le noir devient transparent.
L'idée est d'avoir au moins 1 pixel autour de la ligne de base, même aux plus petits angles de rotation et à la distance de l'objet. J'utilise un remplissage 4x sur l'objet le plus éloigné:
Le code du shader de base.shader de la ligne de particules AA comprend trois versions pour les tests - pas de filtrage, avec filtrage procédural utilisant une dFd*
fonction et utilisant une texture, ordre de gauche à droite :
2. Projection de particules tridimensionnelles sur un plan
J'utilise la logique d'intersection et de projection dans le shader de fragment.
- 1000 - (GPU) , 1000 - GPU 100%. 1000 ( ) 25% GPU.
-:
, :
3. Screen space decals
, .
dacal.
Material-ID Decals .
:
Material-ID:
Godot render-pass, . Viewport :
material-ID (depth). (depth) . , Material-ID Viewport depth:
Viewport overhead, , - Debug ( ) , 0.25 1.
4.
- , , .
, , .
- .
- 360 1 , . :
:
Nvidia:
, Vetrex , Vulkan .
:
3d sketchfab CC-non comercial .
MIT license.
Lien vers la liste des ressources utilisées .
Merci d'avoir lu cet article.