L'ajout de bloom (l'éclat) effet de shader (l'Unité de moteur de jeu)
Je suis entrain de créer application iOS dans L'unité du moteur de jeu.
Je suis en train de réécrire mon shader de sorte que le matériel, la sorcière de l'utiliser, a donné Bloom (l'Éclat) effet (comme un Halo composant).
Un exemple de la façon dont il devrait ressembler à:
J'ai vraiment cherché la réponse sur internet mais ne trouve rien pour le travailleur ou de la solution adaptée à mon problème.
Mon shader code:
Shader "Unlit"
{
Properties
{
_MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
_Color("Main Color", Color) = (1, 1, 1, 1)
}
SubShader
{
Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
LOD 100
Cull off
ZWrite on
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
Lighting Off
SetTexture[_MainTex]
{
constantColor[_Color]
Combine texture * constant, texture * constant
}
}
}
}
- D'émission, et donc de la floraison montant vient dela de la valeur des pixels de la couleur finale de la valeur qui doit être habituellement le HDR gamme. Essayez d'ajouter une émission de propriété par exemple _Emission("Emmisive Force", la Gamme de 0,01 à 3,0)) = 1.0. Ensuite, multipliez votre sortie par cette propriété.
- Pouvez-vous me montrer comment il devrait être fait dans mon shader sorcière-je ajouter à la question?
- Malheureusement, je ne pense pas que c'est simple. Vous êtes actuellement en utilisant le shader de programmes. Pour manipuler des émissions vous aurez besoin de ré-écrire le shader comme un surface shader au lieu d'utiliser des programmes. Voir ici dans le manuel de docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html et faites une recherche pour "émission" il y a de nombreux exemples. Cela dit je suis assez nouveau pour elle & apprécierait d'autres commentaires.
- Êtes-vous à l'aide d'un Effet de Bloom script?
- Moi faut ajouter à mon shader (en question) l'effet de bloom (comme sur les captures d'écran).
- Vous pouvez utiliser cet exemple pour apprendre à créer et mettre à jour l'Unité de Shaders. -> forum.unity3d.com/threads/...
- Moi n'ont pas besoin de script pour bloom effet d'image. Moi besoin shader de sorte que le matériau, la sorcière de l'aide, a donné la Floraison (l'Éclat) effet (comme un Halo composant).
Vous devez vous connecter pour publier un commentaire.
Un programme de shaders, c'est du code utilisé pour dessiner des triangles sur l'écran. Bloom effets sont totalement différents de la bête, et sont d'écran de l'espace de calculs que l'on fait après la géométrie est dessiné. Vous n'obtiendrez pas un effet de bloom juste en modifiant l'objet shader.
Pour parler simplement, avec un shader vous ne pouvez jamais dessiner "à l'extérieur des lignes", et ici, vous devez modifier les pixels qui sont à l'extérieur de l'objet à atteindre. Je suis désolé, mais c'est juste pas dans le shader de ses capacités.
Encore, vous pouvez le faire fonctionner par la mise en œuvre de Effet D'Image scripts, comme l'unité de intégré dans l'effet de bloom. Une fois que le script est ajouté à l'appareil photo, la photo HDR paramètre est activé, vous pouvez utiliser un shader qui va entraîner une lueur, mais pas avant que tout cela.
Une fois que vous avez configuré l'effet correctement (et activer le HDR option sur l'appareil photo), vous pouvez maintenant utiliser n'importe quel matériau qui retourne une valeur supérieure à 1 dans le pixel shader pour générer un effet de lumière autour de l'objet. Le shader que vous avez posté est un héritage programme de shaders. Voici le code mis à jour, avec une Lueur multiplicateur inclus: