|
|
|
[OpenGL] установка камеры.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Подскажите пожалуйста! Есть программа, которая рисует прямоугольник (сетку). Результат - вид сверху. Как мне добиться, чтобы результат был похож на тот, что в прикрепленном файле, желательно более развернут к наблюдателю. Пробывал изменять параметры glulookat, поворачивать картинку glrotated, но ничего не вышло. Уже совсем запутался! (( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2008, 15:00 |
|
||
|
[OpenGL] установка камеры.
|
|||
|---|---|---|---|
|
#18+
2 Дональдак: Дональдак Код: plaintext 1. 2. 3. 4. Раз Вы пишите на C++ (судя по объявлениям переменных в конструкциях for), то для определения констант лучше использовать не макросы препроцессора, а конструкции языка C++: Код: plaintext 1. 2. 3. 4. Дональдак Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Функция init вызывается один раз в начале программы, здесь не надо звать glClear. glClear надо звать в функции рисования. Преобразование координат для проецирования (GL_PROJECTION-матрицу) тоже лучше устанавливать в другом месте. Дональдак Код: plaintext 1. 2. 3. 4. 5. Опять же, здесь не надо звать glClear. Зато здесь самое подходящее место для установки преобразования координат для проецирования (GL_PROJECTION-матрицы): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Дональдак Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Странно Вы рисуете сетку. По-моему, гораздо проще рисовать с помощью линий (режим GL_LINES): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Дональдак Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Где вызов glutInit? В самом начале надо звать glutInit: Код: plaintext 1. Кстати, почему Вы не используете двойную буферизацию? С ней гораздо лучше. Чтобы использовать двойную буферизацию, надо: * При вызове glutInitDisplayMode указать флаг GLUT_DOUBLE (вместо GLUT_SINGLE). * Вместо вызова glFlush (который на самом деле здесь не нужен) звать glutSwapBuffers. P. S. Если будете ещё прикреплять картинки, то очень желательно, чтобы эти картинки были в формате PNG. Этот формат предоставляет беспотерьное сжатие, поэтому PNG-картинки будут занимать меньше места (по сравнению с BMP-картинками). Страница будет грузиться быстрее, трафик снизится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2008, 16:32 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35628212&tid=1344893]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
210ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 524ms |

| 0 / 0 |
