Тема: Зеркальное отражение цилиндра с++

Ответить в теме
Показано с 1 по 18 из 18
  1. Вверх #1
    Новичок Аватар для jagero
    Пол
    Мужской
    Сообщений
    30
    Репутация
    11

    По умолчанию Зеркальное отражение цилиндра с++

    Всем добрый день,проблема следующего рода,мне дали задание на курсовой проект.Работаю в borland c++ builder 6.0

    Полностью
    Тема звучит так:Використання метода Гуро для отримання зеркального відображення у циліндрі.

    Умови
    Радіус 25.
    Вісь перпендикулярна напряму спостережання.
    Використовувати просту модель освітлення.

    OpenGl и др. не стандартные методы исп.запрпещено.

    Полазив по Инету так ничего и не смог найти внятного,вообще ума не приложу как это можно реализовать(.
    Т.е как я понял то должна быть зеркальная поверхность и вней отражатся должен цилиндр.

    Буду рад любой помощи.
    Заранее благодарен.


  2. Вверх #2
    Новичок Аватар для Magneto
    Пол
    Мужской
    Сообщений
    38
    Репутация
    16
    Может это поможет

    P.S. Я не Сишник.

  3. Вверх #3
    Цитата Сообщение от jagero Посмотреть сообщение
    Тема звучит так:Використання метода Гуро для отримання зеркального відображення у циліндрі.
    Умови
    Радіус 25.
    Вісь перпендикулярна напряму спостережання.
    Використовувати просту модель освітлення.

    Т.е как я понял то должна быть зеркальная поверхность и вней отражатся должен цилиндр.
    исходя из темы, цилиндр и должен быть той зеркальной поверхностью, а "у циліндрі", говорит что отражение на внутренней поверхности.... как-то так

  4. Вверх #4
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    Обычно когда упоминают метод Гуро обычно подразумевают тонирование модели.

    И еще есть вот такая книга Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации там много чего объясняется с азов, но не помню есть ли там про отражение, так как обычно в играх отражения реализуется не совсем "по честному"

  5. Вверх #5
    Новичок Аватар для jagero
    Пол
    Мужской
    Сообщений
    30
    Репутация
    11
    Всем спасибо.

  6. Вверх #6
    Новичок Аватар для jagero
    Пол
    Мужской
    Сообщений
    30
    Репутация
    11
    если будут еще идеи буду рад услышать.

  7. Вверх #7
    Новичок Аватар для jagero
    Пол
    Мужской
    Сообщений
    30
    Репутация
    11
    Значит зада звучит так нарисовать Шахматную доску на ней будет цилиндр в котором будет что-то любой отражать какой-то предмет.
    Это простыми словами.Зарисовку по Гуру надо будет тоже выполнить когда залью цилиндр.

  8. Вверх #8
    Частый гость Аватар для EgorOrda
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    44
    Сообщений
    983
    Репутация
    590
    Надо нарисовать цилиндр в котором будет отражаться объект (объекты). Простейший вариант это цилиндр на шахматной доске (я это объяснял несколько раз)

  9. Вверх #9
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    EgorOrda и есть постановщик задачи ?

  10. Вверх #10
    Частый гость Аватар для EgorOrda
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    44
    Сообщений
    983
    Репутация
    590
    Угу

  11. Вверх #11
    Новичок Аватар для jagero
    Пол
    Мужской
    Сообщений
    30
    Репутация
    11
    ups,spasibo bolshoe vsem.
    voobshem teorii mnogo,a kak eto realisovat uma ne priloshu.

  12. Вверх #12
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    http://habrahabr.ru/blogs/algorithm/112944/ - вариант raytrace алгоритма на яваскрипте, только там фонг заменить на гуро.

  13. Вверх #13
    Частый гость Аватар для EgorOrda
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    44
    Сообщений
    983
    Репутация
    590
    Типа того, только джаву заменить на плюсы, шары на цилиндр, фонга на гуро. И для уменьшения количества расчетов, попиксельную обработку заменить на полигональную

  14. Вверх #14
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    Цитата Сообщение от EgorOrda Посмотреть сообщение
    Типа того, только джаву заменить на плюсы, шары на цилиндр, фонга на гуро. И для уменьшения количества расчетов, попиксельную обработку заменить на полигональную
    Ну с первыми то понятно, а вот с последним - в свете того что этот цилиндр еще и должен быть зеркальной поверхностью, ссылочкой на описание такого алгоритма не поделитесь?

  15. Вверх #15
    Частый гость Аватар для EgorOrda
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    44
    Сообщений
    983
    Репутация
    590
    Например:
    http://compgraph.tpu.ru/Guro.htm
    Тем самым, уменьшиться количество расчетов, по формуле для выбранной модели освещения, т.к. расчеты надо будет произвести только в узловых точках полигонов, а остальные точки закрашиваются используя билинейную интерполяцию. Правда, чем полигонов больше, тем расчетов больше и если свести полигон к точке, получим приведенный Вами алгоритм.

  16. Вверх #16
    Новичок Аватар для jagero
    Пол
    Мужской
    Сообщений
    30
    Репутация
    11
    Cпасибо ув.EgorOrda и Fallout.

  17. Вверх #17
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    Цитата Сообщение от EgorOrda Посмотреть сообщение
    Например:
    http://compgraph.tpu.ru/Guro.htm
    Тем самым, уменьшиться количество расчетов, по формуле для выбранной модели освещения, т.к. расчеты надо будет произвести только в узловых точках полигонов, а остальные точки закрашиваются используя билинейную интерполяцию. Правда, чем полигонов больше, тем расчетов больше и если свести полигон к точке, получим приведенный Вами алгоритм.
    Ну с затенением то все понятно, а с отражением? Или тут подразумевается что вклад отражение также просчитывается только на вершинах полигонов, гм тогда цилиндр должен содержать их много для нормального эффекта.

    Просто литаература что встречается на эту тему достаточно часто рассматривается с точки зрения игр. И скажем если бы надо было ту шахматную поверхность сделать зеркальной и чтоб в ней отображался цилиндр - то обычно делают еще один точно такой же цилиндр и размещают его под шахматной поверхностью делая поверхность прозрачной. Если же надо что то отзеркалить на более сложной поверхности, например на том же цилиндре, то на цилиндр натягивают текстуру которая есть панорама окружения этого цилиндра и прорисовывают эту текстуру частично смешивая с основным цветом цилиндра. Если эту тектуру двигать учитывая положение камеры то вполне может получится годная имитация отзеркаливания. Есть еще несколько трюков, которые применяются относительно плоских зеркал. Но вот более мение "честный" расчет отражения встречается нечасто

  18. Вверх #18
    Частый гость Аватар для EgorOrda
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    44
    Сообщений
    983
    Репутация
    590
    Или тут подразумевается что вклад отражение также просчитывается только на вершинах полигонов, гм тогда цилиндр должен содержать их много для нормального эффекта.
    Вобщем да. Задача курсового, чтобы студент продемонстрировал усвоенный метод, Так что, если будет два-три десятка полигонов, вместо нескольких сотен - это не критично

    В играх там другое, задача же стоит не просто сделать цилиндр, а сделать его определенным методом. Конечно, проще взять каркас и натянуть на него текстуру, но тут важен не столько конечный результат, сколько метод. Т.е. студент должен показать, что он знает как просчитать параметры точек (в зависимости от модели освещения), как просчитать заливку полигона, как выполнить проекцию изображения (например доски) на поверхность цилиндра и т.д.


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения