Showing the changes to interface/src/ParticleSystem.cpp (1 of 2 files). Show all
Unified · Split
| @@ -367,12 +367,9 @@ void ParticleSystem::renderParticle(int p) { · 366 unmodified lines | |||
| 367 | 367 | ||
| 368 | v /= distance; | 368 | v /= distance; |
| 369 | 369 | ||
| 370 | glm::vec3 up = glm::normalize(glm::cross(v, _upDirection)); | 370 | glm::vec3 up = glm::normalize(glm::cross(v, _upDirection)) * _particle[p].radius; |
| 371 | glm::vec3 right = glm::normalize(glm::cross(up, v)); | 371 | glm::vec3 right = glm::normalize(glm::cross(up, v )) * _particle[p].radius; |
| 372 | 372 | ||
| 373 | right *= _particle[p].radius; | ||
| 374 | up *= _particle[p].radius; | ||
| 375 | |||
| 376 | glm::vec3 p0Left = _particle[p ].position - right; | 373 | glm::vec3 p0Left = _particle[p ].position - right; |
| 377 | glm::vec3 p0Right = _particle[p ].position + right; | 374 | glm::vec3 p0Right = _particle[p ].position + right; |
| 378 | glm::vec3 p0Down = _particle[p ].position - up; | 375 | glm::vec3 p0Down = _particle[p ].position - up; |
| @@ -383,28 +380,40 @@ void ParticleSystem::renderParticle(int p) { · 4 unmodified lines | |||
| 383 | glm::vec3 ppDown = _particle[pp].position - up; | 380 | glm::vec3 ppDown = _particle[pp].position - up; |
| 384 | glm::vec3 ppUp = _particle[pp].position + up; | 381 | glm::vec3 ppUp = _particle[pp].position + up; |
| 385 | 382 | ||
| 386 | glBegin(GL_TRIANGLES); | 383 | glBegin(GL_TRIANGLES); |
| 387 | glVertex3f(p0Left.x, p0Left.y, p0Left.z ); | 384 | |
| 388 | glVertex3f(p0Right.x, p0Right.y, p0Right.z ); | 385 | glVertex3f(p0Left.x, p0Left.y, p0Left.z ); |
| 389 | glVertex3f(ppLeft.x, ppLeft.y, ppLeft.z ); | 386 | glVertex3f(p0Right.x, p0Right.y, p0Right.z ); |
| 390 | glEnd(); | 387 | glVertex3f(ppLeft.x, ppLeft.y, ppLeft.z ); |
| 391 | 388 | ||
| 392 | glBegin(GL_TRIANGLES); | 389 | glVertex3f(p0Right.x, p0Right.y, p0Right.z ); |
| 393 | glVertex3f(p0Right.x, p0Right.y, p0Right.z ); | 390 | glVertex3f(ppLeft.x, ppLeft.y, ppLeft.z ); |
| 394 | glVertex3f(ppLeft.x, ppLeft.y, ppLeft.z ); | 391 | glVertex3f(ppRight.x, ppRight.y, ppRight.z ); |
| 395 | glVertex3f(ppRight.x, ppRight.y, ppRight.z ); | 392 | |
| 396 | glEnd(); | 393 | glVertex3f(p0Up.x, p0Up.y, p0Up.z ); |
| 397 | 394 | glVertex3f(p0Down.x, p0Down.y, p0Down.z ); | |
| 398 | glBegin(GL_TRIANGLES); | 395 | glVertex3f(ppDown.x, ppDown.y, ppDown.z ); |
| 399 | glVertex3f(p0Up.x, p0Up.y, p0Up.z ); | 396 | |
| 400 | glVertex3f(p0Down.x, p0Down.y, p0Down.z ); | 397 | glVertex3f(p0Up.x, p0Up.y, p0Up.z ); |
| 401 | glVertex3f(ppDown.x, ppDown.y, ppDown.z ); | 398 | glVertex3f(ppUp.x, ppUp.y, ppUp.z ); |
| 402 | glEnd(); | 399 | glVertex3f(ppDown.x, ppDown.y, ppDown.z ); |
| 403 | 400 | ||
| 404 | glBegin(GL_TRIANGLES); | 401 | glVertex3f(p0Up.x, p0Up.y, p0Left.z ); |
| 405 | glVertex3f(p0Up.x, p0Up.y, p0Up.z ); | 402 | glVertex3f(p0Right.x, p0Right.y, p0Right.z ); |
| 406 | glVertex3f(ppUp.x, ppUp.y, ppUp.z ); | 403 | glVertex3f(p0Down.x, p0Down.y, p0Down.z ); |
| 407 | glVertex3f(ppDown.x, ppDown.y, ppDown.z ); | 404 | |
| 405 | glVertex3f(p0Up.x, p0Up.y, p0Left.z ); | ||
| 406 | glVertex3f(p0Left.x, p0Left.y, p0Left.z ); | ||
| 407 | glVertex3f(p0Down.x, p0Down.y, p0Down.z ); | ||
| 408 | |||
| 409 | glVertex3f(ppUp.x, ppUp.y, ppLeft.z ); | ||
| 410 | glVertex3f(ppRight.x, ppRight.y, ppRight.z ); | ||
| 411 | glVertex3f(ppDown.x, ppDown.y, ppDown.z ); | ||
| 412 | |||
| 413 | glVertex3f(ppUp.x, ppUp.y, ppLeft.z ); | ||
| 414 | glVertex3f(ppLeft.x, ppLeft.y, ppLeft.z ); | ||
| 415 | glVertex3f(ppDown.x, ppDown.y, ppDown.z ); | ||
| 416 | |||
| 408 | glEnd(); | 417 | glEnd(); |
| 409 | } | 418 | } |
| 410 | } | 419 | } |