![]() |
Имитация водной поверхности.
Подобрал уравнения деформирующие плоскость. Пока сильно подтормаживает, но это от апдэйта нормалей. :) Вроде красиво изгибает меш.
|
Ответ: Имитация водной поверхности.
1. Почему нет кода ?
2. Это будет всегда подтормаживать, так-что не юзабельно, разве что если у тебя в игре будет только вода и одна лодочка. |
Ответ: Имитация водной поверхности.
Эффектно, завороженно смотрел на поверхность минут 5.
AMD X2 6000+, 4Gb ОЗУ, HD4770 - стабильно 70-75 фпс |
Ответ: Имитация водной поверхности.
Тю, по опыту сдесь код выходящий за рамки кода в справке не анализирут :D
Но вот: Пока просто лениво считать нормали к точкам, без апдейта это в 5-6 раз резче, плюс можнозамутить перерисовку меша по типу террэйна. Только зачем мне это в пародии на МОО :D Это эскиз вообще без оптимизации. 1-wireframe |
Ответ: Имитация водной поверхности.
да ) неплохо ) вот еще сделать красивую водную поверхность, и постэффекты, и получится шикарно )
|
Ответ: Имитация водной поверхности.
автор, переходи на dx9+ движки, вертексными шейдерами не будет тормозить)
|
Ответ: Имитация водной поверхности.
Исчо вариант - убрать мелкую рябь, уменьшить полигонаж воды раз в 5. а рябь заменить ревлективным/рефрактивным бампом из FastExt или Ashadow)
|
Ответ: Имитация водной поверхности.
У автора просто видать хобби... Как и все остальные он пытается из не возможного делать реальные вещи и при чем это получается довольно таки не плохо ;)
|
Ответ: Имитация водной поверхности.
Класс!По-истине релаксирующая водичка,еще бы текстуру натянуть,песчаный берег,крабик,камешек,ракушка,дельфиничика,чаек,пен у от разбивающихся об брег волн...
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Хм. Где то читал, что уровень графики современных игр должен быть посильным для первых пней если код будет правильный :)))
С++ мне тяжело. Пуре бэйсик с отвратительной справкой по командам. Плюс за месячишко мне блитц не надоел:) . Я пока даже не дошел до коллизий :) В блитце мне не хватает только нормальной скорости в рисовании, ведь даже простого анализа изображения не замутить :( А над этим надо думать(я про воду). В основном надо придумать хитрую функцию меша. Потому как этим уравнениям фиолетов уровень детализации, просто частую сетку оно изогнет разнообразней, оно как фрактал :) Надо только уравнения подобрать, что бы волны в бублик скручивало. И потом при желании транслировать алгоритм в другой язык элементарно :) По моему я щас работаю практически с опенжлом :) И да, скоро я буду вспоминать термех :D Это просто волны, когда выведу коэффициенты можно будет имитировать от ряби до шторма :) И надо еще с логарифмами и тангенцами поэксперементировать :) |
Ответ: Имитация водной поверхности.
dsd с АВТОМАТ-ом могли бы сделать "Минекрафт получше"
|
Ответ: Имитация водной поверхности.
dsd, дык, под Blitz3D, есть Xors3D - а там есть и шейдеры. А они позволяют в функции вершинного шейдера, в реальном времени изменять позицию и любые другие параметры вершин со сложными формулами с очень отличной производительностью (на то и шейдеры).
И в современных играх, используют именно их. |
Ответ: Имитация водной поверхности.
;нужно сделать что бы в зоне видимости камеры была плоскость.
; А вне зоны ее не было. Отсечение ненужного легко решается задачей четырех плоскостей отгораживающих невидимое ; уравнение плоскости ax+by+cz=0 d не нужно так как плоскость проходит через начало координат ; Нужно в координатах камеры найти линии пересечения плоскости воды и клипплэйнов. Это первый этап. Видимость точки определяется легко потому как нормаль имеет длину 1 а уравнения плоскостей приведены к нормальному виду и расстояние от точки до поверхностей считается легко ; ;Этап второй нужным образом а именно линиями расположенными перпендикулярно нормальному вектору связывающему точку проецирующий на камеру в graphicswidth().2 и последовательно расположенную высоту имею рассчитываемые координаты точек, которые перевожу в координаты меша ; Чем дальше от камеры тем шире ряды. ;Рассчитываю полученные из ничто исходные координаты точек меша, считаю новые ставлю точки в полученные натягиваю сюрфэйс. Хитрым финтом для каждой точки из уравнения извлекаю нормаль ;ставлю нормаль. Придумываю как завязать текстурные координаты на глобальные, что бы текстура не дрожала. Профит. Вот вроде просто :))) Но программирования тут раз в 20 меньше математики :) Мока, мне триалов для медитаций не хватает :) и на вид ксорс не лучше блитца. Да и жадный я:)))) |
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
Блиц хуже Хорса по всем параметрам, он уже слишком стар чтобы с кем-то тягаться. Да и апдейты на него раз в год по обещанию. Цитата:
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Почему хорс? А не EsenthelEngine? Или не огре? В есеншле мне примеры понравились :)
Кстати Hmax*sin^2(f(t)+k) очень удобно для прыжка. Если назначить на координату высоты то разницы почти не видно :) Я таки оптимизирую воду, в частном случае оно проще, если не давать камере наклоняться в стороны. |
Ответ: Имитация водной поверхности.
Цитата:
.Squid - посещает наш форум, так что есть прямая поддержка. Плюс, если найдёшь реальный баг - поможешь проекту. EsenthelEngine - это узко заточенный движок, для C++. Огр - для тебя думаю будет там слишком много гемора и другой мороки, за место реальной реализации задуманных вещей. Огр тоже С++. Если тебя привлекает "сразу к делу", то Blitz в этом случае очень удобен. А Xors3D, т.к. DX9, позволяет работать с шейдерами и другими плюшками. Дело твоё, тут скорее идут дельные предложения, чем вербовка или т.п. |
Ответ: Имитация водной поверхности.
Примерно с час массировал мозг справочником Выгодского. Пришел к выводу, что пытаться честно генерировать меш с непериодической сеткой в прямом эфире быстро возможно, но для этих целей надо найти и похитить аутичного аспиранта с кафедры матана :D А лучше двух и с разных кафедр.
В общем решил я пользоваться специально сгенерированным мешем. Вуаля, первое приближение :) Пока без координат текстур :wild: И ведь к этой поверхности легко привязать предметы.>>:( |
Ответ: Имитация водной поверхности.
|
Ответ: Имитация водной поверхности.
Приближение №2. Уже без швов. Теперь бамп мог бы пригодиться :rolleyes:
Кто там говорил про один кораблик? |
Ответ: Имитация водной поверхности.
Вложений: 1
с преломлением из fastext смотрится довольно-таки неплохо!
|
Ответ: Имитация водной поверхности.
Чутка поднял разрешение и набросал мусора на воде :)
Слегка облагородил сами уравнения. Чего явно не хватает кроме брызг с гребней? |
Ответ: Имитация водной поверхности.
|
Ответ: Имитация водной поверхности.
На встроенном в 945 чипсет не работает. Запускает, но не рисует. А большой брат недобука мертв :)
|
Ответ: Имитация водной поверхности.
Вывел коэффициенты в название функций, теперь их тоже можно регулировать функциями. Долой однообразные волны :D
В принципе осталось только приделать частицы, чтобы точки с 95% от максимальной высоты плевались брызгами, найти хорошие текстуры и в принципе вода как в первых корсарах готова, можно еще и отражение наложить, это не тяжелый процесс. Но в общем вроде финиш, на воду пусть и не похоже, но на большую лужу жидкости в ветер определенно. |
Ответ: Имитация водной поверхности.
|
Ответ: Имитация водной поверхности.
Nite, ссылка не работает.
По моему я между делом, почти написал свой террэйн :). |
Ответ: Имитация водной поверхности.
Работает.
dsd - изобретает давно изобретённые велосипеды.. |
Ответ: Имитация водной поверхности.
Не работает у меня и все.
И шо? Может я люблю велосипеды :D Особенно старинные :D |
Ответ: Имитация водной поверхности.
Вложений: 1
Цитата:
Цитата:
|
Ответ: Имитация водной поверхности.
теперь осталось дело за малым - написать к этой воде альфа-сортировку ;-)
|
Ответ: Имитация водной поверхности.
По моему моя вода интерактивней, что ли. Видимо все решили что я хотел сделать воду похожей на воду чисто визуально, отнюдь :D. Но с водой я на ближайшее время закончил :) Терь хочу сделать то ли лес полигонов на 10к то ли облака в несколько слоев на 3к полигонов :)
|
Ответ: Имитация водной поверхности.
Что такое шэйдеры(я так понимаю нечто похожее на то, что я делал с водной поверхностью, только универсальней и удобней)? Правильно ли я понимаю, что хорс от блитца отличается ими, а по манипуляциям с геометрией и логикой нет?
|
Ответ: Имитация водной поверхности.
Что такое шейдер
главное различие между Xors3d и Blitz3d: первый - dx9, второй - dx7. Как то так. Ксорс шустрее работает, но (из личного опыта) на слабых машинах Блицевый директ7 работает быстрее чем Ксорсовый директ9 (например на нэтбуке, столкнулся с дикими тормозами при переписывании своих танчиков на ксорс. А на чистом блице всё отлично летает). зыЖ Водичка красивая :super: |
Ответ: Имитация водной поверхности.
Я понимаю, что шэйдер это 9 директикс, но меня больше интересует смысловая нагрузка вкладываемая в этот термин. (причем в словах понятных даже обезьяне) А насчет производительности на нетбуках, мне как то фиолетово, я пока трезво оцениваю свой уровень, и его на большее чем шарик прыгающий по платформам не хватает на данный момент, а такого гэ сейчас больше, чем порнографии :D
|
Ответ: Имитация водной поверхности.
Цитата:
Не только шейдеры, также там есть много других фичей, как встроенные тени, своя физика, и многое другое.. |
Ответ: Имитация водной поверхности.
Вот физика и тени, мне как инженеру пгс прям таким непреодолимым препятствием не кажутся. Я по сути ими на начерталке и (сопрамате, термехе, строймехе и др гэ) занимался фактически профессионально. Что такое шэйдер?
|
Ответ: Имитация водной поверхности.
Цитата:
+ Есть разновидности. Вершинные(Как у тебя) и Пиксельные. Жду лес и террейн) |
Ответ: Имитация водной поверхности.
Т.е. С учетом производительности нормальной видеокарты я могу на кадр делать несколько милионов таких операций O_o?
|
Ответ: Имитация водной поверхности.
Террэйн теже уравнения зависимые от x и у, либо от data(не в смысле времени). Лес сложней, ибо я хочу деревца как тестдрайве замутить. Причем сплайнами я это дело почти сделал, а с моими самописными квадами, можно на дерево 1000 листиков приклеить, основная проблема это выбирать деревья для детализации и расположения листиков, ничего умнее чем создать в 3дмаксе массив точек служащих координатой для каждого листа пока вообразить не смог :)
|
Ответ: Имитация водной поверхности.
Шейдерный процессор, специально создан инженерами, чтобы обрабатывать огромный поток данных, однообразными математическими операциями. Например вода - тебе нада двигать пиксели, так вот в шейдере, ты можешь реализовать вычисления для каждого пикселя, при этом это будет на уровне GPU, и очень шустро, тысячи вершин за мелкие наносекунды.
То что делаешь сейчас ты, осуществляется процессором - а это гонения инфы из ОЗУ, через бус в процессор, затем обратно, и затем с ОЗУ на ГПУ. В Шейдерах, вс делается сразу на ГПУ, и вычисляется шейдерным процессором, что очень шустро. В пиксельном шейдере, ты можешь делать что угодно с каждым пикселем на экране, также с огромной скоростью. Так например можно сделать крутое отражение и рефракцию, с красивым эффектом и переходом используя FallOff. Что добавит объёма и физики отражения волнам. Также, многие эффекты волн, можно симулировать используя нормал карты, большие волны - геометрия, а мелкие и рябь - нормал карты. В общем, дерзай ;) |
Ответ: Имитация водной поверхности.
Цитата:
в общем, МоКа всё правильно написал. |
Ответ: Имитация водной поверхности.
Простыми словами шейдер это программа для видеокарты. Можно в некотором роде считать что ты программируешь видеокарту, как ей рисовать твою сцену.
|
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
Mr_F_, поверьте причины сподвигшие меня на эксперименты с блитз не совсем тривиальны :) И да, программист тоже инженер:) |
Ответ: Имитация водной поверхности.
dsd
Начерталка - это одно дело, но инженерия в плане программного обеспечения - другое. Наличие хорошего мозга - это не заслуга начерталки. Я тоже занимался архитектурингом, полтора года отработал ассистентом, под конец всё сам делал. И считал тоже (инженерия) конструкции. Круто конечно, развивает некоторые аспекты логики и способности, что влияют на общую степень образованости и прогрессивности в мышлении, но не имеет ничего общего с програмным обеспечением. Тут с тенями например, тоже смекалка. И тени в next-gen - это не геометрия вовсе, там всё совсем иначе, например Shadow Maps - вообще никакой связи с геометрией, там чисто смекалка.. |
Ответ: Имитация водной поверхности.
Никто не спорит что ты взяв циркуль (или че там надо (не обучен начерталке)) построишь тень. Однако в 3д графике используются несколько другие методы (есть даже пара вариантов на блице), ибо нужна высокая производительность.
|
Ответ: Имитация водной поверхности.
Да это глупо сравнивать такие вещи, это как художник скажет химику что он может создать любого типа краситель, ведь он работает с цветом!
|
Ответ: Имитация водной поверхности.
Нашел приличную текстуру воды и прилепил велосипед. Теперь похоже на воду:tongue:
|
Ответ: Имитация водной поверхности.
Давно писал на шейдерах, когда только начинал это дельце изучать.
Более реалистично и с красивенькими рефлекциями и рефракциями. Основной "прикол" в том что тут не юзается никакая деформация геометрии. Волны да, для озёрной воды, или мелких источников, не для океана или моря. Но и это дело можно сделать, нада тупо посидеть.. ![]() ![]() Более ранние потуги: ![]() ![]() |
Ответ: Имитация водной поверхности.
Если ввести переменную связанную с глубиной, т.е. Фактически высота воды — высота террэйна в данной точке, и найти ближайшую точку пересечения плоскости воды с террэйном(для изменения направления распространения волны), то можно организовать практически правильный прибой(изменение волн по мере приближения к берегу). Надо найти таки математическую модель воды :) походу довольно легко можно организовать интересную в игровом плане воду.
|
Ответ: Имитация водной поверхности.
Цитата:
Это делается один раз лишь, можно даже сделать предрасчётом в редакторе, и сохранить в файл, и грузить из файла инфу, чтобы не делать большие расчёты при загрузке игры. Далее, всё очень просто, в вершинном шейдере делаем все расчёты волн, плюс учитывая один из каналов цвета у вершины который мы сохранили, мы знаем где прибой, и таким образом можно сделать при повышении волны в том месте, повышать на 50% выше. Плюс - это как маска для пены. Всё просто на деле, но нужно найти смекалку, сделать маленькое исследование и затем тупо реализовать. Многим это проблематично, т.к. они не могут найти решения до реализации, и начинают много эксперементировать.. Также, используя depth карту, можно реализовать плавный переход воды: ![]() |
Ответ: Имитация водной поверхности.
А как в хорсе кол-во точек в сюрфэйсе посчитать? О_о Вроде команда есть, но в справке её вроде нет.
|
Ответ: Имитация водной поверхности.
так же, как и в блице.
наскоко я помню ещё в блице сюрфейсы по непонятной причине начинались с 1, а в ксорсе, как положено, с 0. |
Ответ: Имитация водной поверхности.
Хм, короче надо экспериментировать с начала, пока выяснил, что в хорсе поверхности начинаются с 0, а не 1 как в блитце. Вот не люблю я этого, чилды с единички, а вертексы с нуля :)
Это не единственное отличие судя по мавам моей воды, не получилось на прямую портануть воду добавкой x :-D |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Ну значит пригючилось мне, но по моему чилды имеют номера с 1, а не с 0.
|
Ответ: Имитация водной поверхности.
Вложений: 1
|
Ответ: Имитация водной поверхности.
Как вертикальную синхронизацию убить в хорсе? Хочу полную скорость, а то так не понятно лучше хуже мои 3д извращения. Или проще таймеры ставить и мерять по функциям?
|
Ответ: Имитация водной поверхности.
xGraphics3D(width, height, depth = 16, mode = 0, vsync = 0)
последний параметр это она |
Ответ: Имитация водной поверхности.
Глупый вопрос, а где скан коды клавиш? Они вроде отличаются от блитцевских.
|
Ответ: Имитация водной поверхности.
нене, не отличаются.
|
Ответ: Имитация водной поверхности.
А вот это написание xKeyHit(KEY_ESCAPE) Где взять можно, нравица оно мне
|
Часовой пояс GMT +4, время: 08:08. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot