Hello =^_^=,
This is my first question, apologize ahead of time if I’m posting incorrectly. I’m setting up a MOBA style sandbox to test my VFX and creating some primitive effect templates. Its working because I immediately realized rudimentary problem that I hadn’t thought about previously while proto-typing outside of a gameplay environment.
I’m just starting a projectile effect template and realized something regarding my muzzle flash. At this point, its just a primitive, camera facing additive billboard with a fuzzy circular texture. I’m debating where to spawn this billboard in comparison to the camera. I noticed that when the effect is not near the center of the screen, it appears off center in comparison to my model and also got me thinking about when the player’s model is facing away from the camera.
My natural instinct is to find a vector from the player to the camera and spawn the billboard a fixed distance along that vector, and if the camera is behind the player, spawn the billboard along the same vector in the negative direction so it appears to flash in front of the character rather than behind their back. Does that make sense?
While this execution is easy enough, I’m wondering if this is the best way to go about it? How does everyone handle their billboard positioning / direction?
I’m developing this project in Unity, but I believe this is a more theoretical question applicable to all engines.
edit: I should also note, that this is happening because I’m offsetting the billboard off of the local origin because the billboard is intersecting and being obfuscated by the player model. Which is another result I had not anticipated while viewing / prototyping strictly within the VFX graph / preview. So, the other solution I’ve thought of is to draw the billboard in a separate render pass so it can be at the model’s local origin, but be rendered OVER the model.