![]() |
Как "спроецировать" картинку на плоскость?
Доброго вам времени суток, вот опять я задаю ещё один вопрос. :mda:
В-общем, у меня есть плоскость и картинка. Я хочу, чтобы картинка "проецировалась" на эту плоскость так, как будто плоскость - это эдакое "окошко", через которое видно кусочек картинки. На рисунке я даже чуть поменял прозрачность шоп было понятно. Так же обозначил индексы точек. Подскажите, какая должна быть текс. развёртка в таком случае у плоскости, а ещё лучше скажите принцип по которому расставлять точки по текс. координатам. Сам уже неделю с этой проблемой м#%охаюсь, наконец решил спросить на форуме - по тому принципу, по которому я делаю вылазит только набор глюков.... Рисунок - вот: ![]() Я думаю, что Текстурные координаты должны располагаться так же, как и по экрану, отсюда способ решения проблемы: мы находим координаты точки на экране при помощи 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] Если кому интересно, то вот работающий исходнег сего, там всё прокомментировано. Вопрос: это принцип неверный или я неправильно написал функцию? :dontknow: |
Может, я непонятно объяснил?
Вот ещё для облегчения понимания что мне надо, пример, намалёванный мной в 3Д Студио Макс 8.0. Всё внимание на вид Front. Назначьте плоскости какую-нить картинку, неважно какую, (для тех, кто не разбирается в Максе - просто перетащите картинку из "проводника" на объект в Максе), а потом эту же картинку назначьте в фон окна проекции Фронт (Alt+B, затем жмём кнопку Files и выбираем нашу картинку) - и вы поймёте, о чём я тут говорил. В Блице делаю по тому же принципу, но ничего не выходит :''(( Может, это связано с какими-то особенностями Блитза?
|
Разобрался
Всё, уже не надо, разобрался, работает ;)
|
Re: Как "спроецировать" картинку на плоскость?
Поделись с остальными решением.
|
Re: Как "спроецировать" картинку на плоскость?
Цитата:
|
Re: Как "спроецировать" картинку на плоскость?
Я чо то скажу ;)
Я: CameraProjMode cam,2 |
Re: Как "спроецировать" картинку на плоскость?
HolyDel, при чём тут изометрия?
в строчке CameraProjMode cam,2 cam - это камера рендера воды, как я понял? vlad, фигзнат, у меня вроде производительность норм. |
Re: Как "спроецировать" картинку на плоскость?
при том что именно изометрия вызывает то что можно наблюдать в примере кода из первого поста, и это (глюком назвать не могу) уменьшается при разбиении плоскости.
т.е. та часть тексы что ближе к нам становится больше (при изометрическом рендеринге, а не ортографическом) и поетому получается несостыковка (ето особенно заметрно на прилегающих гранях полигона). добавь ету строчку в свой пример из первого поста ("глюков" конечно будет еще больше, но смысл станет ясен). |
Re: Как "спроецировать" картинку на плоскость?
Цитата:
Самолет и дерево- пройдут резко, ты даже и незаметиш... а когда будет дохрена моделей что единственый рендер трещит по швам, и у тебя будет второй!!! Суть в том что производительность уподет почти в двое! Выход- рендер воды обновлять не сильно часто, до минимума свести дальность прорисовки 2 камеры, и по возможности во время рендера воды заменять многополегонные модели на лоу поли модельки !!! И будет у тебя быстрая водичка ;) |
Re: Как "спроецировать" картинку на плоскость?
vlad, у меня уже есть удобная система ЛОДов, так что с этим проблем не будет ;)
Ну, а так же уу меня есть некоторые вычисления, которые второй раз за тик происходить не будут - а значит, вдвое производительность не упадёт (максимум - в 1,3-1,5 раза) |
Re: Как "спроецировать" картинку на плоскость?
vlad
нельзя обновлять реже чем 1 раз за кадр, т.к. комера вертится постоянно, это же не кубмапа ;) во 2м рендере отражение рендерится в меньший РТ, также можно уменьшить детализацию и скрыть малозаметные объекты. ABTOMAT Всё это было сделано почти 2 года назад и лежит в открытом виде, причём работает быстрее ;) |
Re: Как "спроецировать" картинку на плоскость?
НУБ, я знаю, что Ashadow выглядит намного лучше того, что у меня и работает быстрее за счёт юзанья шейдеров 1.1 , но я, закончив делать свою игру (дай Бог, это всё-таки случится) хочу сказать:
"А вот я всё делал сам и не использовал ничего стороннего" Так шо извиняй... |
Re: Как "спроецировать" картинку на плоскость?
ABTOMAT
аа, ну так бы сразу и сказал :) Но тогда зачем ты постоянно задаёшь вопросы на форуме, ведь тогда получается, что ты это делаешь не сам. |
Re: Как "спроецировать" картинку на плоскость?
НУБ, как это не сам? По крайней мере, никто за меня ещё ничего не сделал, а вопросы я задаю чтобы понять то, чего я не знаю, иначе зачем тогда форум? ;)
|
Часовой пояс GMT +4, время: 00:43. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot