Fix shader crash on zero vector and negative x vector in particles processing #90810
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes issues where the GPU particles would crash if the axis vector was set to Vector3(0.0, 0.0, 0.0) or Vector3(-1.0, 0.0, 0.0). I fixed it by defaulting to the z axis if a zero axis is entered, as that is the default in the inspector and by absoluting the axis before calculating the matrix for particle spawning.
On the CPU particles side. a zero vector would cause "The axis Vector3 must be normalized." error. So I applied the same fixes on the CPU side.
Note the -x vector issue doesn't always occur, but it crashed the particle shader on my AMD GPU. But it makes sense to avoid it as you wouldn't be able to do the cross product of Vector(1.0, 0.0, 0.0) and Vector(-1.0, 0.0, 0.0).