mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 01:56:54 +02:00
Fix particle emitter corner cases
This commit is contained in:
parent
629128c17f
commit
d233d3f81b
1 changed files with 6 additions and 6 deletions
|
@ -682,9 +682,9 @@ void ParticleEffectEntityItem::stepSimulation(float deltaTime) {
|
||||||
}
|
}
|
||||||
updateRadius(i, 0.0f);
|
updateRadius(i, 0.0f);
|
||||||
|
|
||||||
// Velocity and acceleration
|
// Position, velocity, and acceleration
|
||||||
if (_polarStart == 0.0f && _polarFinish == 0.0f) {
|
if (_polarStart == 0.0f && _polarFinish == 0.0f && _emitDimensions.z == 0.0f) {
|
||||||
// Emit along z-axis
|
// Emit along z-axis from position
|
||||||
_particlePositions[i] = getPosition();
|
_particlePositions[i] = getPosition();
|
||||||
_particleVelocities[i] =
|
_particleVelocities[i] =
|
||||||
(_emitSpeed + (2.0f * randFloat() - 1.0f) * _speedSpread) * (_emitOrientation * Z_AXIS);
|
(_emitSpeed + (2.0f * randFloat() - 1.0f) * _speedSpread) * (_emitOrientation * Z_AXIS);
|
||||||
|
@ -730,9 +730,9 @@ void ParticleEffectEntityItem::stepSimulation(float deltaTime) {
|
||||||
float z = radiuses.z * glm::sin(elevation);
|
float z = radiuses.z * glm::sin(elevation);
|
||||||
glm::vec3 emitPosition = glm::vec3(x, y, z);
|
glm::vec3 emitPosition = glm::vec3(x, y, z);
|
||||||
emitDirection = glm::normalize(glm::vec3(
|
emitDirection = glm::normalize(glm::vec3(
|
||||||
x / (radiuses.x * radiuses.x),
|
radiuses.x > 0.0f ? x / (radiuses.x * radiuses.x) : 0.0f,
|
||||||
y / (radiuses.y * radiuses.y),
|
radiuses.y > 0.0f ? y / (radiuses.y * radiuses.y) : 0.0f,
|
||||||
z / (radiuses.z * radiuses.z)
|
radiuses.z > 0.0f ? z / (radiuses.z * radiuses.z) : 0.0f
|
||||||
));
|
));
|
||||||
|
|
||||||
_particlePositions[i] = getPosition() + _emitOrientation * emitPosition;
|
_particlePositions[i] = getPosition() + _emitOrientation * emitPosition;
|
||||||
|
|
Loading…
Reference in a new issue