[WT] [Архив] [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Первые 100 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 4274)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером не более 10000 кБ.
  • Ныне 2606 unique user posts. Посмотреть каталог
  • Радио:
Файл: 130303824874.jpg-(109.04KB, 600x879, e49b443d9d772bb375ee2c9531716ec4.jpg)
4274
No. 4274 watch    
Вброшу свой крузис.
http://sourceforge.net/projects/rr-rr/
Развернуть все изображения
No. 4275    
Больше всего понравился чайник.
No. 4276    
Файл: 130304557234.jpg-(148.40KB, 700x500, refl.jpg)
4276
>>4275
Сам балдею.
No. 4277    
Файл: 130304987396.jpg-(87.22KB, 1024x650, 307.jpg)
4277
>win-only
>.rar
>.rar
>.rar
>.rar
>.rar
>.rar
>.rar
>.rar
>.rar
>.rar
>Пикрелейтед

А еще я могу только позавидовать твоему упорству, написать столько кода на непригодном для этого языке.
No. 4280    
Файл: 130306118810.jpg-(276.16KB, 595x842, 129564622739.jpg)
4280
>>4277
Я ждал этого поста. :3
Кроссплатформ задумывался давно (видно по инклюдам), но мне лень его прикручивать, ибо вендоблядок. Платформ-специфик кода немного совсем, спасибо SDL+OpenGL.
Ну а фрипаскаль - язык богов.

>Пикрелейтед
ЧТО ЗА АДСКАЯ ВИДЯХА?
Хотя если запускал под вайном, то всё ок.
No. 4282    
Файл: 130306784377.jpg-(238.64KB, 840x672, 1266169553558.jpg)
4282
ОП молодец! Так держать и удачи тебе.
Дело в том, что я тоже давно пытаюсь сделать нечто подобное, но когда начинал было очень мало опыта, поэтому многие части сейчас перепроектирую и переписываю, и показать соответственно нечего.
Несколько вопросов к тебе:
1. Движок полностью свой?
2. Форматы моделей и текстур придумывал и загружал сам? Зачем тогда нужен devIL?
3. Откуда моделька и анимации суигинты?
4. Чтобы получился плавный переход между анимациями, они смешиваются? Уж очень неплохо движение получилось
5. Тени, на сколько понимаю, рендерятся в текстуру?
6. Не пробовал сделать территорию по карте высот? Тогда ее можно неплохо оптимизировать, ROAMом например
No. 4283    
Файл: 130307503974.jpg-(141.62KB, 640x480, 20b6ed2149538767f3909e723fdb6bbf.jpg)
4283
>>4282
Спасибо.
> перепроектирую и переписываю
Перманентно этим занимаюсь :3
Ну что ж, по порядку.

1. Да.

2. rawraw, rwbinmesh - свои, причём ориентированные на хранение данных в том же формате, что и в видеопамяти. Этим rawraw похож на DDS. DevIL загружает всё остальное; если нет PNG и проч., его можно отключить, но пока для этого нужна перекомпиляция.

3. Свои. Формата анимации пока нет, поэтому полёт и бег, о ужас, прописаны в Main. Поленился писать экспорт скиннинга из Collada (да и с весами костей в максовском Skin не до конца разобрался), в следующий раз не поленюсь. По этой же причине подбирал повороты [почти] вручную.

4. Анимация скелетная, кости поворачиваются кватернионами, так вот, для них придумали slerp, но с очень небольшой (<1°) погрешностью можно юзать тупую линейную интерполяцию. Получается взвешенная сумма нужных анимаций.

5. Да, как и отражения-преломления. Серьёзный недостаток - пикселизация тени увеличивается с увеличением расстояния от источника. PSM до сих пор не осилил. Для постпроцесса буду рендерить в текстуру вообще всё.

6. Нет... думаю обойтись столкновением сфера<->меш, а ландшафт разбивать на куски, скажем, 5x5 метров, для которых, как для обычных объектов, будут задействованы LOD'ы.

Генерация облаков (точнее, турбулентности на основе шума Перлина): дописать в scenario.rw
>texture {dims 512 512 generate turbulence scale 8 freq 8 save2bmp "noise.bmp"}
No. 4285    
Фишка крузиса в "обычной" уже охуенной графике на ближних расстояниях и размытой на дальних, вместо тумана. Раньше запиливали просто туман на некотором расстоянии так что отдаённые объекты небыло видно или выкручивались по другому. А в крузисе это не нужно.
No. 4288    
D:Temprr>main
rwDebug watches you
Words for random resource names: 2174
refl1: resolution changed to 256
5024 cdtrimeshes: 1.903 Mbytes
An unhandled exception occurred at $0148F878 :
EAssertionFailed : Some memory leaks by classes here: rest of allocatedByClasses is 7919, but must be 0. (rwObjects.pas, line 118)
$0148F878

Думал, намного лучше будет это всё.
No. 4296    
Файл: 130314733324.jpg-(305.16KB, 1350x1000, bb3d73de82265395d4a7d7dbedb1bb26.jpg)
4296
Прикрутил постпроцесс.

>>4288
Без конфига ты Стив простой.
No. 4303    
>>4296
Моя полагать, что дело в этом:
[000000000] Using OpenGL renderer
[000000539] Library "opengl32.dll" is loaded
[000000539] Loading OpenGL...
[000000539] glBindFramebuffer, glDeleteFramebuffers, glGenFramebuffers, glFramebufferTexture2D, glBindVertexArray, glDeleteVertexArrays, glGenVertexArrays, VAO (Vertex Array Objects) not supported! Replaced with hand-made simulation.
[000000540] OpenGL loaded
[000000540] Library "opengl32.dll" is unloaded
[000000540] === GL implementation-dependent info ===
[000000540] Vendor: ATI Technologies Inc.
[000000540] Renderer: Radeon X1650 Series
No. 4306    
>>4303
Ты случаем не кун с софтом 3-хлетней давности из соседнего треда, использующий свободные дрова? Судя по уверениям гугля эти штуки в опенгл появились во времена 2 гефорса, и не поддерживаются только еще более древними картами, либо, вероятно, картами без драйверов.
No. 4311    
Файл: 130323812039.jpg-(11.52KB, 380x235, 0330_mythbusters_380.jpg)
4311
>>4303
>[000000540] Vendor: ATI Technologies Inc.
Here's your problem
No. 4312    
Файл: 130323992394.jpg-(51.39KB, 350x450, a952157b62a744607030088292d43e55.jpg)
4312
>>4303
>>4311
Ычую сэра Адама.
No. 4339    
Файл: 130351038461.jpg-(186.10KB, 590x619, ba0e076c4c53eb28064c404b195b6e07.jpg)
4339
Добавил экспорт скиннинга из Collada и теоретическую поддержку иксов. У меня не компилируется (спасут лазарь и 9000 затребованных пакетов?), но анон может попробовать, вдруг повезёт!

To-do:
- экспорт самого скелета оттуда же
- формат для анимации
- вики
No. 4341    
>>4339
>спасут лазарь и 9000 затребованных пакетов?
Спасет написание на человеческом языке.
No. 4344    
Файл: 130368087582.jpg-(127.36KB, 500x500, 1226002316718.jpg)
4344
>>4282 у меня версия rr 0.0025-7_base_pp рисует черный экран и надписи, в 6.6 все было нормально. Причем буффер на каждом кадре не чистится, и надписи рисуются поверх предыдущих.

Win7, видюха gf 8800

Еще про тени и отражения вопросик: ты их в кубемапы рендеришь, или в плоские текстуры? Как преломление на модельку наложить(я только с водой подобное делал, у меня была одна горизонтальная плоскость и одна 2d текстура отражения)
No. 4346    
Файл: 130373675665.jpg-(195.69KB, 1030x677, wtf_with_cubemaps.jpg)
4346
>>4344
Видел такое на одной ати (вместе с моргающими отражениями и вырезанными из шедоумапы гранями, ага), ещё проверю, completed ли фреймбуферы, но, конечно, не очень здорово, что проявилось и на GF. Запусти с ключами -fs -nopp, это отключит "Omsk ni youkoso" постпроцесс и получится та же 6.6.

Всё рендерю в кубемапы, тогда в шейдере можно рассчитать отражение и преломление как textureCube( envMap, reflect( v_eye, normal ) ) и textureCube( envMap, refract( v_eye, normal, eta ) ). Это приближение для небольших объектов.

Плоские текстуры, наверное, использовать не буду - для спотлайтов и воды (сейчас отражение обновляется вообще неоптимально) просто расширю frustum culling.

>>4341
>на человеческом языке
>FP
Всё в порядке же...
No. 4347    
>>4346
>Всё в порядке
>У меня не компилируется (спасут лазарь и 9000 затребованных пакетов?)
На ноль же делишь, ну.
No. 4349    
Файл: 130373968176.jpg-(109.24KB, 582x800, e84ebaaec28cb082c7a97c43081e5e49.jpg)
4349
>>4347
Вот послезавтра возьму и скомпилирую. ;_;

Зато там есть PROPERTY и ANSISTRING, чо.
No. 4359    
Файл: 13037530039.jpg-(81.97KB, 850x879, ~c43d863af2f7ab51570a3845e32b7b60.jpg)
4359
Кажется, пофиксил чёрный экран. Могу предположить, что если рендертаргет ни разу не очищался, некоторые драйверы считают его не валидным - а при включенном постпроцессе экран как раз никогда не очищался, т. к. fullscreen quad рисуется поверх и без теста глубины. (Хотя текст выводился, странно).

>>4344-кун, теперь работает?
No. 4387    
Файл: 130384421221.png-(291.46KB, 742x742, 2d266c20d29cb5ee3f07b22b855b1561.png)
4387
>>4359 да, теперь заработало, Омск забавный! Алсо с ключами, которые ты предлагал в >>4346 тоже работало.

Спасибо про кубемапы, я и не думал что так просто все вычисляется. Еще нубский вопрос - процесс рисования в кубемап выглядит как-то так: ставим камеру в точку наблюдателя, fov 45 градусов, рендерим в 6 сторон, поворачивая по каждой оси на +-90 градусов?

Если ландшафт делать кусками с переключающимися лодами, то между соседними кусками с разными лодами будут разрывы же, нэ?
No. 4397    
Файл: 130393161585.jpg-(245.48KB, 1050x1250, a4ee6e29da4bb08ec93c34fd5da2e3b2.jpg)
4397
>>4387
>ставим камеру в точку наблюдателя, fov 45 градусов, рендерим в 6 сторон, поворачивая по каждой оси на +-90 градусов
Правильно. И, очевидно, такое обновление кубемапы можно размазать во времени, особенно если объект с ней далеко.

Зачем-то съездил на ТИБО, экспорт скелета завтра зоделаю.
No. 4428    
Файл: 130428674582.png-(579.84KB, 800x600, 3c2a7ec6b9e4725419571376ffa0fc20.png)
4428
С велосипедом для анимации Суигинта научилась бегать в разные стороны по-разному. В скелетке ещё должны появиться способы интерполяции (сейчас только SmoothStep), возможность "закрепить" промежуточное состояние (например, 50% вперёд и 50% вправо), изменение длины кости, slerp для кватернионов и прочие плюшки.
No. 4434    
>возможность "закрепить" промежуточное состояние
>изменение длины кости
done
No. 4435    
Файл: 130436216249.jpg-(78.30KB, 1027x647, scr.jpg)
4435
>>4428 да, анимация намного лучше стала!
Бака-вопрос: как приземляться?
No. 4438    
Файл: 130436957549.jpg-(135.98KB, 850x862, ~d99d754b292758f7ea6cf21b28f13d39.jpg)
4438
>>4435
Ну-у, лети на землю, если повезёт - приземлишься.
No. 4440    
>>4349
No. 4450    
Файл: 130447377511.jpg-(46.78KB, 473x640, 7580a06b354677075018af160e272390.jpg)
4450
>>4440
Внезапно, сконпелировалось! У меня всё равно не пашет, с Mesa - AV на одном из glGetIntegerv, с родным драйвером - "Couldn't find matching GLX visual", пробовал разные комбинации флагов и размеров surface'а. Судя по http://410chan.ru/dev/res/1360.html (гугл выдал среди первых ссылок, кстати), проблема в драйверах нивидии и/или в SDL. С этим наверное разберусь красноглазопроблемы, потестите кто-нибудь то, что есть.
No. 4451    
>>4450
>[err] OpenGL library ("libgl.so.1") is not loaded
>[warn] GLU library "libglu.so.1" not found, gluBuild2DMipmaps is not available
Регистр имеет значение. Библиотеки называются libGL и libGLU, можно без .1, это все равно симлинк туда же.
>[err] Exception "EAccessViolation" raised: Access violation
EAssertionFailed : Some memory leaks by classes here: rest of allocatedByClasses is 1133, but must be 0. (rwObjects.pas, line 118)
$BFB61BB8

End of logAn unhandled exception occurred at $0806DC58 :
EAccessViolation :
$0806DC58
$0806DD47
$080600B9

Runtime error 210 at $08052CEA
$08052CEA
$080E2613

Да, положи наконец все это в папку, неудобно распаковывать же.
И еще
>[Linux]
>[
Это немного проблемно набирать, лучше делать _linux где-нибудь в конце, в такой форме не нужно бекслешей или кавычек.
No. 4453    
>>4451

Ну он же говорил, что пока что делает подвенду. А в венде регистр не имеет значения.
No. 4464    
Файл: 130453448164.jpg-(110.16KB, 499x666, f35f6761fd82c959a872108734f96daf.jpg)
4464
>>4451
Обновил, но линукс - зло.

To-do: стресс-тест кучей моделек с отдельными скелетами (интересно, во что упрётся производительность - CPU или GPU), вики, окклюдеры, нормальный граф сцены.
No. 4506    
Файл: 130487081553.jpg-(123.08KB, 583x617, e3ece8d05593268d333a9e1a778a96dc.jpg)
4506
>стресс-тест кучей моделек с отдельными скелетами
done

Как-то очень внезапно выяснилось, что отрисовка, обновление сцены и особенно колижн, мягко говоря, не оптимизированы.
No. 4507    
Файл: 13048726214.jpg-(308.83KB, 504x756, f85a9dfa2719304b0011a119510d606e.jpg)
4507
1. Отходим в сторону.
2. Зажимаем Q и R.
3. Ждём, пока все соберутся.
4. Отпускаем.
No. 4510    
Файл: 130493521416.jpg-(218.90KB, 1039x662, cruise_missile.jpg)
4510
Такой вот херни не замечал никто?
No. 4511    
>>4510
>sended
sent
No. 4513    
Файл: 130495229581.jpg-(9.42KB, 480x360, 02323.jpg)
4513
>>4511
Там много такого? Стоит качать, чтобы посмеяться?
No. 4514    
Файл: 130496236176.jpg-(159.34KB, 600x586, ff9715d6ffe338e0a70a8d954da89c50.jpg)
4514
>>4511
Ve laik Engrish, хулѣ. В комментариях к коду и не такое увидишь.
No. 4590    
Файл: 130554314816.jpg-(501.75KB, 850x1175, sample_863e10cc26b380c8ae4779e4dd88782d4005c26e.jpg)
4590
>>4557 Расскажи про проверку столкновений
Ты тримеши между собой проверяешь, каждый треугольник первого меша на пересечение с каждым второго меша?
Это работает с динамическими телами (в physx'е, например, тримеши только для статических тел, для динамических только конвексы)
No. 4593    
Файл: 13055549557.jpg-(112.56KB, 850x637, sample-3cacdcf4d0945d00b560bc2df39eca3f.jpg)
4593
>>4590
Только сфера <-> сфера и сфера <-> тримеш (с каждым треугольником). :(

Для скелетов ещё будет капсула <-> тримеш.

Насчёт тримеш <-> тримеш или конвекс <-> конвекс... чем плоха, скажем, аппроксимация девятью тысячами примитивов?
No. 4594    
Файл: 130556571327.jpg-(30.96KB, 640x480, c8e84bab242860277d850eaafc3bbed5.jpg)
4594
>>4593 то есть ты предлагаешь вместо конвексов и тримешей каждое тело составить из, к примеру, over 9000 сфер?! Хм... вроде для определения столкновений должно прокатить, и наверно даже быстрее сеток или конвексов... не очень представляю как в этом случае нормаль контакта получить, но думаю это решаемо. В 2d вроде бы такой прием используется, и весьма успешно
No. 4610    
Файл: 130579844341.jpg-(116.45KB, 600x428, e674f12afe5f6f462699e6a664d68d6b.jpg)
4610
>>4594
>нормаль контакта
Столкнуть сферы одного с тримешем другого и наоборот. В случае тримеш<->тримеш придётся пересчитывать трисы какого-то из них, это дорого.

Посоны, стоит переводить строки (вообще все, и в именованных ресурсах, и имена файлов) на UTF-8?
No. 4616    
Файл: 130582076730.jpg-(1.00MB, 766x1000, 27d1c5f5891371b9323c70de5a7100b7.jpg)
4616
>>4610
>UTF-8
Почитал про него и про частичную совместимость с ANSI, узнал, что у меня давно поддерживается (не считая имён файлов, хотя кому они нужны). Такие дела.
No. 4641    
Файл: 130633890772.jpg-(103.26KB, 640x480, mselmap.jpg)
4641
Отвлёкся чевой-та.
http://rghost.ru/7899451
Грибы-грибочки.
No. 4675    
Файл: 13066986264.png-(160.46KB, 842x682, russula-warrior.png)
4675
Update: "родные" линии, визуализация kD-деревьев и скелетов.
L - режим отображения трисов: линии / сплошная закраска
I - скелеты
K - kD-дерево коллайдеров
O - включить/выключить Суигинт (чтобы скелеты рассмотреть)
NumPad +/- 1-9.

Пилю GUI. :3
No. 4678    
>>4675
С линуксами-то что, все так же падают?
No. 4681    
Файл: 13067089054.jpg-(282.43KB, 550x772, 63b51b7f1c88ad2025a0ef65e36ebe3e.jpg)
4681
>>4678
Ага. После того, как для элементарного действия - компиляции в FPC IDE - пришлось создать симлинк с libncurses.so на некую libtinfo.so, желание разбираться с поддержкой линукса пропало напрочь. Не говорю, что её не будет когда-нибудь.
No. 4702    
Файл: 130705530586.jpg-(84.01KB, 281x303, ~~.jpg)
4702
>Пилю GUI
No. 4759    
Файл: 130766529099.jpg-(170.26KB, 750x901, b9e672ecaf13f71e3ec24eaecc2b152c.jpg)
4759
Можно окошки перетаскивать.
No. 4774    
Файл: 130787878414.png-(940.46KB, 1024x682, rr - 2.png)
4774
вот
No. 4775    
Файл: 130789544714.png-(1.02MB, 1024x682, rr - 1.png)
4775
Собрал в кучу.
No. 4782    
Сглаживание запили
No. 4796    
Файл: 130806476738.jpg-(185.12KB, 550x699, d71d9b1536742b86fd2f77ae0e6e962c.jpg)
4796
>>4774
Есть такое.

>>4782
Включи в драйвере. >_>

Прикрутил Render Targets Ping-Pong - в шейдере постпроцесса доступен предыдущий кадр, можно рисовать моушенблюр.
Ключ -rgb32f - float текстуры, точность выше.

А ещё скроллбары, отсечение через gl_ClipDistance[] (используется в GUI и для отражений) и "группы рендеринга" - костыль для исключения объектов из зеркал/шедоумап. Впрочем, по сравнению с прежним исключением по имени это хорошее решение.

Попробую реализовать Perspective Shadow Maps. Ну или утащить их из OpenSceneGraph.
No. 4797    
Файл: 130807001010.jpg-(386.43KB, 900x636, dcac0dbdc0f412bd52115bb10afdc684.jpg)
4797
>>4796
SF лагает. http://rghost.ru/10873791
No. 4808    
>Включи в драйвере.
Нет ты!
No. 4810    
Файл: 130815618034.jpg-(68.81KB, 400x416, 79be277292ca18decc05667ff8da5cf3.jpg)
4810
>>4808
Ладно, уговорил.
Ключ -aa <число> - количество сэмплов, по умолчанию 4. С 4 и более включается также фейковый - тупое увеличение текстуры экрана - 4x AA для FBO. Заюзать бы multisample textures, но они непрозрачны (даже работа в шейдере немного другая) и, будучи фичей OpenGL 3.2, не везде поддерживаются.
No. 4814    
Прости няша, но моушен блюр не нужен. Из-за него игры становятся убогими. Сравни например как идёт Quake 3 Arena и Quake 4. Не удивительно, что тру геймеры до сих пор играют в Quake 3, потому что движения там чёткие и резкие без всяких блюров за счет высокого FPS.
No. 4815    
>>4814
То же относится к доф, хдр, простому блюру, но ведь никто не мешает сделать их отключаемыми.
No. 4855    
Файл: 130862338060.jpg-(248.25KB, 1030x678, user_rp.jpg)
4855
Не могу я в математику этих PSM, иду дальше. Из исходников OSG:
>I later understoood why it works.

Пользовательские рендерпассы (done, пикрелейтед) и рендертаргеты, MRT, распределение объектов по освещаемым объёмам, граф мира и подгрузка на лету, например.
No. 4880    
Файл: 130876432146.jpg-(304.20KB, 600x848, d544375739298a15690875253cfcadcf.jpg)
4880
2D рендертаргеты - done.
CROSS-EYED STEREO, вот.
No. 4888    
Файл: 13088668387.jpg-(524.80KB, 776x800, 4bf278fa83801e1e2a9491ca7d24ce32.jpg)
4888
Уменьшил в два раза расстояние между "глазами".

Доступна магнитно-резонансная томография! Но (пока) не используется.
No. 4942    
Файл: 130975571728.jpg-(188.10KB, 800x565, edba181c93618a8a8237c80b7fdebdab.jpg)
4942
>распределение объектов по освещаемым объёмам
Работает. В демке 9 источников, но каждый объект рисуется максимум с двумя.
Генерация шейдеров для разных типов источников и нефиксированного количества лайтов на проход, Cascaded Shadow Maps для бесконечно удалённых - будут.
Хорошая идея: перекатиться на Lua.
No. 4998    
Файл: 131037992758.jpg-(117.90KB, 600x600, 97a632a4e881a87e8854dab2a2fffd47.jpg)
4998
Переписал загрузку на Lua. Мейну уготована та же участь.
No. 5112    
Файл: 131297423442.jpg-(294.66KB, 800x566, 4a4398f71a4fd4765b314fd03a4b2f92.jpg)
5112
Неспешный бамп. Вся логика теперь на Lua.

Пожалуй, приведу в порядок код и прикручу физику (Newton).
No. 5174    
Файл: 131472567279.png-(121.30KB, 1920x1080, shuerror.png)
5174
>>4274
ЖМУ/Линуксовая сборка не запускается вообще, пикрелейтед и

No heap dump by heaptrc unit
Exitcode = 217

в ошибкологе.

Версия для ШИНДОШС запущенная в вайне показывает только чайник и кнопки не работают.
No. 5175    
>>5174
Запуск через терминал дает

An unhandled exception occurred at $FF965DD8 :
EAssertionFailed : Some memory leaks by classes here: rest of allocatedByClasses is 1037, but must be 0. (rwObjects.pas, line 118)
$FF965DD8

End of logAn unhandled exception occurred at $0806DC58 :
EAccessViolation :
$0806DC58
$0806DD47
$080600B9

Runtime error 210 at $08052CEA
$08052CEA
$080E24A3
No. 5201    
Оп, зачем ты перекатился на Луа? У меня после переката какой-то пиздец - нехуя не работает и видны линии от осей обьектов.
No. 5203    
> .pas
> .pas
> .pas
> .pas
No. 5453    
Файл: 131888403343.jpg-(71.58KB, 500x706, 8641a4723b1ff20b46e189fdadd42d1d.jpg)
5453
>>5201
just as planned

Теперь объекты умеют цепляться к костям скелета. Насколько это, а заодно и весь граф сцены, будет совместимо с физикой - не знаю.

Самодельные Lua-модули выгружаемы. (Если стандартные module/require предусматривают выгрузку и я изобрёл велосипед - дайте мне знать). Сконпелировал бетку Lua 5.2, полёт нормальный.
No. 5458    
>>5453
>Lua 5.2
Но зачем?
No. 5459    
Файл: 131892257436.jpg-(642.02KB, 1300x2000, ad1338ba73ffb918e2a452eadb57158d.jpg)
5459
>>5458
Например, поддерживаются финализаторы (__gc) таблиц, а раньше они были привилегией userdata. Джва года этого ждал!
No. 5776    
Файл: 13217512302.jpg-(848.08KB, 1680x1050, skyrim-wallpaper-2.jpg)
5776
Внезапно, физика! ^_^

Z - бросить чайник. Не стоит насыпать горы из чайников: они очень, очень, ОЧЕНЬ сильно лагают, Ньютон же.
No. 5790    
Файл: 132191731178.jpg-(1.23MB, 1500x1060, 6bddda93231358dfc72bd84d78f0aa9f.jpg)
5790
>>5776
Теперь и с базовой сериализацией коллизий, а то Tree для платформ чуть ли не по полсекунды строится.

To-do:
- обёртка над материалами - физические свойства, обратная связь, плюс как-нибудь обойти то, что Newton не умеет уничтожать их по отдельности;
- описание скелета капсулами;
- лоды скелета же - обрезать мелкие кости на расстоянии;
- Cascaded Shadow Maps.
No. 5797    
Оп, а ты что-нибудь собственно собираешь запиливать на этом?
No. 5924    
Файл: 132372794922.jpg-(1.49MB, 1800x2300, 431909b0ec02d5adb16cf4456c64278d.jpg)
5924
>>5797
Конечно! Правда, пока не знаю, что именно.

Сейчас имеем ДВЕРЬ и небольшие проблемы со спящими телами, которые, по-видимому, придётся вручную будить вокруг каждого объекта, перемещённого явным заданием положения или скорости, т. е. без приложения силы, иначе мимо пролетающие их вообще не замечают. До этого просто отключил Суигинте autosleep.
No. 5930    
Файл: 132399611421.jpg-(148.18KB, 600x774, e6f3f7317b9227da915f88d452307da8.jpg)
5930
Суигинта больше не движется рывками.
No. 5968    
Файл: 132491744983.jpg-(223.35KB, 1280x720, 1293048691238.jpg)
5968
>>4274
Ты конечно охуителен, но где игра то?
Неужели не существует людей, которые могут добавить сюжет и геймлей\Новые локации? Никто не хочет тебе помогать? foreveralone.jpg

Как от программиста от тебя требуется только добавить вменяемое управление персом без наркоманского управления и пофиксить мелкие баги в виде проваливание камеры за стену. (Полет очень хуёво реализован)
И парочку новых возможностей:
1 ЕБАНОЕ МЕНЮ БЛЯДЬ
2 СПРАВКУ КАК В 1 КВЕЙКЕ, НИХУЯ НЕ ПОНЯТНО
3 Ебенящих человечков для закликивания до смерти
4 Возможность снимать скрины :3

А графон как в крузисе и физика шикарно реализована.
No. 5996    
Файл: 132525209459.jpg-(1.16MB, 2000x1135, 068f419ded8a219e32b71c8fa970ecaa.jpg)
5996
>>5968

Пока я занимаюсь непосредственно движком для ЭрПоГе, все ресурсы исключительно тестовые. Главное - не делать этот процесс бесконечным, да.

>проваливание камеры за стену
Fxd (рейкаст).

>Возможность снимать скрины
F12

Теперь каждая шейдерная программа находится в единственном файле, т. е. они не могут шарить шейдеры. Ибо толку от такой возможности было немного, а линковка даже ускоряется. Сегодня запилю пользовательские типы в Lua-скриптах - свойства + методы, доступ через точку, не двоеточие! :3 - и Collision Callbacks для материалов.
No. 6039    
Файл: 13259413993.jpg-(2.00MB, 1373x2000, 523b3153258be6b203d9c1cf7fbecbd4.jpg)
6039
>пользовательские типы в Lua-скриптах
done. Вообще-то не стоит переносить всю логику игры на скрипты - и в плане производительности, и из архитектурных соображений единственным православным вариантом является отдельный фреймворк. Тем не менее, удобная вещь.

>Collision Callbacks для материалов.
done. Искры (Z) и чуть более человеческий подъём по лестнице. Callback'и, даже те, что вызываются единожды для нового контакта, довольно-таки заметно лагают на кучах чайников, если выставлены на Lua-функцию: кажется, Newton любит пересоздавать контакты между нестатическими объектами чуть ли не каждый апдейт.

> описание скелета капсулами;
Хм. С одной стороны, для
> Ебенящих человечков для закликивания до смерти
и махания мечом хватит и капсулы на персонажа. С другой, взаимодействие скелета (не только ragdoll'а) с окружением смотрелось бы круто. Опять же, при небольшом лоде можно менять на одну капсулу. Посмотрим.
No. 6076    
Файл: 132649121357.gif-(42.71KB, 250x200, 7326e29d335e29fa65314a46234eacd9.gif)
6076
Перекатился на FPC 2.6.0. По-видимому, в очень редких случаях он может не освобождать автоматические поля олдскульных object'ов. Полдня ловил утечку >_<

Но вложенные типы - это, конечно, круто.
No. 6081    
Файл: 132664537543.png-(13.40KB, 551x407, Untitled.png)
6081
Windows8
No. 6088    
Файл: 132672220635.png-(240.91KB, 640x640, 4b1a33149e9fe1defda60cfb3799e4b5.png)
6088
>>6081
Только в релизе? мало ли
Почти наверняка дело в SDL! Я их накажу.

Сейчас разбираюсь с джоинтами.
J - сджоинтиться с чайником.
B - разджоинтиться.
Должно хватить встроенных (http://newtondynamics.com/wiki/index.php5?title=Joints), но в крайнем случае - джоинт изменяемой длины? брейкейбл? - есть User-defined bilateral. Теоретически, они ещё и дают халявную инверсную кинематику.
No. 6116    
ОП-кун, а ОП-кун, а как ты реализовал геодату?
я вот думал геодату запилить у себя тоже в мини-крузисе, но в растерянности:
карта высот - сразу отпадает. высота в 255 слишком мала.
кастомная карта высот - но как тогда запиливать многоэтажные сложные домики, секретные базы, пещеры, левитирующие острова?
меши - сложно и довольно рискованно.
BSP - уберсложно но лучший похоже вариант.
No. 6117    
>>6116
и да, геодата вся на сервере.
все перемещения у клиента - с разрешения сервера.
т.е. сервер говорит клиенту, когда он падает, когда он куда бежит, когда он летает или тонет.
No. 6123    
Файл: 132725972098.jpg-(158.65KB, 1920x1080, err.jpg)
6123
ОП, тут какая-то беда с куллингом(???) - пикрелейтед. Win7x64, 8800GT. Раньше работало.

Расскажи поподробнее про скелет и анимации - как ты их конвертировал в свой формат - из какого-то стандартного формата, или прямо из макса/маи? Как хранишь матрицы костей для каждого фрейма?
Мне просто тоже захотелось запилить скелетную анимацию, а нормальных 3d форматов не нашел. Думаю тоже изобретать велосипед:3
No. 6146    
Файл: 132776012670.jpg-(1.88MB, 3451x2211, 53d69c2aba5fd659db74cc7877ab1367.jpg)
6146
Запилил карту высот с ТОННЕЛЕМ. Newton не позволяет явно создавать в ней дырки, но я извернулся при помощи магического MaterialID для вырезанных ячеек и его проверки в broad phase. Способ этой проверки, вообще-то, неверный - проецирование центра масс на карту высот, но пока работает. Особенно если объект не больше ячейки, а края дырки замаскированы.

>>6116
Дружище, превращать какую-либо из этих технологий в golden hammer совершенно не обязательно. Карта высот для ландшафта, BSP для всей статики, не вписывающейся в карту высот, меши для разных там плавающих островов - всему своё применение же.

>карта высот - сразу отпадает. высота в 255 слишком мала.
>кастомная карта высот - но как тогда запиливать многоэтажные сложные домики, секретные базы, пещеры, левитирующие острова?
Есть 16-битные хаймапы. Для входов в данжи, зданий и прочего достаточно реализовать дырки, что многие движки и делают (UT3: http://www.wonderhowto.com/how-to-create-holes-terrain-surface-ut3-editor-197074).

>>6123
;_;
Похоже, не скомпилировался шейдер. Что пишет дебаг насчёт dift_bumpt_spect?

Скелет сконвертирован из Collada. (Дойдут руки - запилю экспорт из MikuMikuDance через неё :3) Для каждой кости в самом скелете и в анимациях, в которых она задействована, хранятся её длина и кватернион поворота - интерполяция каждой составляющей с достаточной точностью сводится к взвешенной сумме.

Модельные матрицы с некоторого момента решил не использовать вообще: преобразования в виде "смещение (vec3) + поворот (кватернион) + скейл (float, почти всегда единица)" применяются к вершинам медленнее - 18 умножений / 15 сложений, против 12/9 для матриц, зато быстрее комбинируются (30/21 vs. 64/64) и занимают в 1.5+ раза меньше памяти - актуально для шейдерных констант.
No. 6150    
Файл: 132782765860.png-(652.78KB, 850x618, anemone.png)
6150
ОП, >>6123-кун на связи: та же история, в новой версии никакой карты высот не видно. Запустил debug-версию, посмотрел лог - туда постоянно выдается строка
[err] Routine "DrawBatch" raised OpenGL error with code 1282 (GL_INVALID_OPERATION)

Начинается вот отсюда, хотя скорее всего она просто на каждом шаге рендеринга выбрасывается:
Dynamic cube render target "starlight": [ok] complete
Compiling shader "dift_skel" (vs, flags 3)... [ok] OK
Compiling shader "dift_skel" (fs, flags 3)... [ok] OK
Loading "dift_skel" (flags 3): Linking... Validating... [ok] Done
[err] Routine "DrawBatch" raised OpenGL error with code 1282 (GL_INVALID_OPERATION)
Compiling shader "dift_bumpt_spect" (vs, flags 3)... [ok] OK
Compiling shader "dift_bumpt_spect" (fs, flags 3)... [ok] OK
Loading "dift_bumpt_spect" (flags 3): Linking... Validating... [ok] Done
No. 6156    
Файл: 132783754850.jpg-(349.60KB, 1200x750, 1.jpg)
6156
>>6146
>Карта высот для ландшафта, BSP для всей статики, не вписывающейся в карту высот, меши для разных там плавающих островов
я просто хочу напомнить, что весь паффайндинг будет на стороне сервера, который никаких текстурок рисовать не будет. мне например сложно представить как при получении от клиента запроса движения в точку сервер будет просчитывать точки соприкосновения геодаты с мешами, а потом прокладывать через всё это добро путь. не говоря уже про BSP. с геодатой то ладно, написать алгоритм паффайндинга для хейтмэпы я примерно представляю как можно. с мешами тоже - достаточно проверять на замкнутость и ступени. а вот потом обьеденить это в едению систему...в общем ищу советов мудрых.
и да, клиентов может несколько сотен, а то и тысяч. все функции обработки пакетов от клиента находятся внутри потока, который опрашивает сокет, выданный под клиента, так что по идее каждая процедура паффайндинга должна иметь свой стек.

про дырки спасибо, скину пишущему клиент куну, надеюсь ирллихт это поддерживает.
можно поподробнее про 16битные хейтмэпы? алсо, какой у них шаг? единица? не будет ли при таком шаге ступенек вместо горок?
No. 6168    
Файл: 132786063235.png-(237.09KB, 640x640, 132672220635.png)
6168
Я иногда захожу в /dev/, ничего не пишу и не читаю, а просто смотрю на эту картинку. Теперь эту картинка не показывается среди последних постов треда, поэтому я запощу её ещё раз, уж извините.
No. 6172    
Файл: 13278873629.jpg-(221.35KB, 800x800, 8631af8a647502fb89a1a26732d1d4d7.jpg)
6172
Юникод в GUI'шном тексте, русский шрифт и пул строк, совместимый с ansistring.

>>6150
Да... проблема. И совершенно не представляю, в чём. vertex layout? вроде давно не менял. Залей полный лог, а? :3

>>6156
А нужна ли поиску пути геометрическая точность? Можно искать стандартными волной/A* на одной или нескольких (скажем, основная + данжи) дискретных двухмерных картах, а если мир в них не проецируется или для отдельных участков со сложной геометрией поступить так: заполнить проходимое пространство точками (не плотно и не равномерно, где нужна точность - больше), провести рёбра между соседними достижимыми и работать уже с этим графом.

>весь паффайндинг будет на стороне сервера
>клиентов может несколько сотен, а то и тысяч
Большая нагрузка же. Пусть клиенты сами ищут путь, отправляют его на сервер (с валидацией и корректировкой) и перемещаются снова с его разрешения.

>алсо, какой у них шаг? единица? не будет ли при таком шаге ступенек вместо горок?
Шаг задаётся флоатовым фактором масштабирования. Битность влияет только на максимальную высоту при выбранном шаге, ну или наоборот - на плавность переходов при известных границах.

>>6168
Ок.
No. 6175    
Файл: 132791070161.jpg-(190.97KB, 850x1313, 1.jpg)
6175
>>6172
Ну а напомни мне мморпг без клеточек, где нету геометрической точности при поиске пути? Волнами легко искать по карте высот, да, но предположим у нас небоскрёб с 18 этажами. Игрок переключается с 4го, где он сейчас, на 18ый и тыкает бежать туда. даже если сделать этот небоскрёб мешами и наполнить его тупо модельками, которые обрабатывать как один большой прозрачный/непрозрачный меш (т.е. забить на BSP) - печаль и горе.
я думал сделать как ты говоришь - создать систему графов из зон и переходов между зонами и использовать рекурсивную систему поиска с подбором кратчайшего или первого найденного пути. но не будет ли слишком высокая нагрузка на сервер, если, например, игроки захотят устроить осаду такого небоскрёба и набижат туда пачкой из 500 игроков?

>Большая нагрузка же. Пусть клиенты сами ищут путь, отправляют его на сервер (с валидацией и корректировкой) и перемещаются снова с его разрешения.
>перемещаются снова с его разрешения.
в этом самая главная проблема же - определить возможность прохождения/не прохождения клиента.
золотое правило сетевого программирования: всё, что можно взломать на стороне клиента - будет взломано. без контроля со стороны сервера - привет ноклип, как это было в нескольких ММРОПГ, кстати. геймгуард от нцсофт не помог даже. весь Виетнам и все русские айпи в итоге побанили.
предположим клиент отсылает мне пачку вэйпоинтов, по которым хочет пройтись. как я могу определить что они валидны, в этом например небоскрёбе? с картой высот всё довольно просто, да - делаю проекцию от точки к точке.

про шаг спасибо, это очень радует. есть-ли готовая библиотека или хотя-бы ресурс/набор статей посвящённый 16битной карте высот?
No. 6177    
Я не знаю, о чём вы тут разговариваете, просто хотел сказать, что искать путь волной на взвешенном графе — инстант фейл. Только Дейкстра / A.
мимопроходил*
No. 6178    
И ещё:
>без клеточек
>500 игроков
Это вообще возможно?
No. 6179    
Файл: 13279360364.jpg-(440.70KB, 1510x4271, f5ff03c1fc55e04a1767569fc3fd1e84.jpg)
6179
>>6175
Я почти уверен, что все "мморпг без клеточек" в том или ином виде используют графы вэйпоинтов; NavMesh'и тоже сводятся к ним. (Конечно, на открытых пространствах это излишне, сработает элементарный "алгоритм руки"). Пачка из 500 игроков, собравшихся в одном месте, даст лаги в любом случае.

>предположим клиент отсылает мне пачку вэйпоинтов, по которым хочет пройтись. как я могу определить что они валидны, в этом например небоскрёбе?
По идее, если клиент посылает индексы вэйпоинтов, достаточно проверить смежность соседних (помимо собственно валидности индексов). Не вижу здесь возможностей считерить.

16-битные хаймапы реализованы в физических движках, которые, очевидно, функциональности для патфайндинга не предоставляют. Про отдельную либу для всего-всего не слышал.

Всё-таки запилю CSM (PSSM), без них беспонтово как-то. Благо в GPU Gems 3 расписано (http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html), что к чему.
No. 6196    
Файл
удалён
>>6179
>Пачка из 500 игроков, собравшихся в одном месте, даст лаги в любом случае.
да нет, играл я на своём веку в большое количество ММОРПГ и видел подобные баталии, зачастую лагов не было. если сервер не пиратский, конечно.

>По идее, если клиент посылает индексы вэйпоинтов, достаточно проверить смежность соседних (помимо собственно валидности индексов). Не вижу здесь возможностей считерить.
>проверить смежность соседних
что ты имеешь под этим ввиду?

>Не вижу здесь возможностей считерить.
ну например перепрыгивать через дырки в полу, пролагиваться через близко стоящие стенки.
No. 6197    
Файл: 132826431135.jpg-(111.18KB, 420x630, 6abf3ae1a4f281efbc6d34b228af79e5-1.jpg)
6197
>>6196

>>Пачка из 500 игроков, собравшихся в одном месте, даст лаги в любом случае.
>да нет, играл я на своём веку в большое количество ММОРПГ и видел подобные баталии, зачастую лагов не было. если сервер не пиратский, конечно.

Не знаю во что там там играл, но во в играх WOW, Lineage2, EVE Online, RIFT лаги при возникновении описанной ситуации есть. В EVE сделали клёвую штуку с замедлением времени в больших баталиях. Очень годная идея, правда спизженная у Supreme Commander, хотя может быть они в свою очередь её тоже у кого-то спиздили.
No. 6229    
Файл: 132847752845.jpg-(369.40KB, 1024x768, Shot01221.jpg)
6229
>>6197
>Lineage2
Но ведь не было же. Пиклирейтед - драка 200 vs 300 у порта Гирана. Лагов сервера не было. Фришка работающая на спиженном PTS ядре С4. Давно дело было, да. В другие ММО хоть и играл, но в таких баталиях не участвовал.
Что примечательно - позже фризы появились, да. Ну да ладно, это не важно.
В общем суть в том чтобы клиент занимался паффайндингом, а сервер лишь проверял вэйпоинты на валидность?
Предположим при побегушках по хейтмэпе всё понятно - я просто строю путь от точки да точки и проверяю разницу высоты между точками с шагом в n, при разнице высоты больше определённой - я помечаю эту точку как последний вэйпоинт и отсылаю клиенту, в потоке обработки клиента помечаю движение, обсчитывая координаты с учётом скорости движения персонажа. ок.
А вот теперь самое сложное - как просчитывать вход с земли в дом и например подьём на 2 этаж со двора? Земля - хейтмэпа, дом - система графов. Создавать дополнительные точки соприкосновения зон графов с хейтмэпой?
No. 6230    
Файл: 132848507474.png-(1.03MB, 752x1077, c3631acf8e0d3f0a9972bfd266432984.png)
6230
>Создавать дополнительные точки соприкосновения зон графов с хейтмэпой?
Ну да, по аналогии с порталами в отрисовке сцены. Других способов не вижу, это всё-таки разные структуры.

>проверить смежность соседних
>что ты имеешь под этим ввиду?
Бака! Проверять элементарное существование рёбер между соседними вершинами пути.
No. 6235    
Файл: 132852235132.jpg-(118.57KB, 816x636, scb1.jpg)
6235
>>6229
Я делал "активные векторы" в зоне действия здания. Если персонаж движется по этому вектору, то попадает не в соседнюю клетку, а туда, куда прописано в свойствах вектора. Естественно, что и клиент, и сервер должны работать в трёхкоординатном пространстве, где третья координата — номер "этажа". И поиск пути тоже нужно выполнять в трёх координатах.
мимопроходил
No. 6241    
Файл: 132855513999.jpg-(127.75KB, 849x989, 1.jpg)
6241
>>6230
>Ну да, по аналогии с порталами в отрисовке сцены. Других способов не вижу, это всё-таки разные структуры.
okay.jpg

>Бака! Проверять элементарное существование рёбер между соседними вершинами пути.
т.е. по сути
>я просто строю путь от точки да точки и проверяю разницу высоты между точками с шагом в n
я просто этим не занимался ещё :<

>>6235
Зоны выглядят попроще и без жёсткого разграничения на этажи. Хотя это будет работать быстрее, да.
398 сообщений пропущено. Показаны 100 первых сообщений. [Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]

Удалить сообщение []
Пароль  
[Mod]