Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 04.06.2007, 21:17   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Вопрос Как "спроецировать" картинку на плоскость?

Доброго вам времени суток, вот опять я задаю ещё один вопрос.

В-общем, у меня есть плоскость и картинка. Я хочу, чтобы картинка "проецировалась" на эту плоскость так, как будто плоскость - это эдакое "окошко", через которое видно кусочек картинки. На рисунке я даже чуть поменял прозрачность шоп было понятно. Так же обозначил индексы точек. Подскажите, какая должна быть текс. развёртка в таком случае у плоскости, а ещё лучше скажите принцип по которому расставлять точки по текс. координатам. Сам уже неделю с этой проблемой м#%охаюсь, наконец решил спросить на форуме - по тому принципу, по которому я делаю вылазит только набор глюков....
Рисунок - вот:



Я думаю, что Текстурные координаты должны располагаться так же, как и по экрану, отсюда способ решения проблемы: мы находим координаты точки на экране при помощи CameraProject, потом полученное делим на ширину и высоту экрана (картинка как бы на весь экран), получая при этом U и V координаты точки, а затем тут же их и применяем. Но всё равно ничего не получается. Вот функция:

[blitz]Function Project(cam,ploskost)

For i=0 To CountVertices(GetSurface (ploskost,1)) - 1

CameraProject cam, VertexX(GetSurface(ploskost,1),i) ,VertexY(GetSurface(ploskost,1),i) ,VertexZ(GetSurface(ploskost,1),i) ; проецируем координаты точки на экран
VertexTexCoords GetSurface(ploskost,1),i, ProjectedX()/GraphicsWidth(), ProjectedY()/GraphicsHeight() ; назначаем нужные текстурные координаты.

Next

End Function[/blitz]

Если кому интересно, то вот работающий исходнег сего, там всё прокомментировано.

Вопрос: это принцип неверный или я неправильно написал функцию?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 05.06.2007, 14:32   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Вопрос Может, я непонятно объяснил?

Вот ещё для облегчения понимания что мне надо, пример, намалёванный мной в 3Д Студио Макс 8.0. Всё внимание на вид Front. Назначьте плоскости какую-нить картинку, неважно какую, (для тех, кто не разбирается в Максе - просто перетащите картинку из "проводника" на объект в Максе), а потом эту же картинку назначьте в фон окна проекции Фронт (Alt+B, затем жмём кнопку Files и выбираем нашу картинку) - и вы поймёте, о чём я тут говорил. В Блице делаю по тому же принципу, но ничего не выходит Может, это связано с какими-то особенностями Блитза?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 05.06.2007, 19:51   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Подмигивание Разобрался

Всё, уже не надо, разобрался, работает
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 05.06.2007, 21:09   #4
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Как "спроецировать" картинку на плоскость?

Поделись с остальными решением.
(Offline)
 
Ответить с цитированием
Старый 06.06.2007, 21:54   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Подмигивание Re: Как "спроецировать" картинку на плоскость?

Не знаю, чем это вызвано, но проблема решилася разбиением плоскости на сегментики (типы как в клеточку). Глюки эти остались, но размер и заметность их намного уменьшилась. Кстати, у меня получилось то, для чего я эту проекцию делал (рябь на воде ещё усилил путём прибавления к U и V координатам рандомного числа):



Гы, всего 2 рендера за цикл (против старых 8-ми с хреновой кубомапой)

З.Ы. Интересно было бы всё-таки разобраться, чем вызваны искажения, ведь все вертексы попадают именно на то место текстуры, куда им и положено (проверял 100 раз), на этом и основано то, что при разбиении на сегменты глюки уменьшаются. Возможно, это особенности Блитза? Может, Diplomat или jimon что-то сажут?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 06.06.2007, 23:19   #6
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: Как "спроецировать" картинку на плоскость?

Гы, всего 2 рендера за цикл (против старых 8-ми с хреновой кубомапой)
Для воды я бы сделал не чаще чем 1 раз в секунду, ато и менше!
(Offline)
 
Ответить с цитированием
Старый 06.06.2007, 23:22   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Как "спроецировать" картинку на плоскость?

Я чо то скажу
Я: CameraProjMode cam,2
(Offline)
 
Ответить с цитированием
Старый 07.06.2007, 00:03   #8
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Re: Как "спроецировать" картинку на плоскость?

HolyDel, при чём тут изометрия?
в строчке

CameraProjMode cam,2

cam - это камера рендера воды, как я понял?

vlad, фигзнат, у меня вроде производительность норм.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 07.06.2007, 01:07   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Как "спроецировать" картинку на плоскость?

при том что именно изометрия вызывает то что можно наблюдать в примере кода из первого поста, и это (глюком назвать не могу) уменьшается при разбиении плоскости.
т.е. та часть тексы что ближе к нам становится больше (при изометрическом рендеринге, а не ортографическом) и поетому получается несостыковка (ето особенно заметрно на прилегающих гранях полигона).
добавь ету строчку в свой пример из первого поста ("глюков" конечно будет еще больше, но смысл станет ясен).
(Offline)
 
Ответить с цитированием
Старый 07.06.2007, 22:05   #10
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: Как "спроецировать" картинку на плоскость?

vlad, фигзнат, у меня вроде производительность норм.
Это потому что у тебя на экране ничего нет!!!
Самолет и дерево- пройдут резко, ты даже и незаметиш... а когда будет дохрена моделей что единственый рендер трещит по швам, и у тебя будет второй!!!
Суть в том что производительность уподет почти в двое!
Выход- рендер воды обновлять не сильно часто, до минимума свести дальность прорисовки 2 камеры, и по возможности во время рендера воды заменять многополегонные модели на лоу поли модельки !!!
И будет у тебя быстрая водичка
(Offline)
 
Ответить с цитированием
Старый 07.06.2007, 22:29   #11
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Re: Как "спроецировать" картинку на плоскость?

vlad, у меня уже есть удобная система ЛОДов, так что с этим проблем не будет
Ну, а так же уу меня есть некоторые вычисления, которые второй раз за тик происходить не будут - а значит, вдвое производительность не упадёт (максимум - в 1,3-1,5 раза)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 08.06.2007, 03:30   #12
НУБ
Бывалый
 
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений
(для 102 пользователей)
Re: Как "спроецировать" картинку на плоскость?

vlad
нельзя обновлять реже чем 1 раз за кадр, т.к. комера вертится постоянно, это же не кубмапа
во 2м рендере отражение рендерится в меньший РТ, также можно уменьшить детализацию и скрыть малозаметные объекты.

ABTOMAT
Всё это было сделано почти 2 года назад и лежит в открытом виде, причём работает быстрее
(Offline)
 
Ответить с цитированием
Старый 08.06.2007, 16:14   #13
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Re: Как "спроецировать" картинку на плоскость?

НУБ, я знаю, что Ashadow выглядит намного лучше того, что у меня и работает быстрее за счёт юзанья шейдеров 1.1 , но я, закончив делать свою игру (дай Бог, это всё-таки случится) хочу сказать:
"А вот я всё делал сам и не использовал ничего стороннего"
Так шо извиняй...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 08.06.2007, 19:50   #14
НУБ
Бывалый
 
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений
(для 102 пользователей)
Re: Как "спроецировать" картинку на плоскость?

ABTOMAT
аа, ну так бы сразу и сказал
Но тогда зачем ты постоянно задаёшь вопросы на форуме, ведь тогда получается, что ты это делаешь не сам.
(Offline)
 
Ответить с цитированием
Старый 08.06.2007, 21:04   #15
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Re: Как "спроецировать" картинку на плоскость?

НУБ, как это не сам? По крайней мере, никто за меня ещё ничего не сделал, а вопросы я задаю чтобы понять то, чего я не знаю, иначе зачем тогда форум?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли сделать так чтобы при нажатии "вверх" и "вниз" двигалась одна картинка, а при нажатии "вправо" и "влево" - другая Total_Nube_&_Lamo Основной форум 2 13.12.2009 22:00
"Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов" Richik Библиотеки 17 03.06.2009 14:18
"DarkWing Duck" aka "Черный Плащ" Chrono Syndrome Болтовня 19 04.12.2007 16:05
Игра "Три слова". Рассказ "Время планет" Ilyich Юмор 77 02.04.2007 17:49
"DebugLog и память" или "юзаем аккуратно" impersonalis FAQ 7 11.01.2006 04:14


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com