Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #801881
ППЦ ребят вы даете

А что если я скромно предложу попробовать реализовать коллиматор под эп1 все же? Код этого шейдера смогут напрямую поюзать мододелы под эп1, а как только выйдет поддержка шейдеров в сдк для OB, код перенести можно будет либо с незначительными изменениями, либо вообще напрямую

KLIMaka
Крут, очень порадовала реализация коллиматора в действии.. а реально все же ограничивать отрисовку части примитива на границе прицела, через тот же самый стенсильный буфер например, чтобы не только точки отрисовывать можно было?
Old Post 21-12-2008 21:29
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KLIMaka
(Президент Мира - Броука!)

Зарегистрирован: Dec 2007
Проживает: Украина/Запорожье
Написал: 456 сообщений

Оценка: 28 Votes 28 чел.

Сообщение #801895
Да, Стоун, дело говоришь, ибо шо еп1 шо ОБ - один махер (на 99% уверен), и написать сейчас а потом неренести проще навена будет, чем потом копатся и вспоминать... К тому же до выхода шейдеров под ОБ и доработать можно, так сказать на практике. Ничего конечно обещать не буду, но постараюсь в ближайшее время выложить весь необходимый код и мануал к нему.

Насчет рисования разных маркеров подумаю... Со стенсилом слишком геморно, можно это попроще забацать, просто нужно дастать свой листик с карандашиком и немного векторы помалевать ))
Old Post 21-12-2008 22:20
KLIMaka отсутствует Посмотреть данные 'KLIMaka' Отправить Приватное Сообщение для 'KLIMaka' Найти другие сообщения 'KLIMaka' Добавить KLIMaka в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #802017
)) Мне б так, листик и карандашик - и получился шейдер! =)

Я думаю все будут очень благодарны, если такой код появится на нашем форуме!
Old Post 22-12-2008 09:14
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KLIMaka
(Президент Мира - Броука!)

Зарегистрирован: Dec 2007
Проживает: Украина/Запорожье
Написал: 456 сообщений

Оценка: 28 Votes 28 чел.

Сообщение #802021
Кароч я тут малевал-малевал и опять пришел к тому, что коллиматорный прицел можно сделать безо всяких шейдеров! Обыкновенной енвмапой это делается, как я и говорил! Тока я чет пока никак сделать не могу енвмапу кастомную. Фиш, твой тот тест должен правильно работать, просто как я уже говорил при больших размерах прицела появляются очень большие погрешности на близких дистанциях. Теоретитчески погрешность на нулевой дистанции равна радиусу прицела. С увеличением дистанции и уменшением диаметра прицела погрешность падает.

Вот так вот все просто оказалось, и ничего писать не нужно.
Old Post 22-12-2008 09:30
KLIMaka отсутствует Посмотреть данные 'KLIMaka' Отправить Приватное Сообщение для 'KLIMaka' Найти другие сообщения 'KLIMaka' Добавить KLIMaka в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KLIMaka
(Президент Мира - Броука!)

Зарегистрирован: Dec 2007
Проживает: Украина/Запорожье
Написал: 456 сообщений

Оценка: 28 Votes 28 чел.

Сообщение #802028
Вот немного теории

Окружность - наша енвмапа с маркером (красный пыптик). Зеленая точка - наблюдатель. Он смотрит на поверхность прицела. Шейдер вычисляет рефлект-векторы (оранжевые) в вершинах поверхности прицела (т.е. угол падения вектора от наблюдателя равен углу отражения).
Затем эти рефлект векторы выступают в качестве текстурных координат нашей енвмапы и все что находится между этими двумя координатами отображается между двумя вершинами.
Прикрепленная картинка: [посмотреть в полный размер]
2881e816a31d784c12f4b32e065ceb53
Old Post 22-12-2008 10:03
KLIMaka отсутствует Посмотреть данные 'KLIMaka' Отправить Приватное Сообщение для 'KLIMaka' Найти другие сообщения 'KLIMaka' Добавить KLIMaka в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #802062
Эээто всё замечательно, но ведь энвмапа должна сэмплится в пространстве энтити, а она сэмплится в мировом.
Или я всё неправильно понял?
Old Post 22-12-2008 11:43
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
KLIMaka
(Президент Мира - Броука!)

Зарегистрирован: Dec 2007
Проживает: Украина/Запорожье
Написал: 456 сообщений

Оценка: 28 Votes 28 чел.

Сообщение #802084
Мдя... а я уже думал что разобрались с этим )) Действительно, текстурные координаты нужно считать в пространстве объекта... прийдется всетаки писать шейдер. А я уж так расстабился. ))
Old Post 22-12-2008 13:21
KLIMaka отсутствует Посмотреть данные 'KLIMaka' Отправить Приватное Сообщение для 'KLIMaka' Найти другие сообщения 'KLIMaka' Добавить KLIMaka в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #802109
Клим, как то можно сделать, чтобы на любой дистанции правило было верным? Оо Например, автоподстройка под дистанцию на цель? А то ты говоришь, что для дальней стрельбы и ближней придётся делать по разному, а это не приемлиемо, игрок не настоящий военный, ему нужен простой инструмент, некогда там корректировки на дальность сделать...

Ну что-то вроде дальномера...
Т.е. если ближний бой - колиматор ведёт себя так, если дальний - вот так. А то сам, понимаешь, декорации никогда не бывают постоянными в расстояниях.

И... Ещё вопрос, под свойства баллистики, можно подстраивать как-нить? Т.е. с учётом дальности полёта пули? У настоящего колиматора, можно проекцию лазера настраивать таким образом, чтобы учитывать баллистические особенности полёта пули (m*g то бишь)...
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 22-12-2008 14:40
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #802113
Цитата:
Эээто всё замечательно, но ведь энвмапа должна сэмплится в пространстве энтити, а она сэмплится в мировом. Или я всё неправильно понял?

Воооот!!! Значит я был прав когда у меня в голове эта заноза сидела
Old Post 22-12-2008 14:47
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #802118
Кто бы сомневался *в попыхах перечитывая логи аськи* =)
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 22-12-2008 15:04
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #802123

У меня тож заноза сидела, но почему-то, хз почему, не высказал сразу..

KLIMaka, а я вот чё-то до сих пор не понял, как именно ты рализовал это дело.. Просто перпендикуляр из глаза на плоскость опускается, и в получившейся точке рисуется пятнышко? Получается имитация бесконечно удалённой точки, а было бы хорошо действительно делать трассировку для определения расстояния.. Получится расхождение с реальностью, но зато целиться легче) По-моему лучше предпочтение отдать удобству.
Old Post 22-12-2008 15:16
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KLIMaka
(Президент Мира - Броука!)

Зарегистрирован: Dec 2007
Проживает: Украина/Запорожье
Написал: 456 сообщений

Оценка: 28 Votes 28 чел.

Сообщение #802128
2 Фиш
Нельзя )) Я уже говорил, что погрешность зависит от радиуса прицела. Т.е. если объект находится прямо перед прицелом и стрелок смотрит не в центр прицела, то погрешность может составить величину, равную радиусу прицела. Смотря в упор через прицел на объект ( прицел не в центре видимости), точка будет указывать не на точку пересечения оси прицела с целью, а будет смещена на столько, насколько смещен центр видимости относительно оси прицела. Поэтому погрешность не может привысить радиуса прицела ( стрелок не может сместится относительно оси прицела на величину превышающую радиус без потери видимости маркера). Поэтому погрешность не критична, тем более она сходит на нет, при удалении объекта. При диаметре 40мм погрешность составит 20мм и это на нулевой дистанции. Сравнительно с размером обьекта (голова вражины например) это ничтожно мало.

Дальний-ближний - коллиматору абсолютно все равно. Он просто отображает на фоне цели объект (маркер), удаленный в бесконечность.

А оно надо вообще? Или вы баллистику делаете для того, чтоб у вас на пули гравитация действовала? Тогда, думаю, просто набор кубмап с маркерами сделать и их переключать в зависимости от необходимости. А на кубмапах рисовать маркер тем ниже, чем больше дальность.

Да, кста, Фиш, дай свою кубмапку с маркером, для теста

2 Маньяк
Просто именно так работает коллиматорный прицел. А речь шла именно о нем. С ретрейсом я не хочу парится, как по мне реальности достаточно. А насчет шейдера:

return float4(pow(dot(fvNormal, fvViewDirection),1000),0.0,0.0,pow(dot(fvNormal, fvViewDirection),1000));

Поправил KLIMaka 22-12-2008 в 15:29

Old Post 22-12-2008 15:23
KLIMaka отсутствует Посмотреть данные 'KLIMaka' Отправить Приватное Сообщение для 'KLIMaka' Найти другие сообщения 'KLIMaka' Добавить KLIMaka в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #802154
> return float4(pow(dot(fvNormal, fvViewDirection),1000),0.0,0.0,pow(dot(fvNormal, fvViewDirection),1000));
Угу, значит я всё прально понял.
Ладно, пусть для публики так остаётся) А я скорее всего текстурный прицел сделаю (нам ведь текстура нужна, а не точка, так, Фиш?).
Поведение пуль, кстати, учитывать в прицеле не стоит. В реальном прицеле этого ведь нет, да и сложновато больно выйдет)
Old Post 22-12-2008 16:52
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #802186
Ну коллиматор мы получим только в последней миссии, а там у нас бой на небольшой дистанции, не дальше 50 м, следовательно баллистику вообще можно упростить какой-нить глобальной энтитей, чтобы ресурсы сэкономить...
Скажем, чтобы они летели прямо, но в остальном, всё как положено - рикошеты, пробивание препятствий, время полёта и тра-ля-ля, ну ты понял... Расчёт гравитационных сил с учётом массы пули просто тут не нужен будет, ни для визуальных эффектов (Вроде трассеров. Пулемётов там не будет), ни для реализма... Даже на максимальной дистанции 50м не так уж сильно пуля выпущенная из винтовки падает, к тому же не везде там 50м будет, в основном ближний бой (5-20 м)...

А нужна конечно не точка.
У русского коллиматора "Кобра" для АК-74М прицел выполнен в виде галочки вверх (^).
К тому же текстуру надо будет сделать качественной и использовать новинку, ту что преобразует растровую текстуру в вектор, на вики чёта есть по этому поводу...

Так же, нужно оставить возможность загрузки кастомных прицелов, чтобы вот захотел я точку или крестик - нарисовал, прописал и готово. Помимо этого бы ещё отвязать это от свойства vmt под названием envmap, ибо создавать их ни vtex ни vtfplugin не умеют. Приходится череж жопу делать - билдить в игре, накладывая на чёрный бокс, в итоге больше 256х256 хрен вам, а не текстура...
Т.е. нужна обычная UnlitGeneric текстура, а-ля спрайт, в качестве той, что будет юзаться для колиматора или хотябы софт, умеющий делать енвмапы.
Само подключение желательно бы сделать в виде ключика в vmt, допустим:
$envmapcolimator "directory\vmtfile"
Т.е. тут подключение vmt другой текстуры, или же можно написать несколько параметров, для того, чтобы настроить vtf для колиматорной метки, но это помоему будет сложнее...
Ну и на счёт дальности тоже какие-нить параметры, через прокси например изменяющиеся, например прокся вычисляющая дистанцию до цели, и прокся сравнения, если дистанция больше такого-то числа, то переключить режим колиматора (сменить такой-то параметр), ну что-то вроде того...
Было бы сверх полезно, если бы помимо этого, сам прицельный маркер полностью игнорировал прозрачность базовой текстуры, что при $Alpha "n", что при $Translucent 1, так, чтобы можно было, например, сделать полупрозрачный запачканый прицел, но прозрачность не сказалась бы на прозрачности прицельного маркера колиматора, иными словами, чтобы он не стал полу-прозрачным вместе с самой текстурой... =)

Клим, держи (на самом деле там 4 точки, но это пофигу, видно только центральную):
Прикрепленный файл: crosshair_m4_envmap.rar
Файл был скачан 7 раз(а).
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 22-12-2008 17:53
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #802228
> Расчёт гравитационных сил с учётом массы пули просто тут не нужен будет
Да это одно умножение и одно сложение) По сравнению с тем, какие там аццкие рассчёты сопротивления (не говоря уж о трассировке), выигрыша вообще никакого не будет. =)

> использовать новинку, ту что преобразует растровую текстуру в вектор
Та ну нафик) Всего одна текстурка, нам же не уберсложный худ как в тф2 городить) В этом ведь ещё разбираться надо хз-сколько..

> нужно оставить возможность загрузки кастомных прицелов
Эт само собой) Просто в материале прописать текстурку - "хоть голую бабу ставь"))
Ну а от энв-мап это зависеть точно не будет, ибо метод будет другой.

> Ну и на счёт дальности тоже какие-нить параметры ...
И кресло с подогревом и вибромасложором)) Это я к тому, что сверх шейдера по мере надобности можно будет навертеть что угодно.

> чтобы можно было, например, сделать полупрозрачный запачканый прицел
Как два пальца об асфальт))
Old Post 22-12-2008 19:01
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 14:03.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены