Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Графика(в понимании программера)  (Прочитано 11504 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
p0et
Гость
« : 06-04-2004 19:35 » 

Я шокирован! так! привет! начнем с вопроса по существу! есть лабиринт. мы находимся в одной из его комнат. видим часть стены. Вопрос - Какие способы рисования текстуры этой стены на экран можете предложить? я знаю только горизонтальными или вертикальными линиями с проверкой каждой точки линии на код цвета части текстуры куда попадает ета точка при ее отображении на видимой части стены :twisted:
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 07-04-2004 05:11 » 

обычно применяется такой спосОб:

есть некий виртуальный прямоугольный экран (плоскость), между наблюдателем (точка) и 3D объектом. Экран "совмещён" с экраном физическим(монитора). Количествотво точек экранов - равно. Экран сканируется, и от точки наблюдателя через кажную точку экрана и проводится луч, и находится пересечение луча с объектом. Определяется цвет пиксела текстуры объекта, куда попал луч, если надо - накладываются эффекты разные - и пиксел отрисовывается на мониторе с нужным цветом. Вся прелесть в том, что время сканирования не зависит от размеров сцены, а зависит от количества объектов и кол-ва спецэффектов
Записан

Lex
Специалист

ru
Offline Offline

WWW
« Ответ #2 : 07-04-2004 10:16 » 

Алексей1153, это называется метод обратного хода луча.
Используется для получения фотореалистичного изображения многими программами 3D моделирования.
Основной недостаток, медленный.

p0et, давно ничего ручками не писал. С ходу могу только посоветовать книгу Майкла Абраша "Graphics Programming Black Book". Бесплатно на англицком она была выложена на сайте Dr. Dobbs Journal (кажется так это зовется). По сути это его книги собранные воедино. На русском есть его книжка "Таинства компьютерной графики."
Записан

Megabyte be with you!
p0et
Гость
« Ответ #3 : 08-04-2004 16:17 » 

мда - обратный ход луча - ето краасиво, но меееедленно! А с книгами спасибо поищу! Еще мысля для размышления: есть набор точек и они должны красиво разлетаться( не по прямым)! пробовал через сплайны, по шаблонам - не нравится, а вот если в 3D через несколько матриц вращения то вроде ничего, но както много и медленно - может у вас идеи будут :?:
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #4 : 12-04-2004 08:47 » 

p0et, попробуй сначала перемножить несколько матриц вращения и получишь одну матрицу преобразования. Которая считаться будет быстрее.
А еще для этого можно использовать графическую карту, она это все считатет весьма шустро(современная с 3D ускорителем)
Записан

Megabyte be with you!
Faust
Гость
« Ответ #5 : 13-04-2004 06:54 » 

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

Чтобы получить красивые "разлеты" точек можно моделировать их движение физически, т.е. управлять ускорением (векторно, или для каждой координаты отдельно). Ускорение может быть функцией времени... В таком варианте матричные преобразования необходимо выполнять только при проецировании на экран.
Записан
p0et
Гость
« Ответ #6 : 05-04-2005 20:25 » 

да давно меня не было! насчет разлета точек - понравился вариант с управлением виз моделью и виз свойствами объектов - хех быстро работает и красиво!

воо - во бзде в консоле курсор мыши плавно скроллируется, понравился еффект. написал тоже самое под дос и повешал на драйвер мыши прикольно всетаки смотрится.
А если сделать 3D эффекты в текстовом режиме? может проектик открыть нам? написать попробовать? или алгоритмы какие разобрать? мне никак в голову ни идет, как преобразовывать на таблицу символов, какие символы подбирать.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines