Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.05.2012, 10:35
krabanek вне форума Посмотреть профиль Отправить личное сообщение для krabanek Найти все сообщения от krabanek
  № 1  
Ответить с цитированием
krabanek

Регистрация: Oct 2010
Адрес: Стык Нижегородской и Мордовской областей, город Саров
Сообщений: 17
По умолчанию hitTestPoint без отрисовки

У меня есть Vector.<Point>, составляющий фигуру. Как можно узнать, внутри ли фигуры определенная точка, не прибегая к отрисовке в Graphics для последующего вызова hitTestPoint? Довольно долго думал, мучал гугл и поисковил flahser-а.
Зачем нужно: Пишу собственный энджин для динамических теней, а чтобы во время перерисовки не производить излишние вычисления (Если не сделать эту заглушку, даже с проверкой на изменения вычисления загружают процессор слишком сильно), нужен механизм для отсеивания тех объектов, до которых свет не дотягивается.
Использовать Graphics не хочу, ибо это на мой взгляд индусский способ


Последний раз редактировалось krabanek; 02.05.2012 в 10:44.
Старый 02.05.2012, 11:19
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 2  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Если вы опишете характеристики возможных фигур, станет проще.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 02.05.2012, 11:33
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Побить на треугольники и проверять на точку в треугольнике?
Плюс, если тормозит, то проверку сперва на AABB, т.е. попадает ли точка в прямоугольник, в котором находится треугольник (и/или вся фигура). Ещё можно как для широкой фазы оптимизации ввести, но думаю они уже не понадобятся.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 02.05.2012, 12:28
krabanek вне форума Посмотреть профиль Отправить личное сообщение для krabanek Найти все сообщения от krabanek
  № 4  
Ответить с цитированием
krabanek

Регистрация: Oct 2010
Адрес: Стык Нижегородской и Мордовской областей, город Саров
Сообщений: 17
Цитата:
Сообщение от ChuwY Посмотреть сообщение
Если вы опишете характеристики возможных фигур, станет проще.
Фигуры совершенно произвольные. Хотя в данный момент в основном тестирую на треугольниках и прямоугольниках.

Цитата:
Сообщение от -De- Посмотреть сообщение
Побить на треугольники и проверять на точку в треугольнике?
Плюс, если тормозит, то проверку сперва на AABB, т.е. попадает ли точка в прямоугольник, в котором находится треугольник (и/или вся фигура). Ещё можно как для широкой фазы оптимизации ввести, но думаю они уже не понадобятся.
Я как раз и склоняюсь к разбиванию фигуры на треугольники с последующей проверкой. Проверку на AABB ввести можно, но это не решит проблему. Вот допустим источник света конусом. Объект не входит в конус, но удовлетворяет проверку AABB. Из-за этого будет наложена лишняя тень, которая может породить артефакты.
Процесс идет примерно так:
1. Весь экран заливается черным.
2. Происходит циклический вызов расчетов света для всех источников.
3. Рисуются освещенные области.
4. Рисуются тени в освещенных областях.

Старый 02.05.2012, 13:28
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Проверка на AABB - это быстрый способ откинуть не нужные (не принять нужные). Понятно, что не все ненужные откинутся и к тем, кто не откинется уже применять нормальную проверку.
Я не оч. понял, зачем нужно попадание именно точки, скорее отрезка (всё то же самое, только пересечение отрезка и треугольника и у отрезка есть свой AABB). Причем по факту нужна проверка на пересечение и "попадание в" двух фигур, возможно тут можно что-то попробовать хитрее.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 02.05.2012, 13:40
krabanek вне форума Посмотреть профиль Отправить личное сообщение для krabanek Найти все сообщения от krabanek
  № 6  
Ответить с цитированием
krabanek

Регистрация: Oct 2010
Адрес: Стык Нижегородской и Мордовской областей, город Саров
Сообщений: 17
Отрезок - это две точки, не? Плюс пересечение отрезка с фигурой найти легко, а если фигура не пересекается ни с одной из сторон и полностью лежит в зоне освещения?

Старый 02.05.2012, 14:06
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 7  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Отрезок это не две точки, в смысле, обе эти точки могут лежать вне фигуры, но пересечение будет. Нужно проверять именно ситуацию "пересечение или попадание внутрь".
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 02.05.2012, 14:20
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 8  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
можно предложить как самое простое и наверно, это будет быстрее чем резать на треугольники. Режьте на относительно маленькие прямоугольники. Экспериментально можно выяснить при каком размере прямоугольников артефакты будут приемлемыми.

Старый 02.05.2012, 14:32
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Да, кстати, отрисовка в Graphics (а лучше наверное битмапдату, к ней много сравнительно быстрых функций прилагается) - не обязательно плохое решение. Потому как вся та математика про которую я пишу - она оч. дурная по многим параметрам.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 02.05.2012, 15:41
krabanek вне форума Посмотреть профиль Отправить личное сообщение для krabanek Найти все сообщения от krabanek
  № 10  
Ответить с цитированием
krabanek

Регистрация: Oct 2010
Адрес: Стык Нижегородской и Мордовской областей, город Саров
Сообщений: 17
Попробовал все-таки графические просчеты, решил не насиловать мозги себе и вам. Остался недоволен тем, что использовал-таки такой способ, но зато теперь все нормально. Тему можно закрыть, но если некоторым все-таки захочется попарится по поводу "пересечения или попадания внутрь" - велкам.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
hitTestPoint , Point , чистая математика

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.