.. | .. |
---|
382 | 382 | { |
---|
383 | 383 | double K = 0.25; |
---|
384 | 384 | |
---|
385 | | - if (!CameraPane.capsLocked) |
---|
| 385 | + if (!CameraPane.capsLocked || CameraPane.ambientOcclusion) |
---|
386 | 386 | K = 1; |
---|
387 | 387 | |
---|
388 | 388 | locationBuf.y = location.y * K + locationBuf.y * (1 - K); |
---|
389 | 389 | lookAtBuf.y = lookAt.y * K + lookAtBuf.y * (1 - K); |
---|
390 | 390 | |
---|
391 | | - K = 0.1; |
---|
| 391 | + int Y = 1; |
---|
| 392 | + |
---|
| 393 | + if (UP.y < 0) |
---|
| 394 | + Y = -1; |
---|
| 395 | + |
---|
| 396 | + UP.x = 0 * K + UP.x * (1 - K); |
---|
| 397 | + UP.y = Y * K + UP.y * (1 - K); |
---|
| 398 | + UP.z = 0 * K + UP.z * (1 - K); |
---|
| 399 | + UP.normalize(); |
---|
| 400 | + |
---|
| 401 | + if (CameraPane.capsLocked && !CameraPane.ambientOcclusion) |
---|
| 402 | + K = 0.1; |
---|
392 | 403 | |
---|
393 | 404 | upBuf.x = UP.x * K + upBuf.x * (1 - K); |
---|
394 | 405 | upBuf.y = UP.y * K + upBuf.y * (1 - K); |
---|