Просмотр полной версии : [Papervision] Узнать координаты точек на сфере
Дубль, потому как первое сообщение случайно втулил в левую ветку :(
Доброго времени суток.
Хочу сразу оговориться что это мой первый проект, посему прошу не рубить сплеча.
Вопрос следующий.
На основании уроков и разных там мануалов решил написать 3Д тур на пейпервижин3Д,
но соответственно от полного профанства наткнулся на засаду.
Если объяснять словами, то
есть сфера, на которую натянута панорама комнаты. Камера внутри сферы конечно же.
На панораме комнаты есть дверь. Так вот я каким то образом хочу определить координаты углов
этой двери на поверхности сферы.
Чтобы далее, через данные координаты, построить невидимую плоскость. При клике на которую
происходило бы перемещение камеры в центр следующей сферы с панорамой следующей комнаты.
Вопрос - какой временный листенер нужно прикрутить, и к кому,
чтобы он трейсил координаты углов двери на плоскости сферы?
Как я себе думаю крутить его нужно к сфере, но вот какой - для меня тёмный лес.
З.Ы. Опять же повторюсь, что я тут первый раз потому не знаю особо как тут заведено.
Мне залить код класса прямо сюда, либо указать сцылку на какой нибудь хостинг??
Всем спасибо заранее
Просто очень хочеться его победить, аж шкура чешется
А почему просто не повесить Plane и слушать ее события InteractiveScene3DEvent? Камера крутится, сфера и плоскости-двери стоят на месте. Координаты точек на сфере тут не нужны.
Так я думал если плоскость разместить за сферой, то она не сможет слушать события. Поэтому вот и хотел разместить плоскость внутри сферы.
Ошибался.
проверил вариант с плоскостью за сферой - РАБОТАЕТ :)
Но отсюда второй вопрос - как изменить альфу у материала сферы?
материал: BitmapMaterial
Чтоб можно было видеть плоскость за сферой при её вращении.
То есть я хочу видеть плоскость когда подгоняю её под изображение дверей,которые стоят под углом.
Добавлено через 2 часа 4 минуты
Всплыл еще один косяк при тестах. К примеру, есть 2 сферы с панорамами соседних комнат. Радиус сфер скажем 400. Центр 1-й 0, 0, 0, центр 2-й 0, 0, 800. При вращении камеры в центре любой сферы, при определенных углах становиться видна другая сфера. Так вот что замутить- отодвинуть 2-ую сферу дальше, или играться свойствами камеры?
Можно разместить плоскость и внутри сферы, не понимаю в чем проблема. Из этих плоскостей можно сделать маркеры, которые будут показывать при наведении область доступную для клика.
Папервижн с настройками движка по умолчанию не делает правильную сортировку граней соседних объектов, только в рамках одного объекта. Это экономит ресурсы. И не нужно грузить сразу все панорамы и развешивать их на сцене.
Sintesis
25.06.2011, 20:37
Добавлено через 2 часа 4 минуты
Всплыл еще один косяк при тестах. К примеру, есть 2 сферы с панорамами соседних комнат. Радиус сфер скажем 400. Центр 1-й 0, 0, 0, центр 2-й 0, 0, 800. При вращении камеры в центре любой сферы, при определенных углах становиться видна другая сфера. Так вот что замутить- отодвинуть 2-ую сферу дальше, или играться свойствами камеры?
Это издержки средней-Z сортировки, от этого не избавиться если в папервижн нет другой сортировки например BSP. И лучше посмотрить на другие движки Away 3.6, Alternativa3D 7.
Это издержки средней-Z сортировки Это для меня вообще тёмный лес. В тех мануалах по которым я грызу данный предмет об этом вообще ни слова. Временно решил вопрос подвинув вторую сферу чуть дальше.
можно сделать маркеры А можно подробней?
На сколько я понимаю, это значит изменить свойство у мыши, чтоб она в значении ОВЕР менялась на руку. Или есть что то более глобальное?
И не нужно грузить сразу все панорамы А как тогда?
Прикрутить к плоскости между сферами лоадер, который бы при клике на плоскости сначала загружал вторую сферу, а потом бы уже происходил процес перемещения камеры внутрь новой сферы.
Или я снова чего то не знаю?? :confused:
Sintesis
26.06.2011, 15:07
Это для меня вообще тёмный лес.
Это плохо. Сортировка занимается тем, что отображает объект который ближе к нам поверх того, объекта который дальше. Так вот если сортировка самая простая: "сортировка по средней-Z" то бывает, что полигоны объектов находящихся вдали видны поверх полигонов объектов находящихся близко к камере. То что у вас и происходит.
Из этих плоскостей можно сделать маркеры, которые будут показывать при наведении область доступную для клика.
На сколько я понимаю, это значит изменить свойство у мыши, чтоб она в значении ОВЕР менялась на руку. Или есть что то более глобальное?
Нет, имеется в виду, что плоскости прозрачны, находятся перед дверьми, имеют такие-же размеры как двери,
реагируют на фокус мыши и на клик. В таком случае можно сделать что угодно, например: натянуть на эту плоскость текстуру с фотографией следующей комнаты. При наведении на дверь мы попадаем курсором на плоскость и она стаёт непрозрачной и мы видим на плоскости фото следующей локации - кликаем и переходим туда.
Обычно не налаживают текстуру окружения на сферу, на самом деле запечённую как нужно текстуру окружения налаживают на куб, погуглите как делается SkyBox.
Это для меня вообще тёмный лес. В тех мануалах по которым я грызу данный предмет об этом вообще ни слова. Временно решил вопрос подвинув вторую сферу чуть дальше.
Если используете BasicView, поствьте ему renderer = new QuadrantRenderEngine(QuadrantRenderEngine.CORRECT_Z_FILTER);
Но, еще раз повторяю, более сложный механизм рендера - большие затраты ресурсов, вам это не нужно. И тем более нет смысла грузить проц и память графикой, которую не видно в данный момент. Сделайте прелоадеры для разных панорам, вес то у них наверное не маленький.
Все есть в мануале http://papervision3d.googlecode.com/svn/trunk/as3/trunk/docs/index.html
Плоскости (или другие объекты) маркеры невидимые, а при наведении загораются, чтобы было видно какая область доступна для клика + изменение курсора, это очень приятно для пользователя, не надо тыкать наугад. Не забудьте, им надо слушать не просто события мыши, а InteractiveScene3DEvent.
plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onOver);
plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onOut);
plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onClick);
Фух. Спасибо конечно за ваши ответы, но чего то я теперь совсем поплыл. Столько инфы на неокрепший базовыми знаниями мозг просто его вынесли найух. Может подскажете какой бук, желательно конечно на русском, по данному пакету? Потому как мой начальный залихватский задор не знает с какой стороны теперь начинать копать :(
Добавлено через 1 час 21 минуту
Порывшись по просторам паутины нашел следующие буки:
"Papervision3D Essentials" Paul Tondeur-а и
"Professional Papervision3D" Michael Lively.
После предварительного ознакомления понял, что уровень мой пока первые восемь глав первой книжки :( (а я блин думал, что я уже Хон Гиль Дон)
Придется теперь осваивать остальное. Смущает в этой ситуации только один факт - всё на англицком, млин. Больше времени потрачу.
Хотя с другой стороны может подтяну скил по языку.
Вопрос кто знаком с данными буками, с какой лучше начать??
Ну и вообще глобальный вопрос - стоит ли корячиться с ПВ3Д или пропустить его и посмотреть в сторону Эвея или Альтернативы,
которые вроде как активно развиваются и дышат полной грудью?
Ну это так, чтоб не было жаль за потраченное время :)
Книжки не смотрел, просто не очень нравится такой способ освоения. Вам ведь тоже не нужны все тонкости движка, нужны только панорамы. По папервижн больше туториалов, наверное, потому что самый старый.
вот, кстати, на основе куба http://blog.flexcommunity.net/?p=22
Вообще рекомендую альтернативу, но готового решения по панорамам не нашел сходу, может кто подскажет. Смотря что вам нужно, сделать панораму или освоить движок для каких то еще нужд. Кроме сферы (или куба), и простой битмапной текстуры тут ничего не понадобится. Мне всегда казалось, что в панораме главное качество и сшивка фото.
Sintesis
27.06.2011, 01:32
Всё чаще на форумах читаю о том, что Papervision заброшенный проэкт, он давно не обновлялся и для Molehill версии нет... Так что серьёзно изучать его не стоит. Для панорам может и подойдёт...
По поводу панорамы абсолютно согласен.
Качество фоток и их сшивка реально решают.
Сейчас паралельно штудирую PTGui- отличнейший софт для сшивки, ну и плюс наконец то смастерил более менее рабочую голову для штатива(для вращения вокруг нодальной точки).
Но это всё уже производные от первоначальной задачи - сделать 3Д тур своими руками, с целью дальнейшей возможной перспективы его применения (есть местечко, где не паханное поле $$$объектов)
А по поводу дальнейших задач - идея 3Д движка зацепила будь здоров.
Вот и хочется разобраться теперь уже более менее основательно что он может. А там глядишь и родится какая идея его применения. Ну или простой копи-паст чужой идеи, только разобрать её самостоятельно по болтикам. Как то так.
Одним словом третье измерение заполонило весь мой мозг :) Если честно, то даже не знаю что теперь приоритетней клепать туры или рыть движок дальше. Благо есть время
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.