[WT] [Архив] [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить
Имя
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
Зоны выглядят попроще и без жёсткого разграничения на этажи. Хотя это будет работать быстрее, да.
No. 6243    
>от точки до точки
slfix
No. 6281    
Файл: 132915770294.jpg-(519.78KB, 1280x960, Konachan_com - 26672 diebuster gunbuster_2 lal&#03.jpg)
6281
Реализовал Cascaded Shadow Maps. Ничего сложного, я-то думал. 3 сплита; каждый описывает свою часть фрустума камеры и, кроме того, вытягивается в сторону Солнца до края сцены - иначе горы, которые не видны непосредственно, тени могут и не отбросить. Затенённая геометрия рендерится за один проход с выбором из трёх сплитов прямо во фрагментном шейдере.

>>6235
Это не Сырно ;_;
No. 6282    
http://sourceforge.net/projects/rr-rr/ зачет
No. 6291    
Файл: 132923692484.jpg-(38.57KB, 640x256, 309821.jpg)
6291
>>6282
Травон!
No. 6370    
Файл: 133025281236.jpg-(128.07KB, 997x800, 10052409a2.jpg)
6370
Прикрутил подобие SSAO. Не учитываются нормали прямо как в крузисе!, не используется псевдослучайный поворот... в итоге фейк фейка, эффект ещё больше напоминает неведомые ореолы. Впрочем, с пивом потянет.
No. 6371    
Файл: 133026298673.jpg-(410.06KB, 1161x1959, naive_ssao.jpg)
6371
>>6370
No. 6372    
>>4274
Стив, расскажи, пожалуйста, с чего ты начинал. Что нужно читать?
No. 6376    
Файл: 133034904813.jpg-(561.14KB, 900x675, 5f468527542efe0bc264c7e6afe3cc00.jpg)
6376
>>6372
NeHe, спеки, http://www.gamedev.ru/code/forum/?graphics и пейперы разработчиков.
No. 6383    
>>6370
Лучше бы траву сделал, хотя бы как в обливионе.
No. 6384    
Файл: 133045979115.png-(85.69KB, 1161x653, 4798955.png)
6384
>>6383
Challenge accepted. В самом деле, нужно. Заодно добавлю геометрический инстансинг.
Да и про геометрические шейдеры я совсем забыл, хотя для систем частиц они подходят идеально.
No. 6387    
Файл: 133050472980.png-(1.70MB, 1920x1080, 48955402.png)
6387
Запустил твой крузис, показывает такую фигню. Если подойти к фиолетовой хрени проявляется такой же фиолетовый террейн, но если при развороте назад снова пропадает.
В консоль пишет '[err] Routine "DrawBatch" raised OpenGL error with code 1282 (GL_INVALID_OPERATION)'
Win7 x64, GTX580.
No. 6395    
Файл: 133059334673.png-(207.85KB, 1039x765, Безымянный.png)
6395
Похоже, ты разбираешься в компьютерной графике. У меня есть вопрос.
В универе задали сделать приложение "демонстрирующее работу с 3D функциями видеоадаптера", я решил сделать трехмерный опенинг сериала Doctor Who http://www.youtube.com/watch?v=WCD_Aw9RXxU%%.
Уже сделал ТАРДИС и соорудил прогу на OpenGL, которая умеет его отображать. Но вот вопрос - как сделать тоннель?
По идее, его нужно генерировать на ходу, потому что он должен быть бесконечным. Может, для есть какие-то известные приемы для подобных случаев?
No. 6396    
>>6395
Спойлеры, спойлеры!
No. 6401    
>>6395
В тред стремительно врывается http://nehe.gamedev.net/
No. 6403    
Файл: 133062797522.jpg-(79.46KB, 558x558, b4525fc2f4ac1fd4d17c2439aeaf80f5.jpg)
6403
Из соображений гибкости вернул создание нового VAO для каждой комбинации "меш + шейдер", вместо фиксированного лейаута на меш. >>6387-кун, всё то же?

>>6395
Круто! ^_^
Очевидный способ - сделать "тайлящийся" кусок тоннеля, т. е. такой, что края при стыковке совпадают. А то и просто замкнутый, вроде torus knot.
No. 6404    
>>6403
Черт, про замкнутый я даже не думал! Если сделать его форму не слишком правльной, никто и не поймет, что летает "по кругу". Спасибо.

>>6401
Тебе тоже спасибо. Второй раз просмотрел уроки на этом сайте, на этот раз до конца - заприметил несколько эффектов, которые могут пригодиться.
No. 6405    
Файл: 133064328843.png-(1.34MB, 1920x1080, 57684681.png)
6405
>>6403
Теперь совсем текстуры пропали.
No. 6414    
Файл: 133069713783.jpg-(369.67KB, 800x575, b0e450baa34a9bde2a2900d302990b4f.jpg)
6414
>>6405
FFFFFFFFFFF-
Лог?
Найди в config.lua
>Config('GL.disableAdvFloats', false)
и замени на true.
No. 6418    
>>6414
Сейм щит.
http://rghost.ru/36811993 - лог.
No. 6425    
Файл: 133078703359.png-(131.45KB, 1161x653, 133078512918.png)
6425
>>6418
А теперь?
Изменил порядок операций в рисовании батча: сначала биндится шейдер, потом VAO. Больше идей нет, если что, буду воспроизводить. :C
No. 6427    
>>6425
Увы, ничего не изменилось.
http://rghost.ru/36836068 - новый лог, если надо.
No. 6455    
Файл: 133149958595.png-(5.12KB, 48x48, icon48.png)
6455
Запилил ГЕОМЕТРИЧЕСКИЙ ИНСТАНСИНГ. Пока что инстансы умеют различаться только модельным преобразованием, в будущем - чем угодно, кроме текстур. Для скрипта всё прозрачно.

Кстати, шейдерные константы устанавливаются очень не трушным способом: на каждый бинд шейдера все его константы ищутся в 1-4 хэш-таблицах - соответственно, параметры батча, объекта, материала и глобальный скоуп. Архиудобно, на самом деле, и время поиска сравнимо с временем собственно установки, но из идеологических соображений никуда не годится. Буду запоминать локейшны в каждом объекте.

Пикрелейтед - новая иконка. ^_^
No. 6460    
Файл: 133156974953.jpg-(49.59KB, 422x662, 60fe36d7dbe1350274be72dd3d4030dc.jpg)
6460
>>6418
Воспроизвёл на GF GT 540M (заявлен OGL 4.2), ошибку бросает glDrawElements. Куда копать - не вижу.
Предыдущие версии

http://sourceforge.net/projects/rr-rr/files/rr%200.0025-17_skeleton_node.zip/download
http://sourceforge.net/projects/rr-rr/files/rr%200.0028_phys.zip/download

работали?
No. 6464    
В предыдущих то же самое, но изредка проглядывающие текстуры вроде нормальные. Последняя правильно работающая версия - 0.0025-15.
Алсо в какой-то из версий в чайнике отражался мой десктоп, лол, так и было задумано?
No. 6477    
>Последняя правильно работающая версия - 0.0025-15.
saem shit. Win XP SP3. ATI, AMD.
No. 6480    
Файл: 133167149060.jpg-(258.26KB, 1280x720, snapshot20120313234007.jpg)
6480
>>6464>>6477
Спасибо за информацию, завтра посмотрю.
No. 6497    
Файл: 13317469415.jpg-(602.19KB, 1024x768, 07135fe8c519fcc5ec682ed5fac4080c.jpg)
6497
>Буду запоминать локейшны в каждом объекте.
done, здесь теперь всё круто.

>фиолетовая хрень
А вот с этим ещё разбираюсь. Бинарный поиск ревизии, с которой начались баги - весьма увлекательное занятие :3
No. 6498    
Мне всегда было интересно, а как организовать правильное юнит-тестирование для проектов с существенным количеством графики?
No. 6499    
Файл: 133175892430.jpg-(1.27MB, 1500x1065, f34931c7ea5dbcb5f689bcc8056ba4f8.jpg)
6499
>>6498
Эм, графика - такая же подсистема, как и остальные, значит, и принципы не отличаются. Берёшь и пишешь тестовое приложение ^^"

>>6464>>6477
Господа, вроде починил, теперь работает? Если всё ок, расскажу, в чём было дело.

>Алсо в какой-то из версий в чайнике отражался мой десктоп, лол, так и было задумано?
Не знаю, глюк или это попало в демку, но если не очищать рендертаргет, там иногда оказываются разные интересности, т. к. видеопамять — разделяемый ресурс.
No. 6500    
>>6499
Да, теперь все отлично. ПЕЧ580
No. 6502    
Файл: 13318188492.gif-(483.91KB, 270x180, fc8cb01a3c7680b2ea78b98da34b0b09.gif)
6502
>>6500
YEAAAAAAAAHHHH

Так вот. Я просто-напросто отказался от glBindAttribLocation, т. к. иногда индексы выставляются без ошибок, при запросе возвращаются новые... но не работают. Баг драйвера с вероятностью в 99%. Горжусь вендорами!
No. 6546    
Файл: 133270161785.gif-(17.24KB, 500x500, larc.gif)
6546
ОП, ты офигенен! Скажи, а ты работаешь в этой области, или это твое хобби? Я вот на работе довольно тесно связан с OpenGL, но вот технологии вроде psm и прочие штучки с освещением никогда не юзал; посмотрел на твой движок и очень захотелось попробовать. Алсо, вот еще интересный и простой эффект:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch13.html
Да, почему именно паскаль, а не плюсы?
No. 6547    
>>6546
>Да, почему именно паскаль, а не плюсы?
Чтобы никто не смог присоединиться к разработке, очевидно же.
No. 6548    
>>6547
Я могу без проблем, например.

Дельфиняша
No. 6549    
>>6547
Траву мне когда запилишь?
No. 6569    
Файл: 133331003039.jpg-(1.05MB, 1897x1704, 54048846b06932f862c7550539564b59.jpg)
6569
>>6546
Я студентота и занимаюсь этим just for fun.

>http://http.developer.nvidia.com/GPUGems3/gpugems3_ch13.html
Чёрт. Вспомнил, что в движке до сих пор нет postprocess chain'а, а ведь он элементарно реализуется на базе уже имеющегося пинг-понга. Запилю.

>Да, почему именно паскаль, а не плюсы?
Паскаль мне более симпатичен как язык, очевидно же. Почти не приходится воевать с компилятором или выискивать UB.

>>6549
Сделано. ^_^
ТРАВОН генерируется автоматически (рандом + колижнкаст).
- С единственной разновидностью кластера он выглядит клонированным, это исправимо.
- Карта растительности позволила бы заменять камень на почву.

И наконец появился профит от инстансинга. Его можно ещё усовершенствовать, если определять количество инстансов динамически. Совсем-совсем продвинутым будет http://www.opengl.org/wiki/Buffer_Texture, это фактически снимет ограничение на количество инстансов, но является нативной фичей аж OGL 4.2. Впрочем, почти везде поддерживается как расширение.
No. 6577    
ОП, как ты относишся к Overgrowth?
Там тоже чуваки постоянно добавляют всякие фичи в движок, каждую неделю выпускают новую версию и рассказывают о изменениях.
No. 6594    
Файл: 133348070826.jpg-(215.88KB, 800x565, e2d5b33eafc6267762609ec880e1e1dd.jpg)
6594
>>6577
Всё правильно делают. Тоже планировал скелетную анимацию, привязанную к физическому миру, и основанную на ней IK.
До сих пор руки не доходят.

Есть вероятность, что наивная реализация — передача скелета солверу — породит зомби, т. е. рэгдоллы, будто бы подвешенные за ниточки, но в лучшем случае, конечно, должно смотреться круто.
No. 6601    
Файл: 13335661695.png-(651.95KB, 1088x680, Безымянный.png)
6601
>>6569
Решил посмотреть твой крузис. Обещанного травона не обнаружил.
лог: http://rghost.ru/37411668

У меня конечно не топовый пека, но тот самый крузис на минималочках и с тормозми траву всё же рисует.
No. 6603    
Файл: 133358347961.jpg-(1.01MB, 845x1200, 9fb3325ca6d403375f82424bb18fcd61.jpg)
6603
>>6601
С заявленной
>GL version: 2.1
я бы вообще не стал на что-то рассчитывать — юзаются фичи вплоть до 3.0 + инстансинг из 3.1. А не вылетать ли в таких случаях сразу? Возможно, это потолок для x2300, но попробуй обновить драйвер.
Тем не менее, сделал инстансинг отключаемым, при этом ТРАВОН прореживается, чтобы как-то считаться с тормозами. Проверь.

Там ещё какая-то ерунда насчёт фреймбуферов, так что не исключены проблемы с тенями. Но здесь я вряд ли смогу помочь.
No. 6612    
Файл: 133381355398.jpg-(34.87KB, 500x667, Jordan+Rudess+witchesrudess_004.jpg)
6612
>>6594
Сомневаюсь, что это хорошая идея. Лучше сюда глянь: http://code.google.com/p/cartwheel-3d/
Или, в принципе, сюда (осторожно, луркосленг): http://www.gamedev.ru/pages/unsolved/articles/statebased_control
No. 6615    
Файл: log-Shu_[debug]_exe_html.7z-(8.75KB, log-Shu [debug]_exe_html.7z)
6615
>>6603
Теперь вообще вылетает при запуске.
No. 6618    
Файл: 133391366390.jpg-(262.32KB, 950x1023, 37908 - 80s amano_kazumi arms_behind_back arms_up .jpg)
6618
>>6612
Идея понятна. Если это просто навороченный способ приближать на каждом шаге текущее значение каждой степени свободы к желаемому, должно получиться то же. Матан не читал.

>>6615
Failed to link без подробностей? Зашибись.
Отключил пару фич для GL ниже 3.0. Что теперь?
No. 6619    
>>6618
>должно получиться то же.
Почему ты так уверен? Опиши, какими джоинтами ты собираешься связывать регдолл и анимацию, будешь ли ты задавать анимацию в мировом пространстве или в пространстве модели, и почему под действием, скажем, силы тяжести всё не упадёт. (мне эта тема интересна, но лень что-то кодить самому)
No. 6633    
Файл: log-Shu_[debug]_exe_html.7z-(21.47KB, log-Shu [debug]_exe_html.7z)
6633
>>6618
>Отключил пару фич для GL ниже 3.0. Что теперь?
shu.exe выдаёт сообщение об ошибке 216 (это же очевидно как её решить!) и закрывается, отладочная версия закрывается молча. Скрин сообщения об ошибке и лог прилагаю.
No. 6652    
Хотелось бы задать глупый вопрос по opengl.
Есть игровой движок и система партиклов. Рендерер движка заменен на новый, который вначале отрисовывает сцену и затем вызывает onDraw() партиклов. Система партиклов использует свои настройки состояния opengl и затем восстанавливает исходные, для того чтобы на следующем кадре сцена отобразилась как надо. Это нормально? Как обычно решаются такие задачи? Исправлять пришлось внезапно, до этого с opengl не работал.
No. 6659    
>>6652
VBO.
No. 6672    
Файл: 133460290127.jpg-(207.17KB, 600x814, rei.jpg)
6672
>>6652 Это нормально. Обычная практика для использования рендеров разных подсистем в одном контексте - сохранить старое состояние(glPushAttrib), матрицы, если нужно(glPushMatrix), выполнить отрисовку, вернуть старое состояние (glPopAttrib, matrix). Also, будь внимателен: push/pop matrix работает отдельно для каждого режима матрицы, поэтому если пушишь MODELVIEW, то и попать надо MODELVIEW.
И да, как написал >>6659-кун, лучше запихнуть все частицы в один VBO и отрисовать за один DIP - так будет быстрее всего
No. 6711    
>>6659>>6672
Спасибо.
Где можно почитать поподробнее про DIP/DPUP/DIPUP?
А о сохранении VBO беспокоиться не нужно, если движок перед каждым pass его апдейтит сам?
No. 6712    
>>6711
> А о сохранении VBO беспокоиться не нужно, если движок перед каждым pass его апдейтит сам?
Или между ними переключаться можно? Немного посмотрел исходники движки, похоже на это. Ничего ещё не читал пока, сейчас буду.
No. 6722    
Файл: 133590473369.jpg-(229.89KB, 800x1120, 4454b746e75a546d92de7c18185ca8cc.jpg)
6722
>>6619
Пытался реализовать фейк, т. е. персонажа, представленного бжд-куклой для правдоподобной анимации конечностей и капсулой для всего остального, но так и не подружился с Ball and socket джоинтом. -_-" То есть, конечно, его крайне нестабильное поведение — исключительно моя заслуга, т. к. это последнее дело, явно устанавливать матрицы, ведь физический движок предполагает задавать силы, максимум — моменты/скорости, но как это увязать с текущей архитектурой... В общем, работаю над этим™.

Пока же запилил УБЕРШЕЙДЕРЫ с пользовательскими флагами. Для драйвера разницы никакой, зато намного меньше копипаста в GLSL-коде. А потом прочитал http://www.gamedev.ru/community/gamedev_lecture/articles/?id=816 и достиг просветления. Идея очень нравится, но это будет... нетривиально, хотя по сути получаем то же, что и с убершейдерами, просто в более организованной и восприимчивой к изменениям форме.

Итак, ближайшие планы - (1) цепочка постпроцессов, (2) помахать мечом в кого-нибудь и (3) добить бжд.
"Уберсистема микрошейдеров" привлекательна ещё и тем, что шейдеры отвязываются от конкретного GAPI. Обязательно повтыкаю.
No. 6724    
>>6722
>бжд
неспешнофикс
No. 6725    
Файл: 133596284191.jpg-(30.37KB, 707x427, nuke_examplebuild_rendering[1].jpg)
6725
>>6722
Это что-то типа пикрелейтед?
No. 6726    
>>6725
Ага, вот эти ребята.
No. 6729    
Файл: 133606855225.png-(514.27KB, 816x1161, 9f9be09d5cd98886ade00d33dfb71479.png)
6729
Абсолютно внезапно прикрутил BASS. Йоба-3D источники звука в качестве узлов сцены и всё такое.

Можно добавлять свои песенки в data/musik/playlist.lua.

http://rghost.ru/37898157
No. 6730    
>>6729
Правда, пока очень любит вылетать.
No. 6734    
>>6729
>BASS
Почему все так любят эту проприетарщину?
No. 6735    
>>6734
Мне хватило продуманного и интуитивно понятного API которым подавляющее большинство свободных либ похвастаться не могут и поддержки трекерной музыки.
No. 6736    
>>6735
>и поддержки трекерной музыки
Вот это, кстати, большая проблема. Даже большинство библиотек, которые заявляют, что поддерживают, скажем, .it, на деле любят игнорировать каждую третью инструкцию в них и выдавать невнятную ерунду вместо нормального трека. А вот BASS прекрасно играет.
No. 6742    
Файл: 133633707333.jpg-(320.92KB, 500x699, 6d8f26e36e2094d6c8662fc79fecc580.jpg)
6742
>postprocess chain
Думаю, достаточно именно цепочки постпроцессов, а не графа, т. к. для МЫЛА есть мип-уровни, а для дополнительных данных - MRT. Пилю.
No. 6758    
>>6742
Забавно, история описала петлю. Создание эффектов из графов и цепочек фиксированных шейдеров довольно сильно напоминает opengl combiners.
No. 6761    
Файл: 133659254864.jpg-(300.34KB, 707x1000, 635a768296f32cb8811ab56d3735e911.jpg)
6761
>>6758
Бака! Я говорю о последовательном применении постэффектов из отдельных пользовательских, конечно шейдеров, т. е. об универсальном механизме для разных там многопроходных техник. Всё же склоняюсь к тому, чтобы не заморачиваться и задавать порядок и рендертаргеты вручную, как, например, здесь: http://www.uraldev.ru/articles/id/23. Только, быть может, писанины поменьше и уровень абстракции повыше. :3

Микрошейдеры же, хотя и напоминают комбайнеры, ограничены только выбранным шейдерным языком и криворукостью проектировки, да и не понадобятся мне пока.
No. 6833    
Файл: 133764073455.jpg-(612.77KB, 1200x1260, 56fd11558d9430cdb6f73d631fafc8e5.jpg)
6833
>postprocess chain
Done. Многопроходные постэффекты — ничего необычного в реализации, зато какой ГРАФОН!
MAXIMUM PELEVIN

А ещё инстансинг теперь автоматически подстраивается под объём данных экземпляра и возможности карточки.
No. 6835    
<fat>Одному мне кажется, что нынешняя 3d графика, основанная на растеризации полигонов и z-буффере, целиком состоит из костылей и хаков?</fat>
No. 6836    
Файл: 133767277810.jpg-(730.87KB, 1500x1061, f37ccef8d41ddb4edbe0b654839ab69b.jpg)
6836
>>6835
Это цена реалтаймовости же.

И вообще, будто что-то плохое. Костылём можно назвать любую числодробилку, ведь инты и флоаты в общем случае не подчиняются правилам соответствующих числовых множеств.
No. 6837    
>>6836
Когда я в последний раз читал статьи из dx sdk, я смеялся сквозь слёзы. Все эти mapping и culling - это же такое производство троллейбусов из буханок хлеба. ОП, лучше бы занялся GPU raytracing или придумал бы более эффективный метод хранения 3d моделей.

>Костылём можно назвать любую числодробилку, ведь инты и флоаты в общем случае не подчиняются правилам соответствующих числовых множеств.
здесь была стена текста про хорошие и плохие модели, но я её заменил на категоричную фразу: Это абсолютно неуместное сравнение.
No. 6842    
Файл: 133769296249.jpg-(256.03KB, 1417x992, 20a789e3e7e6cca776160226578e2ac0.jpg)
6842
>>6837
>Все эти mapping и culling - это же такое производство троллейбусов из буханок хлеба.
Не забывай, что цель всей компьютерной графики не в максимально "честной" визуализации, а в максимальном эффекте при минимальных затратах.

>GPU raytracing
Если речь не о демке с примитивами вместо моделей, это подразумевает вокселы — в будущем, возможно, и станут применяться наравне с поликами (id Tech 6 же!), но никогда их не вытеснят, т. к. у обоих свои достоинства и недостатки.

>Это абсолютно неуместное сравнение.
Хорошо, тогда вот ещё пример: живопись. Она состоит из не менее ужасных костылей и хаков — так, штриховка напоминает сканлайн — и ничуть от этого не страдает.
No. 6843    
>>6842
>при минимальных затратах
Полигоны? При минимальных затратах? А зачем тогда изобретали сначала LOD, а затем тесселяцию? Суть в том, что в этот метод не заложена минимизация затрат, её нужно подпирать костылями. В сыром виде этот метод даже frustum culling не умеет, какие уж тут минимальные затраты. А вот старые-добрые voxel octrees, например, устроены так, что нужная детализация получается автоматически. С этой точки зрения метод более красив.
>Если речь не о демке с примитивами вместо моделей, это подразумевает вокселы
Почему? Raytracing можно применить к чему угодно, хоть к тем же полигонам (что успешно делается).
>Она состоит из не менее ужасных костылей и хаков — так, штриховка напоминает сканлайн — и ничуть от этого не страдает.
Опять неудачный пример. Художник строит изображение в своей голове и переносит его на бумагу удобным для него инструментом. Вот если бы у него вместо кисти был один только циркуль-балеринка, и ему нужно было рисовать даже то, что закрыто другими объектами, я бы принял такое сравнение.
No. 6844    
Файл: 133769904040.jpg-(57.19KB, 600x420, 551a3dc05dc9fea03e0eebfd4001ccc1.jpg)
6844
>>6843
При чём здесь надстройки над полигонами? SVO является точно такой же надстройкой над вокселами и точно так же не может без дополнительных телодвижений в какой-либо куллинг, к примеру. Тесселяция, при ручной доводке, тоже умеет генерировать лоды автоматически, сохраняя все преимущества полигонов: НАМНОГО меньшие затраты памяти и вычислительных ресурсов и быструю обработку вершин — а это анимация и вообще любое процедурное искажение. Как ты представляешь анимацию SVO?

>Raytracing можно применить к чему угодно, хоть к тем же полигонам (что успешно делается).
Не в реалтайме.

>Опять неудачный пример. Художник строит изображение в своей голове и переносит его на бумагу удобным для него инструментом.
Пример как пример. Доводится рисовать и поверх, стирая лишнее. Кстати, любой уважающий себя движок рисует непрозрачные объекты в порядке от ближних к дальним.
No. 6845    
>>6844
>SVO не может без дополнительных телодвижений в какой-либо куллинг, к примеру
Вот и нет. Традиционная технология рендеринга SVO - raycasting - сама находит именно тот воксель, куда попадает луч из камеры. Никакой куллинг не нужен, как и для любой технологии, "идущей" от камеры к геометрии.
> Не в реалтайме.
Скоро будут делать это и в реальном времени. Лови волну, что называется.
>НАМНОГО меньшие затраты памяти и вычислительных ресурсов и быструю обработку вершин — а это анимация и вообще любое процедурное искажение. Как ты представляешь анимацию SVO?
Ну так я и не предлагал тебе делать SVO, а предложил придумать что-то своё. Что-нибудь + фракталы для интерполяции, например.
No. 6847    
Файл: 133770416899.jpg-(117.39KB, 1000x550, 2423456610_102b21ed95_o.jpg)
6847
>>6845
>Вот и нет.
И правда ведь, каюсь.
>Скоро будут делать это и в реальном времени.
Подозреваю, что лет 15 назад считали так же. Ну вот когда начнут, по-быстрому и переделаю. :3
>что-то своё
Не думаю, что это хорошая идея. Здесь всё уже придумано до нас.
No. 6848    
>>6847
>Не думаю, что это хорошая идея. Здесь всё уже придумано до нас.
Фу таким быть. Ладно уж, оставлю тебя в покое :3
No. 7136    
Как там этот твой крузис поживает? Когда поиграть то можно будет?
No. 7137    
>>7136
Если мне память не изменяет, автор не задавался целью написать что-то играбельное. Просто движок, просто знания.
No. 7152    
Файл: 134092414259.jpg-(360.72KB, 1366x768, 13409206304.jpg)
7152
>>7137
По правде, всё-таки задавался, пусть и не в первую очередь. Была мысль пилить движок и эрпоге одновременно, однако архитектура слишком далека от "вменяемой", и, если обвешаться ресурсами, ломать её до несовместимости будет не так весело. Хотя можно и попробовать.

Сейчас хочу запилить подгрузку мира на лету, поиск пути и пикрелейтед. (Моделька для MikuMikuDance). ОП Летающей Сырны, я знаю, что ты здесь, добра тебе. :3
No. 7156    
Файл: 134094821963.jpg-(42.90KB, 808x634, sca1.jpg)
7156
>>7152
Ну, если бы я тебя чему хорошему научил... А то ты занимаешься той же ерундой, что и я — пишешь движок.

Кстати, было бы забавно написать что-нибудь вместе. :3
No. 7160    
>>7152
О БОЖЕ
Ты совсем ебонулся? Зачем ты запиливаешь МЫЛО?
No. 7184    
Файл: 134117868649.jpg-(38.81KB, 604x453, mmd.jpg)
7184
>>7152 а я тоже с mmd модельками баловался! Если придумаешь, как запилить там лицевую анимацию без переписывания всех вершин в буффере, буду очень признателен.
No. 7461    
Файл: 134399400969.jpg-(130.90KB, 600x847, aabb585ba6b6f5330fd3363723dd8934.jpg)
7461
Проснулся. ^_^

Планы всё те же: >>7152, плюс переписать обработку сцены, да и всего остального, на триггеры-события.
No. 7467    
Файл: 134419304335.png-(1.07MB, 1366x768, 46986763.png)
7467
DIVINE HALO
No. 7472    
Файл: 134427495214.jpg-(437.31KB, 1024x768, cir.jpg)
7472
>>7467 красивенько! А pmd ты в свой формат конвертишь, или грузишь как есть? И анимации, судя по скрину, пока нету?
No. 7473    
>>7467 забыл добавить, запили мягкие частицы, чтобы свет не пересекался с моделью, и будет вообще как в крузисе!
No. 7491    
Файл: 134448630834.jpg-(94.74KB, 333x500, 3472762034_fc8a62dff7.jpg)
7491
>>7472
Конвертирую в свой (http://www.vocaforum.com/showthread.php?t=1644). Анимация по ключевым кадрам есть, хочу IK.

Добавил поддержку DDS — соответствующий велосипед можно выбрасывать, т. к. отличия только в заголовке. ^^"
No. 7500    
Файл: 13445354263.png-(360.95KB, 744x1052, nano.png)
7500
>>7491 DDS - это вообще лучшее, что придумали для хранения текстур. Жаль для моделей нет такого gpu-friendly универсального формата, близкого к промышленному стандарту.
No. 7582    
Файл: 134524805515.png-(614.36KB, 1161x1306, ~43217627.png)
7582
Такие дела.

Пока зауряднейшие вэйпоинты и поиск в ширину. Предполагается допилить до A☆-like и разных нужных фич вроде отключаемых рёбер, хотя добавить противников можно уже сейчас, чем, наверное, и займусь. °w°
No. 7584    
>>7582
Выглядит страшно неэффективно. Пили navmesh.
No. 7585    
Файл: 134530636711.jpg-(498.29KB, 800x1067, c4779fba7f944b2b0a78c84433e8ae7a.jpg)
7585
>>7584
Где бы про него почитать? Это по сути не тот же граф на вершинах / центрах трисов?

>Выглядит страшно неэффективно
На >>7582 15K вершин и 158K рёбер (~1.5 Mb). Тупой 15-минутный поиск в ширину через весь данж (путь в 160 точек) занимает около 8 мс (Intel P6200 @ 2.13 GHz), а реально будет ограничен парой десятков метров. Потенциально дополняется эвристикой и кэшированием. Так что именно для indoor подходит.
No. 7587    
Файл: 134543584832.png-(1.00MB, 1161x653, 63110685.png)
7587
LET IT END IN HELLFIRE

Огненные глаза, огненная руна — надо было меньше играть в DCSS.
No. 7618    
Файл: 134608987851.jpg-(0.98MB, 1161x3265, 13420292.jpg)
7618
В кои-то веки запилил действия, т. е. вместо того, чтобы сдвигать объект на дельту каждый кадр, можно сказать ему перемещаться (поворачиваться etc.) с пользовательскими функциями обратной связи. ОЧЕНЬ удобно.

Пикрелейтед — постановка. Ещё напишу глазам ИИ.
No. 7623    
Файл: 134609613418.png-(5.05KB, 358x96, Untitled-1.png)
7623
Вторая после текстуры панцу вещь, качество которой меня устраивает — система сквадов, или команд персонажей и взаимоотношений между ними. На >>7618 их 3 — игрок, монстры и... трупы. Контролируемый ИИ персонаж, обнаруживая кого-то в радиусе видимости / поражения, выясняет, как же к нему относиться, и поступает соответствующе. Это стирает различие между игроком и другими существами и делает тривиальной реализацию сражений ИИ с ИИ и тому подобное. Пикрелейтед говорит сам за себя.
No. 7698    
>>7618
>вместо того, двигать объект на дельту каждый кадр, можно сказать ему перемещаться
Расскажи, как ты это реализовал. Я пытался прикрутить физику и уйти к такой же системе от дельты, но где-то в этом месте застрял.
No. 7706    
Файл: 134832429939.jpg-(108.90KB, 1920x1080, shot2878.jpg)
7706
>>7698
Для создания анимации придуман довольно интересный подход, т.н. реактивное программирование: http://conal.net/fran/tutorial.htm
Использовать функциональные языки при этом не обязательно, нечто подобное реализовано, к примеру, в .NET.
Более сложная модель: использование для анимации физического движка. Для этого придётся находить моменты сил, которые нужно прикладывать к телам. Есть несколько готовых библиотек (Euphoria, сartwheel-3d), в простейшем случае можно попытаться изобразить что-нибудь своё с помощью PID-контроллеров.
No. 7707    
>>7706
Анимацию прикрутить как раз не проблема. Проблема в том, как заставить его двигаться с нужной скоростью, правильно остановить в нужный момент времени, и еще в едином интерфейсе для передвижения у игрока и аи. Скорее в понимание того, как должна вести себя физика.
No. 7708    
>>7707
Т.е. тебе нужно то, что ищется по ключевому слову character controller? Это делается с разным количеством хаков, насколько я знаю.
No. 7734    
Файл: 134889580120.png-(154.15KB, 600x413, nono1.png)
7734
>>7698
Я говорил не о физике, а просто об архитектурном решении. Добавляешь узлу сцены действие и оно выполняется уже без твоего вмешательства, заканчиваясь одним из возможных исходов — done, stall, timeout, например. Что характерно, если передать рассчитанные скорости с силами сложнее физическому движку откуда и stall, всё работает, но я не очень на это полагаюсь.

Предсказуемо, A☆ быстрее волны раза так в 2, редко до 5. Неплохо.
No. 7791    
Файл: 135014519535.png-(297.46KB, 1161x653, 42325369.png)
7791
>>7582
Сглаживание кубическими B-сплайнами.
No. 7796    
Файл: 13502193028.jpg-(170.43KB, 600x500, cirno1.jpg)
7796
>>7791 А каким образом ты точки для графа расставил? На регулярную сетку непохоже, неужели вручную? И это таки A-star, или пока еще нет?
No. 7798    
Файл: 135023121622.jpg-(213.33KB, 600x848, g4kwxpsgdcne69a20jswjpcz.jpg)
7798
>>7796
Да на скриптах за 5 минут!https://sourceforge.net/p/rr-rr/code/199/tree/trunk/shu-work/data/pathfinding.lua, 5K вершин и 60K рёбер за полсекунды. Но не помешала бы выборочная ручная доводка.

>И это таки A-star, или пока еще нет?
Самый что ни на есть A☆, он не сложнее Дейкстры. Кстати, неканонная эвристика уже не гарантирует оптимальность пути, но даёт интересные эффекты, например, если учитывать смену направления, получишь путь повышенной или пониженной извилистости. :3
No. 7805    
Файл: 135024635954.jpg-(467.65KB, 1000x1000, 2d85d916db4dfbbf83359cab6c1bc2db.jpg)
7805
>>7798 А каноничность эвристики достигается, насколько я помню, тем, что она должна возвращать значение не больше, чем стоимость пути по графу... Хотя может чего-то путаю.

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

В очередной раз, огромный тебе респект:3
No. 7806    
Файл: 135024892390.jpg-(147.15KB, 1280x720, Diebuster_Movie_(2006)_[720p,BluRay,x264,DTS]_-_TH.jpg)
7806
>>7805
Если цель заметно сдвинулась, ничего другого и не остаётся, а вот для обхода препятствий есть http://alenacpp.blogspot.com/2005/10/steering-behaviors-opensteer.html. В демке OpenSteer (https://sourceforge.net/projects/opensteer/) очень здорово просматриваются состояния 'avoid obstacle' и 'seek & evade'.

Попробую запилить. Заодно решил вынести "персонажа" в его общем виде (настраиваемые руки-ноги-набор состояний-etc.) в движок, т. к. такое следование пути уже не похоже на логику просто "узла сцены" и тем более не смотрится в скрипте.
No. 7962    
Файл: 135181354186.png-(3.09MB, 3000x2442, df0612104dda48655adc6ac8cbd20e0e.png)
7962
Идея >>7806 не нова (кто бы сомневался), в UDK есть похожая сущность — Pawn. По задумке это максимально настраиваемый персонаж с кучей функций обратной связи и интерфейсом, предусматривающим управление как игроком, так и AI. Посмотрим, что из этого выйдет.

Добавил Trigger Volumes — физические тела, не участвующие во взаимодействиях, но отзывающиеся на попадание других тел внутрь. Вообще-то Newton 2.xx их не поддерживает: как ВНЕЗАПНО выяснилось, NewtonCollisionSetAsTriggerVolume — пустышка. Автор обещает добавить в Newton 3, а пока буду эмулировать жутко неэффективным отбрасыванием контактов в narrow phase.
No. 7969    
Файл: 135200743352.jpg-(273.28KB, 990x663, week30_0r16.jpg)
7969
В чём суть игры? какую помощь желал бы получить?
No. 7971    
Файл: 135204332896.txt-(7.77KB, concept.txt)
7971
>>7969
>В чём суть игры?
Набросал.
>какую помощь желал бы получить?
Только контент. В первую очередь — mid-poly модельки монстров со скелетами до 80 костей, предметов, окружения и звуки.
No. 7972    
>>7971
как алиса мак_ги?
No. 7973    
>>7972
Ну да, по сути TPA.
No. 7974    
Файл: 135205499724.jpg-(23.43KB, 200x192, 1340743529001.jpg)
7974
>>7973
Для чего всё это, игра мускулами, проверить себя? На сколько серьёзные намерения? Будет ли доведено до конца? Когда будет готова?
No. 7975    
Файл: 135206478653.png-(1.34MB, 1920x1080, diebuster_00288964.png)
7975
>>7974
>игра мускулами, проверить себя
this
>На сколько серьёзные намерения
Ни на сколько.
No. 7976    
Файл: 135206804647.jpg-(50.26KB, 604x427, L0z0hs6Z-uQ.jpg)
7976
>>7975
жаль
No. 7977    
Файл: 135208072421.jpg-(290.00KB, 1920x1200, imma firing mah lazer.jpg)
7977
>>7975
Ничего, потом придешь устраиваться на работу, тебя попросят показать, что ты умеешь, а ты им сходу: смотрите, какой я крусис запилил, с такими-то Суигинтой и травоном, и тебе сразу дадут должность ведущего программиста/руководителя проекта с окладом в $5к, красный Астон-Мартин с личным водителем, и гарем с пятью наложницами.
No. 7978    
>>7971
А с какой целью булевые характеристики у тебя выражены цифрами?
No. 7979    
Файл: 13521055524.jpg-(27.74KB, 500x375, diebuster nono.jpg)
7979
>>7978
Внимательнее.
>Все числа — вещественные.
Num6/Num9 в демошке. Просто прикинул масштаб на случай, если захочу указать конкретные значения.
No. 8037    
>>7971
Неужто совсем не будет монстров, не убивающих с одного удара?
>Огненный глаз
Может будет лавовый слизень, плавающий в лаве?

Полет чем-то напоминает Descent. Требую оставшиеся 2DOF.
No. 8040    
Как же в этой игре Суигинто достать?
No. 8043    
>>8040
В ранних версиях?
No. 8219    
Файл: 135543594665.png-(232.50KB, 800x803, 80b0243f9e9c2b0ac34a473553d7ca98.png)
8219
Добавил следование пути, пока что без стирингов. Поговаривают (слышал у Алёны C++, вроде), что перемещаться в пределах видимости можно исключительно стирингами — в таком случае понадобится на пару порядков меньше вэйпоинтов. Но это в другой раз.

Из мелочей: подобие групповых делегатов в качестве обработчиков событий. На стороне скрипта, конечно.

Press X, чтобы понять всю прелесть КУКЛЫ. :3
WAЯNING: на данный момент в демке сломано всё остальное. Кроме того, компьютер не догадывается о существовании дверей, поаккуратнее с этим.

>>8040
Не понял тебя.
No. 8232    
Файл: 135549139716.png-(1.81MB, 1161x1306, 28288352.png)
8232
Отключаемые рёбра — done. Дверь — не самый удачный пример, но для более перманентных препятствий это нужная фича.
Была мысль генерировать данж (полу)случайным образом, как в рогаликах.
No. 8241    
Файл: 135559382767.png-(14.93KB, 375x768, v.png)
8241
1. Нарисовать таких вот клеточных ваултов и сопоставить каждому скрипт.
2. Сгенерировать данж, сохраняя данные о заюзанных ваултах.
3. Воспроизвести ваулты.
4. ???
5. PROFIT!
No. 8242    
>>8241
Ну и шг, у меня глаза вытекли.
No. 8243    
Файл: 135559995472.png-(14.98KB, 375x768, v.png)
8243
>>8242
А так? :3
Пиксельность и моноширинность нужны, знаешь ли.
No. 8244    
Файл: 135560252610.png-(363.06KB, 287x422, 2012-12-16_1366x768.png)
8244
>>8243
Ничего не изменилось. Не знаю, какой у тебя шрифт, но поставь лучше terminus. Он почти идеален для "пиксельности и моноширинности".
No. 8245    
Файл: 135560357062.jpg-(744.65KB, 1600x2398, 19d958e407543da6215817001bfe65f4.jpg)
8245
>>8244
Поставил. Спасибо за совет, но не вижу преимуществ перед Courier New: непривычно.
No. 8246    
>>8245
Это был не совет, а просто мысль вслух. Без сглаживания у courier new жуткий алиасинг.
No. 8247    
Файл: 13556056516.jpg-(48.98KB, 400x300, 6667f0f59af95beafbcd5d5c799e54d3.jpg)
8247
>>8246
>сглаживания
No. 8249    
>>8247
ClearType и blur - совершенно разные вещи.
No. 8250    
>>8245
Попользуйся терминусом пару дней, потом попробуй прочитать страничку с комментариями курьером.

>>8249
Ага. Клиртайп ещё добавляет жирную тень, шоб мылом реще глаза резало.
No. 8251    
Файл: 135565657980.png-(5.75KB, 672x944, lab.png)
8251
>>8243
Склонность к генерации циклов (мне всё-таки не нужен лабиринт-дерево) добавлю позже. С другой стороны, реальные ваулты будут крупнее и должны брать качеством.
No. 8258    
Файл: 135576455971.png-(617.63KB, 1161x981, 29389134.png)
8258
Теперь добавлю обязательные (сюжетные, например) и как-нибудь заставлю пока что элементарный алгоритм соблюдать требования к ним — наличие, расстояние, соседство — так, чтобы не пришлось по 100 раз перегенерировать.
No. 8260    
Файл: 135578409599.png-(1.55MB, 1161x1306, 134758326.png)
8260
>>8258
Стандартные спайки всё-таки лучше "воротничков".
No. 8316    
Файл: 135638861818.jpg-(0.96MB, 1807x3000, 7fcaed7baaa63555e2367d213ba8861a.jpg)
8316
Выложил билд с генерацией. Карта сохраняется в data/dungeon/visualize.
Не пытайтесь перерисовывать data/dungeon/*.vaults, это всего лишь информация для алгоритма.
И не дошли пока руки до склеивания вейпоинтов, так что поиск пути не работает.

Неплохо бы в кои-то веки добавить геометрические шейдеры для партиклов и UBO/TBO.
No. 8318    
Файл: 135639892616.jpg-(207.08KB, 850x1029, d89e276177b7239e46a52a0525da75cc.jpg)
8318
Запилил в билд спойлер постпроцесс в такт музыке ^_^
а если не только амплитуды, но и спектр учитывать...
No. 8327    
Файл: 135649573235.jpg-(1.55MB, 1061x1500, 861d19ec28117a4e78ff4dfdbf8a5806.jpg)
8327
>спектр учитывать
done
No. 8328    
>спектр учитывать
Кот бы объяснил мне дискретное преобразование Фурье. А то в нашей шараге как-то поверхностно по математике пробежались, и я теперь вики открываю и не понимаю ничего.
No. 8329    
Файл: 135652095645.jpg-(93.40KB, 841x800, 9ac3577a01cfeec724d858cd854ce63b.jpg)
8329
>>8328
Сам не представляю интуитивно, как оно вычисляется. Ну я и б-дло. Позже разберусь.
No. 8335    
>>8316
>геометрические шейдеры для партиклов и UBO/TBO
Пожалей людей с интелом вместо видеокарты и месой вместо драйверов. Оставь фоллбек какой-нибудь.

Надо все-таки попробовать добраться и посмотреть на твой код будет.
No. 8336    
Файл: 135653275984.jpg-(865.67KB, 1500x1500, 013d420b9bb5d7738c25680a9c32ad1c.jpg)
8336
>>8328
И дискретное преобразование Фурье и интегральное - это по сути разложения вектора сигнала по базису из комплексных экспонент. k-й коэффициент разложения вектора s по ортонормированному базису {e} равен проекции s на e_k. Проекция вектора на вектор единичной длины, как известно, делается с помощью скалярного произведения (s, e_k).
Если посмотреть с этой точки зрения на формулы дискретного преобразования Фурье, можно понять, что они представляют собой просто скалярные произведения базисных векторов на вектор сигнала.
No. 8338    
Файл: 13565337122.gif-(71.90KB, 1000x705, a6fd545d728793ed1fac79f6d3a480b1.gif)
8338
>>8335
Уже не пожалел, т. к. GLSL 1.40 и FBO — это OpenGL 3.1, поддерживающая GS/UBO/TBO по определению. Даже если запилю фолбэк вплоть до 2.1 (а то и FFP), выглядеть будет ужасно.

>>8336
>просто скалярные произведения базисных векторов на вектор сигнала
Не >>8328-кун, но это я и хотел услышать.
No. 8339    
>>8336
>вектора сигнала
Чё?

Сигнал я представляю в виде функции y=f(x) (или как последовательность квантованных отсчётов), а при чём тут векторы я не въезжаю.
No. 8340    
>>8339
Имеется в виду, вектора в пространстве функций. Базисные векторы - базисные функции e^{ikx}.
No. 8342    
Файл: 135655117444.jpg-(185.96KB, 600x727, 0cfa2244a6018a3ba8aba8bcbdcf5639.jpg)
8342
>>8339
> при чём тут векторы
Под "вектором" часто понимают элемент евклидова пространства. На самом деле это понятие шире, поскольку в математике введено в принципе бесконечномерное обобщение евклидова пространства - гильбертово пространство. Его аксиомам удовлетворяют в том числе и определённый класс функций, если скалярное произведение определить как

\langle f | g \rangle=\int_a^b f(x) \overline{g(x)} dx

Интегральное преобразование Фурье понимается просто как разложение вектора (в данном случае функции) по соответствующему базису в гильбертовом пространстве.

В случае дискретного преобразования Фурье всё проще. Допустим, мы хотим вычислить преобразование Фурье для функции f(t), t - n чисел. Вектор сигнала f = {f(t)|t∈t} (мы подставляем в f все значения из t).
Аналогично определяем базисные вектора e_i. Тем самым, мы получили базис и вектор в n-мерном пространстве. Разложение f по базису e_i и будет преобразованием Фурье.
No. 8351    
Файл: 135667979090.jpg-(68.97KB, 583x647, 23b70cf8d6408733bf36e91373bcc846.jpg)
8351
Вот гадство. Написал отдельный поток для слежения за кэшированными из файлов ресурсами, чтобы выгружать их при отсутствии ссылок не немедленно, а через разумное время, и только потом дошло, что GL-ресурсы нельзя освобождать из другого потока.
No. 8352    
Файл: 135668133113.jpg-(411.18KB, 600x700, 71e6b12217a7bfca10fd05f9e4b01b68.jpg)
8352
>>8351
А нельзя просто следить и сообщать об этом родному потоку? Пусть сам освобождает.
No. 8355    
Файл: 135670013897.jpg-(143.33KB, 600x424, b7a4b53fcce413e40f28ba3fe1184106.jpg)
8355
>>8352
Ага, так и сделал, просто непонятно, какая разница для драйвера — он-то всё равно в своём потоке крутится.
Безумная идея #16: вынести GL-контекст в отдельный поток
No. 8356    
Файл: 135672679311.jpg-(150.83KB, 524x675, ae5c385aa9139e81997d68d243bfa6ab.jpg)
8356
>>8355 Есть еще такой хак: в потоке загрузке создается еще один контекст OpenGL и расшаривается с основным контекстом. Тогда у них общие ресурсы, контекст рендера может их читать из контекста загрузки. И тогда геометрию и текстуры можно грузить/удалять в отдельном потоке, только надо постоянно делать активным соответствующий контент.
No. 8357    
Файл: 135672694454.jpg-(57.93KB, 480x360, kaupq6lk.jpg)
8357
Если ты, дорогой мой, еще не думал над сюжетом, что почему бы тебе не запилить крези-лесбо-данжон-рпг про монстродевочек?
No. 8358    
Файл: 135673177090.jpg-(442.06KB, 1600x1200, Konachan_com - 62970 diebuster gainax nono nude.jpg)
8358
>>8357
Да пожалуйста. А МОДЕЛЬКИ РИСОВАТЬ КТО БУДЕТ?!
>>8356
Видел. Пока забуду про рендер в отдельном потоке, но если дойдут руки — так и сделаю, ибо
>SDL
>Its wrong to create windows in other threads than the main one
Или вот прямо сейчас возьму и откажусь от SDL, т. к. она сложнее, бажнее и беднее по функциональности pimpl'а над винапи. Понимаю, наименьший общий знаменатель платформ и всё такое, но сам её дизайн начинает надоедать.
No. 8359    
Файл: 135673697025.rar-(1.40MB, Harpy.rar)
8359
>>8358
>А МОДЕЛЬКИ РИСОВАТЬ КТО БУДЕТ?!
A где ты украл текущие крези-лесбо-модельки? Поищи у фаготов из страны восходящего крези-лесбо-солнца. Полюбому есть.
No. 8365    
>>8358 А вместо SDL рикамендую glfw, она кроссплатформенная и умеет создавать окно, обрабатывать основные события и обрабатывать ввод.
No. 8366    
Файл: 135678228174.jpg-(1.46MB, 823x1200, b4a238fe1acf5865d9e23d8240f46540.jpg)
8366
>>8359
*_*
>>8365
Да ладно, я уже выбросил SDL, раскопал древнюю обёртку над винапи и добавил в неё MSAA и Forward Compatible контексты. Не хочу работать с окном как с синглтоном.
Версия GL-контекста в текущем билде — 3.0, но рассчитываю на 3.2.
No. 8370    
Как это запустить?
No. 8372    
>>8358
Вот я тоже хочу выкинуть сдл. Она и не нужна особо, если все рендерить через glut, а загружать через soil. Вот только проблема во всяких ее плюшках, типа сдлинпута. Чем ты обрабатываешь управление? Чем можно одновременно обрабатывать и геймпад и клавиатуру и еще какие-нибудь безумные контроллеры?
>winapi
Хотя, я кажется понимаю. У вас таких проблем обычно нет.
No. 8374    
Файл: 135681389411.jpg-(344.61KB, 878x694, 8ff183108fc22890889989e1532dcd61.jpg)
8374
>>8372
>Чем ты обрабатываешь управление?
WM_KeyDown, WM_KeyUp :)
>Чем можно одновременно обрабатывать и геймпад и клавиатуру и еще какие-нибудь безумные контроллеры?
RegisterRawInputDevices / WM_Input. На всех платформах будут аналоги.
No. 8377    
Файл: 135681681846.rar-(555.92KB, arachne.rar)
8377
Еще архивчик. В покеболе крези-лесбо-няша
No. 8380    
>>8374
>будут аналоги
Так почему же нам не написать кроссплатформенную библиотеку инпута с нуля, попутно ознакомившись с работой устройств ввода на каждой платформе? Спасибо, с этим я и так знаком, как-то приходилось уже дебажить сдл, когда я нашел там баг (с которым меня послали, кстати, сказав, что они делают новый анальный сдл 1.3, а старые фиксить не будут), а так же писать какие-то простенькие тестеры под джойстики. Больше не хочу. Я и так взял на себя труд писать всю эту ерунду с нуля, пусть хоть лоулевел штуки делает чужой код, который не нужно поддерживать.
>WM_KeyDown, WM_KeyUp
Вот за отказ от подобной статической привязки в пользу динамических биндингов я и поплатился привязкой к удобству SDL_PollEvent, и не могу найти ему замены, чтобы не пришлось переписывать всю систему ввода, хотя она мне и жутко не нравится в нынешнем состоянии.
No. 8388    
Файл: 135682801060.jpg-(1.84MB, 1264x1744, 29657.jpg)
8388
Всё же помучаю MTR в порядке эксперимента. Не факт, что вообще взлетит, но если компиляция шейдеров на лету станет хоть чуточку менее заметной — буду рад.

>>8380
>сказав, что они делают новый анальный сдл 1.3, а старые фиксить не будут
По этой же причине дропнул. Какие проблемы с кроссплатформностью через cheshire cat aka pimpl? Один раз обернуть API платформы и запрятать подальше, делов-то, зато взамен — полный контроль над ситуацией.

>>8377
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=5383
Крези-лесбо-
Стив, это просто 100/100 какое-то, где ты их берёшь?
No. 8390    
Файл: 135684153214.rar-(855.18KB, googirl_arachne.rar)
8390
>>8388
Можно сунуться в этот крези-лесбо-сервер ftp://sub.monster-girl.zamanen.net/ Попробуй повыкачивать архивчики - в них может быть что-нибудь интересненькое (даже незаконченные игры например)
Алсо, если нет проблем с форматом моделек, то я жду с нетерпением скриншоты :3
No. 8391    
>>8388
>Какие проблемы с кроссплатформностью через cheshire cat aka pimpl
Поддержка. Это только кажется, что это одноразовый код, но потом начинаются какие-то проблемы с поддержкой, а время, по большому счету, тратится в никуда, потому что заново пишешь с нуля то, что уже написали другие.
No. 8392    
> Так почему же нам не написать кроссплатформенную библиотеку инпута с нуля
OIS есть, но я не знаю, как она.
No. 8406    
Файл: 135696932213.jpg-(642.77KB, 1920x1358, Nono_full_374981.jpg)
8406
Экспериментальная версия рендера в отдельном потоке.
Отключаемый. По умолчанию включен в дебаге. Из-за моих безумнейших умений по части синхронизации ОЧЕНЬ забагован. Буду исправлять баги и уменьшать число точек синхронизации, т. е. рефакторить команды, возвращающие значение — те же CompileShader или LinkProgram вполне могли бы тихо сохранять флаг ошибки, а то их даже в очередь не поставишь.

Багрепорты, при условии, что однопоточные версии работали, а эта чудит — приветствуются.
Известные проблемы (зависят от конфигурации и фазы Луны; кроме первых двух, с какого-то момента не встречал — возможно, уже исправил):
— в консоль сыпятся ошибки OpenGL
— статистика видеопамяти показывает чушь
— преломления и тени теряются / заполняются мусором
— рандомно теряются таргеты с Bright Pass и SSAO
— вылет при попытке перезагрузить постпроцесс.

Ха, будто это делает его менее крутым! :3
No. 8407    
>>8406
Рано радовался. По неизвестной мне причине оно по-прежнему не даёт удалять GL-ресурсы из другого потока — тупо падает с AV. (屮゚Д゚)屮
No. 8408    
Файл: 135698480257.jpg-(616.40KB, 1249x1249, d3a3898afb2daba12f79d8b11f3ebf87.jpg)
8408
>>8407
Отбой тревоги, лол, я просто забыл включить отдельный поток в тот раз. В общем, извините, Стивы, но отныне рендер будет только в отдельном потоке. Это очень красиво решает проблему владения OpenGL-контекстом — "не доставайся же ты никому".
No. 8409    
>>8408
Напомни, зачем тебе рендер в отдельном потоке. Улучшилась ли производительность, или весь профит съели синхронизации? В DirectX SDK не советовали выделять рендер в отдельный поток и я склоняюсь к их мнению.
С высоты моего дивана мне кажется, лучше уж распараллеливать вычислительно сложные участки, но сами их пускать последовательно.
No. 8411    
Файл: 135699892630.jpg-(571.02KB, 1600x1200, Konachan_com - 26725 diebuster gunbuster gunbuster.jpg)
8411
>>8409
Сейчас исправил часть багов — практически не изменилась, -8~+5%. Учитывая, что есть способ убрать всю синхронизацию, кроме EndFrame, могу предположить, что она станет-таки немного быстрее. Но дело даже не в FPS. Главный аргумент —
>Это очень красиво решает проблему владения OpenGL-контекстом — "не доставайся же ты никому".
Мне нужен был способ отвязать контекст OpenGL от главного потока, чтобы манипулировать GL-сущностями откуда угодно (>>8351).
No. 8413    
>>8411
Т.е. дело в том, что нужно освобождать ресурсы с какой-то задержкой, а удалить их можно только из главного потока? Не смотрел сторону реализации простейших green threads?
No. 8414    
Файл: 135704127822.jpg-(115.29KB, 600x425, nonolark2.jpg)
8414
>>8413
С ConvertThreadToFiber работает чуть медленнее.
>In general, fibers do not provide advantages over a well-designed multithreaded application.
В очереди бывает по 150 отложенных команд, при том, что в кадре всего 200. А ещё я уберу синхронизацию отовсюду, кроме EndFrame и совсем уже маргинальных GetTexImage/GetRTImage. Так что пусть будет нормальный поток.
No. 8419    
Файл: 135714285111.png-(140.07KB, 641x397, dafuq.png)
8419
Разобрался с синхронизацией. Абсолютное большинство багов магическим образом испарились.
Меня пикрелейтед смущает T_T
No. 8420    
Файл: 135714347668.png-(52.90KB, 975x567, Безымянныйqweqwe.png)
8420
>>8419
Енжой ёр социальная сеть.

А вообще ни описания, ни ридмишки, ни мануалов, ничего.
Так и быть, скачал, запустил, получил йух на рыло. Хотел минусануть, но аккаунта нет.
No. 8421    
Файл: 135714543054.png-(401.53KB, 853x480, DiebusterED07f-Nono.png)
8421
>>8420
Отдельные элементы ≠ социалочка, SF не ставит такую цель.
...хм, только из-за 3.0-lvl glGetStringi? Обновил, перескачай. И карточку скажи.
No. 8425    
Файл: 135714644321.txt-(18.74KB, log-Shu [debug]_exe.txt)
8425
>>8421
Да все равно ругается на старый ОпенГЛ. Карточка - древнее ноутбучное оно мамонта radeon x1150, новых драйверов под нее давно нет.

>SF не ставит такую цель.
Но ведь так важно рассказать всем, какую строчечку в каком файлике ты поменял сегодня, попив чай с корицей.
No. 8426    
>>8425
Если SF - социалка, то github - филиал 4chan. До сих пор вспоминаю тот тред про баг в bumblebee.
No. 8429    
Файл: 135716506280.png-(3.69KB, 1313x115, BufferSubData.png)
8429
Простая задачка в рамках прикручивания UBO.

Дан буфер. Некоторые его участки (отмечены красным) необходимо обновить. Цена обновления диапазона ячеек с M-й по N-ю — A + B*(N - M + 1). Вернуть f(buf, A, B) — список диапазонов. Обычно A >> B, но это не обязательно.

Пригодится для любых буферов в VRAM, не только UBO. Если не найду (не подскажешь, Стив :3) готовый велосипед — запилю жадный алгоритм.
No. 8430    
Файл: 135721648537.jpg-(130.49KB, 600x423, Aim_for_a_top___Diebuster_TOP____by_leeyiankun.jpg)
8430
UBO — done. Сугубо опционально.
Реализовать расшаривание буферов между шейдерами было бы затруднительно в рамках текущей архитектуры и совместимости с олдскульными юниформами, да и не нужно это. Основной профит — меньше вызовов API.

Правда, пока сражался с дровами, разочаровался в обоих вендорах.
No. 8432    
>>8430
Просто ты слишком спешишь угнаться за стандартом.
No. 8434    
Файл: 135731844562.jpg-(135.55KB, 620x1107, 1-12724-20753-nono2displaypng-620x.jpg)
8434
>>8429
done
по-хорошему надо запоминать, какие юниформы изменились, а не сравнивать весь блок памяти, но это далеко не боттлнек

>>8432
Да я понял уже. В любом случае, не пойду дальше GL 3.2. Из интересного могу вспомнить геометрические шейдеры, R2VB, TBO, текстуры с мультисэмплингом, Async Queries и Transform Feedback, но не уверен, что все эти фичи оправданны, так что просто добавлю GS (системы частиц, шлейфы и т. п.) с фоллбэком на динамические меши и графон можно до поры до времени считать завершённым.
No. 8450    
>>8434
Да, вот расскажи про отпимизацию юниформов. Что-то я заметил, что изменение одного чаще чем раз за кадр (флаг использования нормалмапов) роняет мне производительность чуть ли не на сотню фпс.
А gs для системы частиц - это хорошо, но у нее нет фидбека и использовать эти мощности для каких-то игровых механик не получится, только красявости.
No. 8453    
Файл: 13574231733.png-(397.68KB, 853x480, DiebusterED09-NonoDixNeuf.png)
8453
>флаг использования нормалмапов
O_O Неужели динамический бранчинг? На GPU if — достаточно дорогое удовольствие, даже с юниформом. В убершейдерах такие вещи разруливаются дефайнами и компиляцией нового шейдера для каждого набора флагов.
UBO дали от силы +2-4% FPS, т. к. производительность в юниформы и не упиралась.

>у нее нет фидбека и использовать эти мощности для каких-то игровых механик не получится
Но ведь я знаю, что прописал в GS. Это всего лишь снимает нагрузку по передаче данных механики рендеру: в лучшем случае — полностью, но и юниформы + out'ы VS дешевле динамических мешей. Что-то я растеоретизировался, пойду покурю GS.
No. 8454    
Я все-таки добрался почитать твой код. В чем ты его пишешь, кстати? Без нормальной иды эти простыни очень трудно читаются человеком со стороны. Хотя, разработчику проще, думаю. Некоторые интересные идеи уже взял на заметку.
Расскажи про свой темплейтер для шейдеров. Синтаксис того, что лежит в ресурсах не совпадает с тем синтаксисом, что обрабатывает парсер, что я у тебя нашел, поэтому я предполагаю, что он работает по какой-то запутанной схеме.
No. 8455    
>>8454
Кстати, да, может у тебя есть какой-нибудь жаббер, чятик, гуглоплюс или иная какая-нибудь социальная ерунда, где бы я мог спрашивать разные глупые вопросы по твоему коду, не засоряя тред?
No. 8458    
Файл: 135749447738.jpg-(585.68KB, 1920x1082, Konachan_com - 38535 diebuster gunbuster nono tran.jpg)
8458
>>8455
>IDE
Lazarus.
>интересные идеи
Ты мне льстишь.
>темплейтер для шейдеров
Этим занимается отдельная структура (tShaderParser @ framework/GL/GLBase.pas), она кроит шейдер на кусочки, а потом собирает назад в уже известном контексте. Обычно так не извращаются, обходясь препроцессором (http://users.livejournal.com/__vortex__/3391.html).
>вопросы по твоему коду, не засоряя тред
Арта по Дайбастеру немного, так что всё в порядке.
No. 8464    
Файл: 13575296213.png-(1.11MB, 1155x628, 367369425.png)
8464
Занятная вещь. Так и вижу шлейф-линию, на лету разворачивающийся в полигональную кашу.
No. 8465    
>>8458
А у тебя где-то в репозитории есть файлы проекта, чтобы я мог тем же лазарусом собрать, ничего не потеряв и не тратя уйму времени на поиски нужных параметров?
No. 8467    
Файл: 135754351517.jpg-(239.53KB, 1920x1080, shot3302.jpg)
8467
>>8453
> На GPU if — достаточно дорогое удовольствие
Не всегда. У nvidia производительность ухудшают только ветвления внутри одного блока потоков.
> даже с uniform
Недоработанность драйверов?
No. 8469    
>>8467
>Недоработанность драйверов?
Судя по тому, что производительность падает и на радеоне и на интеле, либо это недоработки месы в одном и том же месте, либо что-то еще.
No. 8481    
Файл: 135758713182.png-(110.91KB, 374x700, tumblr_lpmkd51USj1qb9h0jo1_500.png)
8481
>>8465
есть https://sourceforge.net/p/rr-rr/code/232/tree/trunk/ — достаточно shu, shu-work и framework раньше можно было скачать тарбол, сейчас вроде только svn checkout.

>>8467
Видел, как на SM3.0-capable гефорсах тормозил for по uniform int nLights. Это не сломило мой дух касательно тяжеленного бранчинга в фрагментном шейдере для тех же CSM, но поумерило желание рисковать производительностью на пустом месте. В лучшем случае это лишняя работа драйверу, в худшем — лишний условный блок.
No. 8483    
Файл: 13575879889.jpg-(71.57KB, 616x406, [Leopard-Raws] Hidamari Sketch X Hoshimittsu - 04 .jpg)
8483
Ответь мне няша как на духу! Ты со всякими примочками балуешься или игру делаешь? Если не игру, то желаю тебе сажи еще на десять тысяч минусов на страничке твоего проекта, если игру, то где мои монстро-няшиаааааа?
No. 8484    
>>8481
> Видел, как на SM3.0-capable гефорсах тормозил for по uniform int nLights.
Я к тому, что само железо в принципе способно обрабатывать ветвления без оверхеда при некоторых условиях. При реализации GAPI этим, видимо, не воспользовались.
И насколько честный цикл тормозил по сравнению с unrolled?
No. 8494    
Ты так теперь и дебажишь, ОП?
Конечно, так повеселее стало, но ни черта не видать же.
No. 8497    
Файл: 135767507850.jpg-(137.56KB, 610x766, vf.jpg)
8497
>>8484
Насколько я помню, ~3x, в обоих случаях производительность упиралась в FS.
>>8483
Можешь считать, что с графоном я закончил. ^^"
Сейчас вот допилю пару мелочей (склеивание вейпоинтов, партиклы) и подумаю насчёт контента.
>>8494
Чего-чего?
No. 8502    
>>8497
Музон и мыло на экране.
No. 8514    
Файл: 135779119967.png-(955.99KB, 1155x628, 20015582.png)
8514
>партиклы
"GPU idle? Add triangles for free!"
Случайно шлейф из 120K динамических треугольников, FPS по-прежнему ограничен только филлрейтом. На этапы графического конвеера, не являющиеся боттлнеками, добавлять нагрузку можно забесплатно. А я не верил.
No. 8515    
>>8514
Добавь им текстуру. Получишь 0.
No. 8517    
Файл: 135796839213.jpg-(125.84KB, 787x681, Nono__s_Singularity_by_potatofarmgirl.jpg)
8517
>GS (системы частиц, шлейфы и т. п.) с фоллбэком на динамические меши
done. Можно стрелять друг в дружку. ^_^
По идее, разницы с вёдрами с гайками неподдерживаемыми карточками быть вообще не должно. GS отключаются автоматически или в конфиге (GL.allowGS); если шлейфы выглядят по-разному или GS вообще падают — попрошу доложить.

>>8515
Не-а. Интерполятор больше не прохлаждается, но всё в порядке, ~40 FPS в той же ситуации.
No. 8518    
>>8517
А какая у тебя карточка, кстати?
No. 8520    
Файл: 135799501559.png-(945.24KB, 1155x628, 35251677.png)
8520
>>8518
Radeon HD 6370M, дрова — лето'2010 (8.741.1.5000, заявлен GL 4.0). 0.0036_GS больше нигде не тестировал. Есть и помощнее: GeForce 8500/9500 GT, различающиеся только количественно, и GeForce GT 630M.
No. 8522    
Файл: 135800221665.jpg-(1.34MB, 1000x1280, 11450b41f1eb3ae6f7dd33191cdf19ba.jpg)
8522
Вернул возможность выключить рендер в отдельном потоке. Изредка сваливало карточки в что-то вроде софтвара, да и gDEBugger тихонько ругается. Хотя ситуация, на которую он указывает — получение GL-функций в одном контексте и вызов в другом — в принципе невозможна. Чудеса.
To-do: склеивание вейпоинтов. Поиск пути выглядит сломанным, но это не так. :3
No. 8547    
Файл: 135827439734.png-(176.33KB, 1122x845, cir.png)
8547
>>8434 Расскажи поподробнее про алгоритм. Я как понимаю, что это для того, чтобы morph-анимации лица из MikuMikuDance работали? Тоже хочу загрузить такую сырну:3 Не могу придумать ничего лучше, чем пробегаться по всем вершинам в копии буффера в RAM, отмечая непрерывные изменившиеся куски, и их уже заливать в VRAM.
No. 8553    
Файл: 135834385249.jpg-(1.11MB, 1418x2717, Diebuster_ep4___Titan_Full_by_leeyiankun.jpg)
8553
>>8547
Нет, просто для UBO, потом соптимизировал сравнением "версий" юниформов (нативных интов). Алгоритм банальный, это я себе чего-то навыдумывал: из A и B вполне себе следует максимальное расстояние между поддиапазонами. Можно использовать и для динамических мешей, но я не заморачивался и просто сообщаю, что изменился такой-то диапазон такого-то атрибута / индексов или весь меш. Morph не трогал.
No. 8581    
Файл: 135852572025.png-(665.48KB, 1155x628, 92560319.png)
8581
kD-дерево путевых точек, например.
No. 8583    
Файл: 135859708558.jpg-(318.17KB, 700x1240, Diebuster_by_tamarpg.jpg)
8583
>склеивание вейпоинтов
done. С >>8581 работает относительно шустро. А учитывая, что проверяется весь присоединяемый кусок, хотя достаточно пересечения с новым соседом — можно соптимизировать до мгновенного.
No. 8592    
>>4274
А расскажи, как ты передаешь юниформы в шейдеры. Непосредственно перед их использованием? В каких-то других местах? Как ты определяешь, какой юниформ какому шейдеру нужно забиндить? Или у тебя все статично?
No. 8593    
Файл: 135886277367.jpg-(48.69KB, 590x460, 1.jpg)
8593
Автор можешь запилить сырну в NIF формате?
No. 8602    
Файл: 135897157295.jpg-(809.77KB, 1440x900, 1358301338314.jpg)
8602
Оп, ты молодец. Удачи тебе и всего самого лучшего. Можно я тебя обниму?
No. 8626    
Файл: 135905392248.7z-(1.12MB, Cirno.7z)
8626
>>8602
:3

>>8593
Экспортнул плагином.

>>8592
Некоторые GL-сущности хранят таблицы именованных параметров, чьи типы примерно соответствуют типам юниформов: float-vec2-3-4, текстура и так далее. При создании шейдера из него вытаскивается сводка юниформов, и с каждым биндом выполняется поиск по именам в рендеробжекте, материале и в глобальной таблице — именно в таком порядке. Сравнение и хэширование строк сводится к сравнению и хэшированию указателей (пул строк), поэтому поиск несравнимо быстрее самого glUniform*.

С таким подходом я могу создать материал "сферическое стекло в вакууме" с refrCoeff = 1.2, reflectivity = 0.5, baseColor = (0.0, 0.1, 0.3), о которых движок ничего не знает, и выборочно перекрыть эти значения в конкретном объекте.
No. 8632    
>>8626
Я уже примерно так и сделал, но чуть попроще, ибо сильной детализованности не нужно, и вместо строк использую индексы, присваеваемые на этапе инициализации, на элементы массива с описывающими тип объектами, это вообще 2-4 asm вызова, быстрее уже некуда. Единственный недостаток, что приходится прописывать в конфиге у каждого шейдера имена юниформов и их тип, но не так уж это и плохо на самом деле.
>baseColor
Мне кажется, удобнее это хранить в VBA, чем в материале, разноцветные материалы делать проще. Правда оверхед при загрузке данных небольшой (в 3 раза меньше, чем вершины, все равно), но это исправляется отправкой только изменившихся данных, хотя это и труднореализуемо.
А сколько у тебя гл-вызовов на рендерлуп? Я бы сам посмотрел апитрейсом, но из линуксов твою штуку все никак не возьмусь собрать.
Есть еще одна идея, которую я думаю реализовать. Анбиндишь ли ты семплеры после того, как ими воспользовался? Если, предположим, сделать пулл забинженых текстур и менять индекс семплера, посылаемый в шейдеры, а текстуры обновлять только когда в пулле кончается место, начиная с самой поздней? Мне кажется, можно неслабо сэкономить на ребинде, что является достаточно дорогой операцией, особенно если вместо текстур большие атласы.
No. 8633    
Файл: 135913085684.png-(747.65KB, 647x900, 602b422c1974494d689f5ece0638d714.png)
8633
>>8632
>Единственный недостаток, что приходится прописывать в конфиге у каждого шейдера имена юниформов и их тип
Запросить (http://www.opengl.org/sdk/docs/man/xhtml/glGetActiveUniform.xml) религия не позволяет?
>удобнее это хранить в VBA, чем в материале, разноцветные материалы делать проще
Не понял тебя. VBO? В вершинах? Во-первых, удобнее это хранить в текстурах. Тот материал по смыслу однотонный, но ок, #define GLASS_MAP, baseColorMap = "glass-color.dds". Vertex Paint всё же немного для других целей, а VertexAttribDivisor — изврат.
>А сколько у тебя гл-вызовов на рендерлуп?
На той же сцене, что в билде, в среднем 1-2K на кадр. >1.2K — это если пострелять.
>Анбиндишь ли ты семплеры после того, как ими воспользовался?
Я задаю сэмплеры единожды при создании шейдера, а потом просто биндю текстуры в соответствующие юниты. Что быстрее, ActiveTexture + BindTexture или Uniform1i + те же Active/BindTexture, если не повезёт — не проверял.
No. 8636    
>>8633
>glGetActiveUniform
Так еще проще, я как всегда про него забыл, спасибо.
>VBO
VAO, который array object, не VBO, я все время путаюсь в написании.
No. 8643    
Файл: 13594051373.jpg-(488.57KB, 1159x1149, efa4755206d4d7731ad6d4ae32b4407f.jpg)
8643
Добавил полную поддержку юникода в именах файлов, включая самодельные паки. Точно, у меня же ещё паки есть! :3 Идея последних из http://insidecpp.ru/art/44/ , хотя встречаются они повсеместно.
No. 8644    
>>8643
Разве этим не должна заниматься ОС и файловая система? 2013 год же, пора бы уже поддерживать юникод.
No. 8646    
Файл: 135943483519.jpg-(246.21KB, 652x800, c72d04b8a4c811430439de2c11f32ce9.jpg)
8646
>>8644
Ни винда, ни FPC RTL не дружат с няшной UTF-8, пришлось импровизировать посредством UTF8Encode/Decode.
А ещё теперь можно переключаться между полноэкранным и оконным режимами на лету (Alt-Enter).
No. 8648    
>>8643
>http://insidecpp.ru/art/44/
Эта лабуда касается только нтфс-а, или прыщефс тоже таким страдают?
No. 8649    
>>8648
Не должны, по идее.
No. 8650    
>>8648
В линукс есть с десяток разных фс, предназначенных для разных целей. С мелкими файлами, говорят, хорошо работает фс имени Рейзера.
No. 8681    
Файл: 135977288333.png-(3.03MB, 1256x1650, a4a49c53f264205e307ff958357d8a6c.png)
8681
Апофеозом неведомой хрени, на которую я последнее время отвлекался (>>8643>>8646), стала безумная идея сериализовывать целые числа адаптивно: NNNNxxxx xxxxxxxx xxxxxxxx ... , где NNNN — количество байт. (Как ни странно, это нисколечки не ухудшает сжимаемость). Вовремя проверил на MemoryStream'ах и понял, что выигрыш в размере того не стоит, хотя...

И добавил мини-карту. :3

>>8648
Логично предположить, что это актуально для любой не-readonly ФС. Когда загрузка упирается в чтение с диска, разница заметна на глаз. Кстати, такой велосипед давно изобретён и называется PhysicsFS.
No. 8687    
Оп, можно ли как-нибудь с тобой связаться, кроме как тут?
No. 8699    
>>8687
>или иная какая-нибудь социальная ерунда
Вообще есть G+ и тентакль, но предпочёл бы автобус. :3 В любом случае, в течение этой недели вряд ли отвечу.
No. 8748    
Файл: 136053592098.jpg-(1.81MB, 1920x1130, Gunbuster_2.jpg)
8748
Прикрутил поддержку MIDI с принудительно пользовательскими SoundFont'ами. Так что звучание MIDI-композиций можно полностью преобразить, заменив lib/etc/Scc1t2.SF2 из архива на что-нибудь поувесистее, вроде http://uk.un4seen.com/files/extra/ChoriumRevA.zip .

Впрочем, если "упаковка" и "распаковка" .sf2 работают, запакую-ка я второй "шрифт" в lossy...
No. 8749    
Файл: 13606326981.png-(322.65KB, 1061x753, nono_x_lal__c_by_hazardous_one-d4v5uuv.png)
8749
>>8748
Разобрался, как применять к SoundFont'ам внешние кодеки, но что MP3, что OGG, что AAC даже на максимальных настройках делают с сэмплами, особенно высокочастотными, нечто ужасное. Запаковал прежний набор во FLAC в качестве proof of concept.
No. 8750    
>>8749
>что MP3, что OGG, что AAC даже на максимальных настройках делают с сэмплами, особенно высокочастотными, нечто ужасное
А можно вот поподробнее про это, а то мне интересно стало.
No. 8752    
Файл: 136067054059.png-(25.77KB, 1115x631, sample.png)
8752
>>8750
Сейчас проверил — дело в другом: они могут изменить время, добавив тишину по краям ради упрощения ДКП, оконных функций, психоакустики и всего такого. Для большинства сэмплов это недопустимо. Пикрелейтед и http://lame.sourceforge.net/tech-FAQ.txt :
>encoder/decoder delay at start of file
>1056 sample delay
Характерно не только для MP3.
No. 8756    
Файл: 136076161139.png-(220.72KB, 500x400, tumblr_m4kb1g4wju1roahjjo1_500.png)
8756
Прикрутил к пакам zlib.
No. 8757    
Файл: 136077476813.jpg-(3.83MB, 2592x3600, 3530581402_bdb1e6b6ed_o.jpg)
8757
>>8756
...и LZO (http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Oberhumer). Метод сжатия каждого файла в отдельности выбирается эвристикой. Так, если LZO не сильно отстаёт в степени сжатия от Deflate, будет выбран именно он как более шустрый.
No. 8758    
Файл: 136079334549.jpg-(617.20KB, 905x1280, 854ac489dd9cd3bdd1f79d5fe35ed33c1d3233ab.jpg)
8758
>>8699
Оставь тентакль, молю.
No. 8759    
>>8758
kudere
No. 8760    
>>8759
Дуров украл у меня вконтакт, поэтому я нашел тебя в плюсаче, пусть будет. Не->>8758
No. 8762    
Файл: 136087246625.jpg-(3.57MB, 2793x2592, 7435254846_33d0dafea1_o.jpg)
8762
Заодно прикрутил LodePNG (http://lodev.org/lodepng/) вместо очень уж тяжёлой DevIL.

Почему именно LodePNG? Да потому, что интерфейс канонной libpng писали идиоты, даже zlib после ЭТОГО кажется изящной. Всегда продумывайте свои API. Пожалуйста.
No. 8763    
>>8762
Посмотри на SOIL, там 3,5 файла, c, маленькая статиклиба, public domain. Есть поддержка S3TC, правда она поганит текстуры. Сохранения в пнг нету, но я форкнул и как-нибудь допишу.
No. 8766    
Файл: 13609518577.jpg-(352.92KB, 900x600, tumblr_lom1kqMa6R1qfkesdo1_1280.jpg)
8766
Так, у меня всё ещё не хватает силы воли, чтобы взяться за то, что задумал, поэтому безумная идея #20: запилить аналог MulticastDelegate (>>8219) в нативном коде. А помогут мне в этом, хм, cdecl + varargs. Типобезопасность не нужна.

Прости меня, Ноно.
No. 8767    
Файл: 136095330445.jpg-(60.78KB, 700x400, 1353590489177.jpg)
8767
>>8762 А что плохого в zlib'е? Шикарная либа на мой взгляд. Только вот размер буффера для запаковки подбирается почти на глаз, но это уж особенность алгоритма - нельзя просто так взять и узнать объем запакованных данных заранее.

Алсо зачем нужен png, когда есть такой чудесный DDS, который может в мипмапы, кубемапы, карты нормалей и 3d текстуры?
No. 8769    
Файл: 136095471093.png-(286.75KB, 720x432, Diebuster screenshot 1.png)
8769
>>8767
>А что плохого в zlib'е?
Применительно к потокам — она заставляет ковыряться в структуре и вручную буферизовать данные, не могли всё зделать как в Lua. Впрочем, знакомство с libpng снизило мою планку качества API.

PNG нужен был в первую очередь для скриншотов.
No. 8770    
Файл: 136096912287.7z-(40.62KB, md_test.7z)
8770
Multicast Delegate в FPC. Я ужаснулся тому, что сделал...
Вряд ли буду использовать настолько типонебезопасный приём — псевдо-шаблоны справятся с задачей не хуже и куда безопаснее. Выложил на память.
No. 8772    
Файл: 136111427097.png-(31.96KB, 1366x722, profle.png)
8772
И очередная ладно, до поры до времени последняя безумная идея, ввиду отсутствия профилировщиков FPC подвенду. Выглядит преждевременной оптимизацией, но уже нашёл парочку глупых ошибок вроде лишнего обхода сцены.
No. 8787    
Оп, скажи честно, ты девственник?
No. 8788    
Файл: 136155832695.png-(31.17KB, 640x480, ScreenShot_2013_0220_15_37_31.png)
8788
>>8787
Почему тебя это интересует?
No. 8811    
>>8788
Одна из худших корпспати-лайк поделок на рпгмейкере, в которую я играл. Только момент с телефоном смешной.
No. 8812    
>>8811
Просто к слову же. Мне тоже не понравилась, у этого товарища только цг хорошие.
No. 8895    
Файл: 136296203548.png-(528.13KB, 864x480, diebusternced091638.png)
8895
0.0039: прототип тру-инвентаря. ^_^

Логику объектов предполагается реализовать "динамическими примесями" (не знаю, как это назвать). Суть: в движок зашиты единственный класс "Предмет" и множество его возможных аспектов: оружие, хрупкий, съедобный, ... . Работа с аспектами может быть запутанной, но это однозначно лучше наследования.
No. 8897    
Файл: 136303120921.jpg-(544.46KB, 500x707, cirno.jpg)
8897
>>8895 так это же агрегация, нэ? А свойства предметов жестко вшиты в движок, или тоже поддерживают добавление?
Расскажи, какая у тебя эвристика в A*
No. 8898    
Файл: 136303593971.jpg-(68.26KB, 200x419, 20080125131540.jpg)
8898
>>8897
>так это же агрегация, нэ?
Да вот не совсем. Предмет ничего им не делегирует (иначе бы его интерфейс непомерно раздулся), наоборот, свойства работают с ним, и в общем случае свойства конкретного предмета — лишь малая часть всех возможных свойств. Сопутствующее извращение: они хранятся не по указателям непосредственно в предмете — зачем вместе с несколькими реально используемыми хранить десятки NULL'ов? — а в блобе с на лету вычисляемыми смещениями... Неважно.

>эвристика в A*
Просто расстояние по прямой. Пробовал для интереса предрассчитать идеальную эвристику — расстояние от каждой точки до каждой. Оно, конечно, ускоряет поиск в несколько раз, но абсолютно бессмысленно просто потому, что можно ценой тех же O(N^2) памяти запомнить для каждой пары точек, какие соседи принадлежат кратчайшему пути, и получить чисто output-sensitive поиск за O(len).
No. 8899    
Нашёл баг в LodePNG с кастомным аллокатором, доложил автору, тот буквально через полчаса не просто пофиксил, но и независимо прикрутил систему аллокаторов, совместимую с моим кодом. Красота ^_^
No. 8945    
Файл: 136339346745.jpg-(76.59KB, 372x600, 1076436i.jpg)
8945
Здесь имел место следующий фундаментальный просчёт: во время перетаскивания предмета курсор замещался самим этим предметом (точнее, его view-аспектом). С одной стороны — логично, но в результате курсор становился единственным, кто держал ссылку на предмет, и при неаккуратном обращении тот мог пропасть из мира бесследно. Не только это: "призрачная рука" пользователя, извлекая предметы из мира, делала бы их неуязвимыми. Исправил, переделав текущий прототип инвентаря по канонам паттерна MVC: курсор таскает предмет по инвентарю, который, в свою очередь, обновляет GUI. Хотя пара моментов, вроде внезапного уничтожения отображаемого инвентаря, ещё не проработаны.

Теперь перебрасывание с внешним миром запилю...
No. 8946    
Файл: 136346175722.png-(179B, 1145x615, 12013817.png)
8946
Оп, можешь считать это багрепортом. Скрин прикладываю.
No. 8948    
Файл: 136346184687.rar-(32.60KB, log.rar)
8948
No. 8949    
Файл: 136346559189.png-(287.97KB, 853x480, snapshot20130316232333.png)
8949
>>8948
Ну явно же прописана версия GLSL, в которой это самый что ни на есть корректный код! Ладно, максимум ворнинг, но ОШИБКА? (屮゚Д゚)屮
Исправил.

Кстати, ATI/AMD пусть по диагонали, но таки прочитали стандарт (и пофиксили, например, древний баг с результатами запросов UNIFORM_COMPONENTS, делёнными на 4), на что я и ориентировался, так что рекомендую обновить драйвер.
No. 8952    
Ноно, а людям с интелом вместо видеокарты и пытаться не стоит запустить твой крузис?
No. 8953    
Файл: 136352726153.png-(1.80MB, 1616x880, 127503686.png)
8953
Сырна в полете обалденна, удалось даже панцушот поймать.
А вот подземелье с электрогрибами наводит клаустофобию, судя по скриншотам были версии с открытыми пространствами, летающим чайником и Суйгинтой... Алсо жалко, что Сырна сразу же идет на посадку как открывает огонь, истребитель из нее не получается, только штурмовик.
No. 8956    
>>8952
Видимо, да, рядовым интелам в юниформы даже скелет не влезает.
Прикрутить поддержку можно (считать ту же скелетку на CPU, например), но я занят другим и, что хуже, нет интела под рукой.
No. 8958    
Файл: 136355287925.jpg-(28.50KB, 320x240, 4bfcd2f19bdc7.jpg)
8958
>>8770
Запилил жутковатые (Variadic Templates тонут, поэтому вызывающая сторона аккуратно складывает аргументы в структуру, вызывает делегат с функцией-вызывателем в качестве параметра, которая уже работает с оригинальными функциями и передаёт им аргументы из структуры... Не будем о грустном), но рабочие множественные делегаты. Главная фишка, помимо множественности, в том, что они умеют сохранять кое-какую дополнительную информацию, чтобы вызывать и скриптовые, и нативные функции через один интерфейс.

Reason: пару раз возникала необходимость установить несколько обработчиков. Например, обновлением показателей персонажа заинтересованы и его скриптовое воплощение, и постпроцесс, и GUI.
No. 8978    
Файл: 136389856191.png-(2.00MB, 1153x1252, 42642773.png)
8978
Для >>8945 пригодятся Trigger Volumes, но в доработанном виде: позабыл про одиночные колбэки на вход и выход тела из объёма, чтобы не кушать время CPU почём зря.

Они всё равно потенциально тормознутые, т. к. фактически участвуют в физических взаимодействиях, однако другого способа обработать попадание тела в объём — например, с минимальным оверхедом поддерживать в каждой кукле список предметов, до которых она может дотянуться — у меня нет.
No. 8979    
>>8978
Сглаживание запили же.
No. 8982    
Файл: 136395650910.jpg-(47.05KB, 300x300, 136394718497.jpg)
8982
>>8979
Да оно работает без постпроцесса, а с ним я просто не представляю, как ЭТО
>When a multisample texture is accessed in a shader, the access takes one vector of integers describing which texel to fetch and an integer corresponding to the sample numbers (...) describing which sample within the texel to fetch. No standard sampling instructions are allowed on the multisample texture targets.
красиво завернуть. Запилю как-нибудь. После инвентаря. Заодно прикручу Array Textures (OpenGL 3.0).
No. 8983    
>>8982
Так запили на шейдере. В крайнем случае можно просто сделать scaledown картинки.
No. 8985    
Файл: 136396052854.png-(12.41KB, 640x480, top2.png)
8985
>>8983
Рендеринг в увеличенную в x∈[1.5; 2] раза картинку просаживает FPS в x² раз: фрагментный конвейер и без того является боттлнеком, по крайней мере у меня.
Судя по оконному контексту, нативный MSAA намного шустрее.
No. 8988    
>>8985
MSAA таки чуть ли не самый медленный из антиалиасингов. Тот же FXAA на порядок быстрее и дает лучший результат.
Но у тебя же там собственно просаживать нечему, но я честно говоря судил только по скринам.
No. 8989    
>>8988
*нативный антиалиасинг, то есть.
No. 8991    
>>8985
>> Рендеринг в увеличенную в x∈[1.5; 2] раза картинку просаживает FPS в x² раз
Это совсем не так. Для примера можно запустить любую игру, и посмотреть, я думаю коэффицент проседания будет где-то в районе 1.4 - 1.6.
No. 8994    
>>8991
>Это совсем не так.
В >>8985 экспериментальные данные.
>Для примера можно запустить любую игру
Я так подозреваю, они используют именно нативный.
No. 8996    
>>8994
Я имел в виду просто генерацию кадра с последующим даунскейлом без какого-либо нативного или иного антиалиасинга.
No. 8997    
>>8996
Это и есть "настоящий" (в отличие от мыла) "ручной" (опционально с box-фильтром) антиалиасинг, причём довольно медленный.
Так, всё, не отвлекай меня. >_<
No. 8998    
>>8997
Тра-та-та. Я там про антиалиасинг вообще не писал. Причем тут настоящий/не настоящий.
No. 9005    
Файл: 136405811698.jpg-(112.69KB, 597x800, IMG_09511.jpg)
9005
Долго думал, как реализовать взаимодействие множества тел, не привлекая множество материалов. Решил использовать материалы для задания физических параметров — трения и всего такого — и "типично материальных" функций обратной связи вроде звука или искр от удара металла о камень, а для частных случаев добавить цепочку функций, вызываемых телом при столкновении с кем угодно. Это может быть медленнее, но, во-первых, подобных объектов в сцене меньшинство, а во-вторых, завать SGUH'е материал, отличный от металла, только потому, что ей, видите ли, нужен особенный колбэк для взаимодействия с куклами, равно как и создавать отдельный материал для каждой разновидности Trigger Volume'ов — просто нелогично.
No. 9007    
Файл: 136408789564.png-(947.09KB, 1153x626, 87786874.png)
9007
Запилил >>9005 и
>одиночные колбэки на вход и выход тела из объёма.
:3
No. 9010    
>>9005
Зачем ты делаешь собственный физический движок?
No. 9013    
Файл: 136412603367.png-(235.53KB, 475x1131, ~da5c7d8987bc5e64cf22732057f227adacaa5b65.png)
9013
>>9010
Да ты с ума сошёл! Делал когда-то, но дальше столкновения сфера <-> тримеш и убогого position-based солвера не пошёл. Это не отменяет необходимости периодически вешать обработчики на отдельные тела (изкоробки они определяются только парой материалов) и того, что нативные Trigger Volumes в стабильных версиях Newton не реализованы (>>7962).
No. 9094    
Файл: 136461212391.jpg-(39.27KB, 371x406, change6.jpg)
9094
>перебрасывание с внешним миром
Сделал. (бесконечная sguha — F8)
А заодно полностью избавился от глобальных переменных в скрипте.
To-do: раздельные LOD'ы для моделей и материалов (давно надо было, ага) и связь инвентарей с персонажами и просто узлами сцены.
No. 9097    
Файл: 13646563947.png-(947.77KB, 1153x626, 44595736.png)
9097
>>9094
Косметический фикс: точный рейкаст по парящим предметам.
Пилю
>раздельные LOD'ы для моделей и материалов
Для моделей есть известный приём — хранить все лоды в одном VBO и по возможности строить меньшие из вершин больших.
No. 9109    
Файл: 136473658451.jpg-(63.00KB, 380x546, malcev-konveer.jpg)
9109
No. 9112    
Файл: 136474813662.png-(42.00KB, 300x300, 1267286758939.png)
9112
Исправил "очередной последний" (хотелось бы верить, что действительно последний) баг многопоточности — очень редкие стуны или AV. Суть: есть "ресурсы-из-файла", однозначно идентифицирующиеся именем файла. Но и сами .pk-файлы являются такими ресурсами. Незамеченная гонка при внезапном подхватывании удаляемого в данный момент ресурса была всегда, но при попытке загрузить ресурс из .pk-файла вероятность интересных эффектов резко возрастала. Теперь в самом-самом худшем случае в памяти будут пару мгновений существовать два экземпляра соответствующего файлу ресурса.
No. 9115    
Файл: 136477661566.7z-(41.70KB, dump.7z)
9115
>>9112
И ещё один... -_-"
Просто для интереса запилил дампалку и дампнул состояние скрипта.
No. 9120    
Файл: 136484046413.jpg-(111.79KB, 593x842, 1364767611365.jpg)
9120
А твой Крузис на Ведройде выйдет? А то я б Сырной погамал. Только бида-бида, компа ближайшиe 4 года не предвидится.
No. 9121    
Где скачать твою игру можно? (исходники)
No. 9122    
Файл: 13648462874.jpg-(155.46KB, 500x348, 2618730.jpg)
9122
>>9120
Нет. FPC относительно недавно научился конпелять под JVM, но я ещё даже с Шиндовс не перебрался, как видишь.

>>9121
Я бы постеснялся называть это игрой...
svn checkout svn://svn.code.sf.net/p/rr-rr/code
No. 9141    
Кстати, появилась ещё идея... Написать... Неблокирующую очередь. Вот. Оставлю здесь, чтобы когда-нибудь вспомнить.
No. 9143    
>>9122
Спасибо. Совсем забыл про репозитории на sf, вот же я дурак.
Вот же терпеливый человек.
No. 9209    
Файл: 136509092117.txt-(7.59KB, log.txt)
9209
Win8, ATI Mobility Radeon HD 4650.
dea~th
No. 9220    
>>9209
Выглядит, как будто у тебя нет драйверов.
Оп, а зачем ты столько всяких лишних штук пишешь в лог, или ты действительно используешь такой низкий уровень, вроде использования собственной реализации pae на уровне приложения?
No. 9233    
Файл: 136521358146.jpg-(39.52KB, 371x406, change4.jpg)
9233
>раздельные LOD'ы для моделей и материалов
done

>>9220
>Оп, а зачем ты столько всяких лишних штук пишешь в лог
Ну, так выглядит солиднее. ^^"
No. 9246    
Файл: 13653765697.jpg-(2.70MB, 2157x1728, DSC01600.jpg)
9246
>раздельные LOD'ы для моделей
v2.0: до последнего собирался забить, но всё-таки реализовал общее пространство вершин и индексов в пределах батча (которых у меша может быть и несколько). Так что теперь уровни детализации различаются лишь смещением в индексном буфере. Тем более удобно, что работа с одноуровневыми мешами вообще не меняется по сравнению с версией без поддержки LOD'ов, в отличие от варианта с полностью независимыми уровнями. Эх, если бы я понял это сразу, сэкономил бы два дня.
No. 9253    
Файл: 136547370565.png-(499.93KB, 1153x626, 204935663.png)
9253
До демки им ещё далековато...
Теперь физическим телам автоматически задаются корректные центры тяжести и моменты инерции.
No. 9254    
>>9253
Страх-то какой. Добавь света, не подражай разработчикам современного инди-говна.
No. 9255    
>>9254
Темнота маскирует недостатки.
А если серьёзно, то на свету такие паучки выглядят неаутентично.
No. 9256    
>>9255
Но в темноте они выглядят криповато. Нет, если делается хоррор-шутер вроде FEAR, то все окей, но вот в противном случае... Я чуть не обосрался, когда на скриншот посмотрел. Сейчас игру скачаю, попробую запустить.
No. 9257    
Файл: 136551346249.png-(143.21KB, 1632x918, Безымянный.png)
9257
>>9256
Попробовал, вот что получилось.
No. 9258    
Файл: 136551348653.rar-(22.40KB, log-Shu [debug].rar)
9258
>>9257
Лог.
No. 9263    
Файл: 136551958767.gif-(55.44KB, 660x662, 20060829_86983.gif)
9263
>>9256
Задумывался некоторый крипи-элемент, да. Демка пока без паучков.
>черный экран
А вот это плохо, проверял на двух нвидиях — всё работало. Перескачай; если ничего не изменилось — выставь в конфиге forceOld = true. О результатах доложить.
No. 9265    
Файл: 13655389648.png-(3.03MB, 1632x918, Безымянный.png)
9265
>>9263
Нет, не помогло. А вот 0.0038 версия работает нормально.
No. 9266    
Файл: 136555309083.png-(98.45KB, 450x300, lazaruspeka2.png)
9266
>>9265
>_<" Не знаю, что и думать. Учитывая, что гуи рисуется. А если выключить постпроцесс (G)?
No. 9267    
Файл: 13655790802.png-(743.94KB, 1632x918, Безымянный.png)
9267
>>9266
Не-а, не помогло. Инвентарь рисуется, если что.
No. 9268    
>>9255
>Темнота маскирует недостатки.
Вот это главная проблема современного индиговна, зачем делать что-то хорошо, когда можно сделать плохо и просто все спрятать в темноте. Не делай так, это выглядит еще хуже, на самом деле.
No. 9269    
Охеренный крузис, анон.
No. 9270    
У меня к тебе два вопроса, разработчик.
1.Что за хурма? Почему нельзя использовать вещи из инаентаря?
2.В чём сейчас цель? Нашёл две двери и убил вторую Тируно, больше ничего нет.
No. 9272    
Файл: 136569295024.jpg-(47.78KB, 1024x576, dajbaster-dotyanis-do-neba-2.jpg)
9272
>>9270
>Почему нельзя использовать вещи из инаентаря?
Потому что не всё сразу. Exercise some patience, my Lord...
Ну и... больше и правда ничего нет. :(
No. 9273    
Ну ладно. Если ты планируешь её таки доделать, то можно и подождать. .
Алсо, где можно скачать версию с Суигинто?
No. 9274    
>>9273
Не на что там смотреть.
No. 9276    
Ну все равно. Там есть Суигинто. :3
No. 9278    
Какой компилятор ты используешь?
No. 9304    
Файл: 136603821925.jpg-(168.30KB, 900x900, Diebuster_by_RightHandOfDoom.jpg)
9304
Расставил кости монстроняше, продумал её поведение и реализацию паутины. Пойду запилю паутину.

>>9278
FPC же.
No. 9311    
Файл: 136624038155.png-(47.60KB, 1366x725, ascii.png)
9311
В сугубо производственных целях добавил текстурной утилите примитивную генерацию ascii-art'а.
No. 9319    
Файл: 136666710621.png-(647.82KB, 527x707, Untitled-1.png)
9319
Планировку >>9311 забраковал сразу же, но фанарт есть фанарт.
"Если долго всматриваться, то можно увидеть, как один человек засовывает руку в пукан другого, привязанного человека."
Второй без пояснений.
No. 9320    
Файл: 136666717243.jpg-(551.22KB, 1179x744, top2_chara_02.jpg)
9320
Сделал:
— Переключение между музыкальными темами в зависимости от локации. :3
Причём состояние прерванной темы запоминается.
— Прототип застревабельной паутины. Выглядит отвратительно, надо будет запилить анизотропное освещение.

Обе вещи можно увидеть в соответствующем ваулте (L).
No. 9322    
ОП а ты игру один делаешЬ?
No. 9330    
>>9322
Угу.
No. 9335    
Файл: 136693499664.png-(810.75KB, 1153x626, 22558556.png)
9335
Чёрт, надо бы добавить кукле нормальные переходы между состояниями, т. е., помимо мгновенных и всецело полагающихся на разруливание плавных переходов в скелете, полновесные анимации. А то в рамках текущей реализации пикрелейтед даже красиво появиться не может.
No. 9337    
Файл: 136707480628.jpg-(79.14KB, 527x600, 1230077i.jpg)
9337
>>9335
Сделал. Просто попытайтесь взлететь. :3
to-do: зубастик.
No. 9358    
Файл: 136726263511.jpg-(815.68KB, 1680x1050, gunbuster-vs-diebuster-11.jpg)
9358
Полностью переписал отложенную выгрузку ресурсов и добавил наравне с критическими секциями их младших сёстёр — http://msdn.microsoft.com/en-us/library/aa904937%28v=vs.85%29.aspx . Они занимают ровно указатель и поддерживают неэксклюзивные захваты, но не рекурсию.
No. 9371    
Файл: 136745950759.jpg-(221.78KB, 500x500, 68048.jpg)
9371
Написал вменяемый импорт анимаций из Collada. FUCK YEAH
(Именно нативных анимаций по ключевым кадрам. До этого извращался, импортируя положения скелета по отдельности, ага).
Ничего сложного, как оказалось, но этот формат я всё равно ненавижу.
No. 9375    
Что тобой движет кроме интереса?
No. 9389    
Файл: 136759656762.png-(1.52MB, 1153x1252, ~20355451.png)
9389
Не удержался и запилил заготовку для инверсной кинематики.
Выложу, когда (если >_<) допишу ему стейты и AI.

>>9375
"Слава на ычане, лопаты денег, Зун руку пожимает..."
Будто интереса недостаточно. Полный гд.ру таких.
No. 9396    
Файл: 136764242514.jpg-(271.22KB, 847x1000, 1299054342826.jpg)
9396
>>9389

Смесь чеширского кота и Флани?
No. 9427    
Файл: 136769280279.png-(652.31KB, 1153x626, [04-05-2013] 162105444.png)
9427
>>9396
Угу.
Плюс, из моего подсознания вытянули, что это Melon Bread из Gunstar Heroes.

А вот профилировка всего этого дела (скелетов, то есть) совсем невесёлые результаты выдаёт: 3 несчастных скелета кушают всего в 1.5 раза меньше, чем вся физика. Впрочем, они должны очень здорово оптимизироваться, и я давно собирался запилить автоматическое отрезание костей в зависимости от LOD'а. В идеальном случае (слишком идеальном...) это ещё и даст поддержку GL2.1-интелов, т. к. сейчас им скелеты из 80 костей вообще в шейдерные константы не влазят. >_>
No. 9430    
Файл: 136770423286.jpg-(50.85KB, 1088x870, _ggamescreen.jpg)
9430
У меня только чёрный экран и миникарта.

nVidia GT610 Windows 7 64
No. 9431    
Файл: 136770871879.7z-(244.60KB, Shu [9430-kun].7z)
9431
>>9430
Ухуху. По ходу, нашёл глупую ошибку.
Перескачай или запусти с этой экзешкой. Если заработает, то ваши с >>9267 нвидии были правы. Если нет — кинь лог.
No. 9432    
Файл: 13677101559.rar-(23.74KB, log-Shu [9430-kun].rar)
9432
Ничего не изменилось, игра работает, но картинки нету, хотя HUD весь выводится.
Приложил лог.
>>9430-кун
No. 9435    
Файл: 136771563894.7z-(183.28KB, Shu-9432.7z)
9435
>>9432
А я верил. ;_;
Проверь эту ещё.
No. 9442    
Файл: 136774814868.png-(122.74KB, 1616x880, 105361658.png)
9442
>>9435
Тоже самое.
И ещё этот экзешник лога не оставил.
No. 9443    
Файл: 136774985329.7z-(1.41MB, GL-9442.7z)
9443
>>9442
>лога не оставил
Так и задумано.
>Тоже самое.
Всё плохо. ;_;

Даже содержимое мини-карты рисуется, а это не GUI ни разу. А, скажем, принципиально такие же крылья — нет. Что за дела.
Попробуй заменить data/GL.pk этим и отключи постпроцесс (G). Не поможет — нажми L и посмотри по сторонам, хоть что-нибудь видно?
No. 9444    
Файл: 13677526533.png-(142.43KB, 1616x880, 43098094.png)
9444
>>9443
Ничего.
Теперь еще по ESC, только графика закрывается, а сам процесс висит в менеджере и музыка играет.
No. 9445    
>>9444
Может у меня в системе что-то не установленно? Ты же на open gl пишешь?
Другие игры идут.
No. 9447    
Файл: 136775706054.jpg-(276.28KB, 500x578, 200905270927185b6.jpg)
9447
>>9445
Такова уж специфика OpenGL в случае с зоопарком железа: нет эталонного устройства, как у D3D, каждый поддерживает как вздумается. Попробуй обновить драйвер видеокарты.

>а сам процесс висит в менеджере и музыка играет
А вот это уже моя ошибка. Исправил.
No. 9449    
>>9447
>Исправил
почти исправил t_t
No. 9450    
>>9449
короче, перепишу потоки на чистый винапи. очень похоже на то, что WaitForThreadTerminate из FPC RTL странно ведёт себя на уничтоженном или ещё хуже — уничтожаемом в данный момент потоке, т. к. не разделяет остановку потока и CloseHandle, в отличие от более высокоуровневых средств. так что через полчаса ещё более почти исправлю, если повезёт — полностью.
No. 9451    
То, что чистый winapi не нужен, даже сами microsoft говорят.
No. 9453    
>>9451
Ну, они много чего говорят. И знай себе C++ уродуют. :3
Btw, переписал и вроде работает.
No. 9455    
>FPC
только не говори, что то паскаль.
No. 9456    
>>9451
пиздеть на бордах. что может быть лучше?
No. 9462    
Файл: 13678840139.jpg-(82.30KB, 1130x590, ~.jpg)
9462
По ходу дела возникла задача смотреть из точки A в точку B и при этом держать голову как можно ближе к направлению, куда "дует" гравитация. Не долго думая, обобщил до следующей: найти поворот вокруг оси A, максимизирующий скалярное произведение повёрнутого им вектора B и фиксированного вектора С. Решение оказалось очень простым: повернуться на ориентированный угол между проекциями B и C на плоскость, перпендикулярную оси. Может, кому пригодится. :3

function AlignToGravity(const axis, up, gravity: tVec3): tQuaternion;
var
  plane: tVec3 absolute axis;
  a, b: tVec3;
begin
  a := plane >< up >< plane;
  b := plane >< gravity >< plane;
  result := QRotation(Angle(a, b) * Sign(Mat3(axis, up, gravity).Determinant), axis);
end;

>< — векторное произведение.
Изначальная формулировка подразумевает частный случай, когда upaxis — тогда up, разумеется, можно не проецировать.
И снова фанарт.
No. 9463    
>>9456
man WinRT
No. 9471    
Файл: 136794966198.jpg-(148.80KB, 400x480, 5_anime_tetrad_156_enl.jpg)
9471
Эмммммм. Как ограничить вращение конусом?
А с сохранением twist составляющей, как в ball-and-socket joint?
Anyone?

Пока придумал вот что: α — угол между повёрнутым вектором и осью конуса, β — половинный угол в вершине конуса; если α <= β, оставляем как есть, иначе интерполируем поворот (кватернион) между поворотом к оси конуса и им самим с параметром β/α. В общем-то приемлемо, но на больших углах даёт погрешность, а значит, неверно.
No. 9473    
>>9471
Оба вопроса сняты. Решил работой чисто с векторами — явным поворотом на разность углов.
No. 9477    
>>9463
Икспертиза уровня сосача. Зачем она здесь?
No. 9481    
Файл: 136811682770.png-(884.73KB, 1153x626, 81628971.png)
9481
Прикрутил EXT_direct_state_access, называется.
Ладно, хватит ерундой заниматься.
No. 9482    
Файл: 136812359010.png-(761.78KB, 1280x720, 6b6539_diebuster 02.png)
9482
Стивы-Стивы-Стивы!

Я тут абсолютно внезапно обновил драйвер одной ноутбучной нвидии и увидел тот самый чёрный экран! :3 (>>9257>>9430) А значит, смогу теперь его исправить. Не прямо сейчас, но в ближайшие N часов — наверняка.
No. 9483    
>>9482
И даже не на одной такое, а на всех, что есть. Я отстал от жизни T_T
No. 9491    
Файл: 136820623443.jpg-(84.58KB, 450x600, 443312i.jpg)
9491
Исправил! ^_^

Разумеется, ошибка была с моей стороны: зачем-то рисовались объекты GUI без текстуры (окна без фона, например). Но ловил я её раз в 20 дольше, чем рассчитывал. И вот почему:

— Чтение текстуры #0 может стабильно возвращать (0, 0, 0, 0), а не мусор или хотя бы дефолтные (0, 0, 0, 1).

— Читать текстуру #0 опасно для жизни. То есть по спекам, конечно, всего лишь возвращается мусор, но кто ж их читает? В новых драйверах NV это способно каким-то непостижимым образом перевернуть стейт OpenGL с ног на голову; как минимум, покорёжить сэмплеры (у меня ещё задело gl_FrontFace) ТАК, что их модификация оказывается бесполезной. (Это ж какой должен быть говнокод в драйверах, чтобы подобные эффекты вообще существовали?)

В свете последнего странно, что прежние версии вообще работали. Но уже не важно.
No. 9492    
>>9491

Ты уже наверное сам драйвера писать можешь :3
No. 9499    
>>9491
>текстуры #0
А все потому, что текстуры 0 нет, текстуры выделяются с номера 1, использование 0 ведет к неопределенному поведению, в том числе и мусор, в том числе может быть и чужая память, и следующая запись туда может вообще все распидорасить, то же самое, что писать в хип после free и тысячи аллокаций. Вообще драйвера нвидии странные, помню радеон у меня, когда я ошибся в биндинге аттрибутов, рисовал непонятно что, как и должно было быть, а нвидия это заметила и простила и я получал на ней правильную картинку, а я думал, что врет радеон и долго искал ошибку в стороне драйвера.
No. 9526    
>McAfee-GW-Edition Heuristic.BehavesLike.Win32.ModifiedUPX.C
>TheHacker Trojan/Downloader.Agent.flsr
Reported.
No. 9527    
Файл: 136876516444.jpg-(658.98KB, 840x840, 25569102.jpg)
9527
>>9526
>ModifiedUPX
Ой-ой-ой-ой-ой, подумаешь, да кто не знает про UPX. Чёртовы параноики. -_-

Я тут запилил примитивный AI для зубастика. (Не пинайте ногами, на данный момент я не умею AI точно так же, как не умел недавно потоки, да и архитектура довольно... странная получилась: стейты то и дело вешают и снимают таймеры, https://sourceforge.net/p/rr-rr/code/HEAD/tree/shu-work/data/proto/toothy/toothy_ai.lua). И думаю вот, писать отдельные и по возможности уникальные спагетти для каждой разновидности персонажей или обобщить так же, как кукол. Склоняюсь к первому варианту.
No. 9529    
Файл: 136879385980.txt-(38.20KB, ExternalAIOverview[1].txt)
9529
>>9527
Сделай несколько черт характера, соединяй их для получения разных AI.
No. 9549    
Файл: 136891250586.jpg-(68.58KB, 487x600, 1832929i.jpg)
9549
Запилил исчезновение неактуальных HUD'ов (Num456789). Почти как в Скайриме!
No. 9556    
http://www.creativecrash.com/tutorials/spider-animations-tutorial
No. 9561    
Файл: 136908325881.gif-(559.52KB, 320x240, arakune.gif)
9561
>>9556
:3
No. 9570    
Тред не читал но будет ли что то типа арены где можно сырно побить монстров, а ОП?
No. 9571    
Файл: 136929818589.png-(1.27MB, 1344x727, 23_05_2013 12:26:00_423.png)
9571
ОП, а исходный код в открытом доступе?
No. 9572    
Файл: 13693120137.png-(1.29MB, 900x1200, 33885090.png)
9572
>>9570
Скорее "трёхмерный рогалик".
>>9571
...

Господа, как и возможно ли в принципе запечь анимацию, полученную IK-солверами, в ключевые (подчёркиваю — не тупо все) кадры самих костей (3ds max)?!
No. 9578    
Файл: 13694527535.jpg-(601.66KB, 800x1069, 462707276d3c6c1aa6ce0efdfbc36b827fb97b9f.jpg)
9578
Начал паучков, но параллельно появилась парочка безумных идей:
Системы частиц — если не заморачиваться, элементарно.
Save / Load — а вот на это потенциально убью кучу времени (и всё равно зафейлю), но оно того стоит.
No. 9579    
>>9578
Не заморачивайся пока, няша.
Тем более, сохранение тебе придется переделывать из-за каждой новой фичи.
No. 9582    
>>9579
> Тем более, сохранение тебе придется переделывать из-за каждой новой фичи.
Бедные императивщики.
No. 9584    
>>9579
>сохранение тебе придется переделывать из-за каждой новой фичи.
Что мешает воспользоваться функциям READ и PRINT?

http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_rd.htm
No. 9586    
Файл: 13695090633.jpg-(304.33KB, 934x934, 24081263.jpg)
9586
>>9579
Я хочу "(полу)автоматическую" (со скидкой на неуправляемость и отсутствие RTTI) сериализацию графа объектов, как в (dot)(ОТ СПАМБОТА СЛЫШУ)NET/джаве — если вдруг запилю такую, то единственной проблемой останется несовместимость версий.

>>9582
Утю-тю, и какая же парадигма меняет суть сериализации?
No. 9587    
>>9586
>Утю-тю, и какая же парадигма меняет суть сериализации?
Динамическая типизация?
No. 9588    
>>9587
Сторонний парсер/сериализатор может это делать.
No. 9589    
>>9588
Стороннему сериализатору одинаково надо знать тип сериализуемого объекта.

Единственный простой способ что-то сохранить в C/C++ - это дамп всей кучи и запрет на использование абсолютных ссылок.
No. 9590    
>>9586
>со скидкой на неуправляемость и отсутствие RTTI
У тебя AAA+ проект, что тебе именно кресты дались? Тем более сейчас даже физика и AI на GPU выполняются: http://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf

т.е. можешь хоть на Ruby писать.
No. 9592    
Файл: 136959231913.jpg-(161.53KB, 1920x1080, shot3336-25.jpg)
9592
>>9586
> Утю-тю, и какая же парадигма меняет суть сериализации?
Функциональная, например. Иммутабельность => сохранение и восстановление состояния тривиально.
No. 9593    
Файл: 136960969059.png-(490.12KB, 1153x626, 26_05_2013 23:43:19_444.png)
9593
>>9589
>дамп всей кучи и запрет на использование абсолютных ссылок.
Кстати, пока искал чего-нибудь почитать по теме, нашёл на гд.ру похожую идею: выделить блок памяти по фиксированному адресу и распределять данные в нём. Но это не круто, мне намного симпатичнее Boost.Serialization.

>>9592
Да нет, посмотрел примеры на stackoverflow выучить этот ваш хаскель, что ли — проблемы и, например, подход к циклическим ссылкам ровно те же.
No. 9594    
>>9593
> Да нет, посмотрел примеры на stackoverflow выучить этот ваш хаскель, что ли — проблемы и, например, подход к циклическим ссылкам ровно те же.
Не знаю, какие примеры ты смотрел, но выводы неправильные. http://hpaste.org/88668
За такую общность, правда, приходится расплачиваться долей производительности: иммутабельность в общем случае добавляет константный оверхед.
No. 9598    
ОП, зделай себе редактор карт типа http://www.youtube.com/watch?v=aR6k7SZYYWE
No. 9619    
Файл: 136986926472.png-(375.93KB, 512x512, 26433849.png)
9619
>>9598
Нужен. Но ЛЕЕЕЕЕЕЕЕНЬ ;_;
В перспективе без него никуда, но по вышеозначенной причине, скорее всего, ограничусь "режимом Бога" и консолью.

Запилил партиклы. :3
...забыв и про геометрические шейдеры, и про ультимейт: частицы с постоянными параметрами, живущие в локальных координатах эмиттера — костры подходят — можно вообще создать единожды при инициализации системы, а дальше рассчитывать полностью на GPU (т. е. умершие возрождаются — позиция вычисляется исходя из (time + shift + deadZone) % lifetime). Завтра займусь оптимизацией.
No. 9621    
>>9619
*очевидный фикс: (time + shift) % (lifetime + deadZone)
No. 9624    
Файл: 136992423378.jpg-(17.12KB, 500x288, 060eecae.jpg)
9624
А как это чудо компилять под linux?
Или только ручками? Тогда кокие у него зависимости?
Под вайном он забавно падает, лол.
No. 9629    
Файл: 136994193422.jpg-(245.50KB, 1240x1754, 20489982.jpg)
9629
>>9624
Никак.
>Под вайном он забавно падает, лол.
Не должен. Если видеокарта тянет OpenGL 2.1 (а лучше 3.2) — проверь родные драйверы.

ОПТИМИЗИРОВАЛ системы частиц (>>9619). Можно пойти ещё дальше: объединять меши одинаковых систем, жертвуя уникальностью, — но это уже не к спеху.
No. 9644    
Лазил по соурсворджу и наткнулся на 410chan. За что мне такая жизнь, а?
No. 9647    
Файл: 137043432143.jpg-(562.55KB, 1000x1330, 21499267.jpg)
9647
>>9644
У нас ты станешь девочкой-волшебницей...

Тем временем я продолжаю думать, что пилю сериализацию, и наконец-то заметил в списке своих расширений Binary Shaders — они на очереди.
No. 9650    
ОП, тебе ещё не надоело работать в одиночку?
No. 9653    
Файл: 137054394214.jpg-(868.15KB, 900x1200, 19369511.jpg)
9653
...Точнее даже как в том анекдоте:
"Написал сериализацию. Сейчас работаю над десериализацией".

>>9650
А что, порисовать хочешь? :3
No. 9654    
>>9653
Нет, просто рано или поздно тебе надоест в своей песочнице возиться и захочется пилить что-то новое и интересное с другими людьми. Я всё жду этого момента.
No. 9656    
>>9654
Ты не понимаешь сути движкописательства.
мимодвижкописатель
No. 9657    
>>9656
Я не могу не понимать сути движкописательства, потому что я тут самый первый мимодвижкописатель.
No. 9658    
>>9657
Нет Я!
No. 9659    
>>9657
Первый движкописатель, любит пилить в компании... Эрогей штоле?
No. 9660    
Файл: 137062826080.jpg-(79.69KB, 539x440, lift.jpg)
9660
>>9654
Действительно. Лучше бы помог мне LispOS пилить (http://410chan.org/dev/res/8824.html)

Нужна няша разбирающаяся в тонкостях микроядерных OS и JIT-компиляции.

Графона конечно не будет, но графон и не нужен, когда у тебя такой-то менеджер процессов.
No. 9662    
>>9654
Нет, не надоест. Мне тоже за 4 года не надоело, это не может надоесть.
No. 9663    
>>9662
А мне надоело. Через 5 лет. Я нашёл няш-художников, и теперь мы делаем игры. Не такие крутые, как хотелось бы, но игры, а не движки.
самый первый мимодвижкописатель
No. 9666    
ОП, так что ты думаешь про микроядро? Каковы шансы убить Линупс и прочие C/C++ мерзости?
No. 9668    
Файл: 137073939224.png-(8.92KB, 652x391, se.png)
9668
>>9654>>9657>>9663
;_;

Сериализовал граф объектов. Завтра уже сегодня >_<" добавлю в минимальный пример ВСЕ грабли, и, если он при этом не развалится, второй пунктик >>9578 будет лишь вопросом времени.
No. 9670    
>>4274
ОП, а поведай, какой тип данных ты используешь для идентификации ресурсов. Т.е., например, есть у тебя объект "сырно с крылышками". Каким образом он ссылается, скажем, на текстуру крылышек?
No. 9671    
Файл: 137079297654.png-(1.54KB, 180x180, 9895629.png)
9671
>>9670
Имя файла относительно рабочего каталога.
No. 9673    
Файл: 137082089739.png-(435.02KB, 1000x666, 12991099.png)
9673
Может быть, и ерундой занимаюсь... Но, по моему скромному мнению, это, во-первых, нужно, во-вторых, стоит отладить ДО прикручивания к движку.

Так вот. Proof of concept сериализации графа объектов:
http://sourceforge.net/projects/rr-rr/files/serialization-poc.rar/download
Если вдруг кому не лень, попробуйте её сломать. :3
Прошу заметить, что "объекты-из-файлов" хранятся в сейве в виде имён файлов.

Предвижу две проблемы в реальном применении:

— Сериализация состояния скрипта. Продублировать ту же систему для Lua-типов не проблема, однако хранение в сейве дампов всех засветившихся функций меня не радует — при таком раскладе их изменения не отразятся на сейве... возможное решение — как-нибудь назначить скриптовым функциям уникальные идентификаторы (я изначально делал что-то неправильно?..);

— Цепочки функций обратной связи на уничтожение объекта. Сериализовывать их не стоит из идеологических соображений (хотя...), а как-то восстанавливать придётся.
No. 9685    
>>9663
Что интересного в производстве игор? Они же все равно получаются унылыми и одноразовыми. А еще их разработка когда-то кончается и нужно выдумывать новую игру.
No. 9686    
>>9685
> Что интересного в производстве игор?
Программирование вычислений в режиме soft-realtime?
No. 9693    
>>9685
>А еще их разработка когда-то кончается и нужно выдумывать новую игру.
Это самое хорошее же!
А вообще, нет ничего лучше выпуска готового продукта. Тут и радость от завершения работы, и гордость за конечный результат, и ощущение свободы. Один раз попробовав, хочется ещё.
No. 9703    
>>9693
Никогда этого не понимал. Каждому свое, думаю.
No. 9710    
Файл: 13713963146.png-(32.74KB, 645x293, Screen Shot 2013-06-16 at 19_23_30.png)
9710
ОП, ну зачем тебе С/С++? Негодный же язык.

Lisp:
point X Y => | x => X | y => Y | metric => X^2+Y^2 sqrt | + P => point X+P.x Y+P.y


C/C++
class point { private: int X; int Y; public: point (int XX, int YY) { X=XX; Y=YY; } int x () { return X; } int y () { return Y; } metric () { return sqrt(X^2+Y^2); } point operator + (P) { return pow(P.x(),2)+pow(P.y(),2); } };

No. 9711    
Файл: 137139844854.png-(2.42MB, 1153x1252, 16_06_2013 16:44:24_750.png)
9711
>>9710
Какой ещё C++... :3
Но и он был бы сверхгодным, если бы умел модульность.
>>9685
>А еще их разработка когда-то кончается
;___;

Сохраняю и загружаю мухоморы между мирами — считая с самим сериализатором, это процентов 15~20 от всего, что должно сохраняться. Потом меню запилю (название придумал, но пока не скажу ^_^). И я хотел бы сделать это до бамплимита, так что не сильно шумите (это к тебе, Золотце, относится).
No. 9712    
>>9685
Зависит от игры. Какие-нибудь рогалики можно всю жизнь пилить.
No. 9714    
Файл: 137149815244.png-(265.69KB, 908x798, Screen Shot 2013-06-17 at 23_41_38.png)
9714
>>9711
>к тебе, Золотце, относится
а что с 0chan.hk/c/?
выдаёт пикрилейтед
No. 9718    
Файл: 137153704038.jpg-(471.29KB, 600x1273, 35093190.jpg)
9718
С ходу (кроме Newton) скомпилировалось под Win64. Debug-версия может сходить с ума, но это не (только) из-за меня.
http://sourceforge.net/projects/rr-rr/files/rr%200.0041.5_psy64.rar/download
No. 9720    
Алсо, меня не будет недельки полторы.
No. 9723    
>>9710
> C/C++
> class
> C
> class
/0
> C/C++
> /
> /
ЛИШП/ХАШКЕЛЬ
No. 9725    
Файл: 137158350730.jpg-(171.55KB, 1147x800, 4a3eea102c2e5a7dba16c19294f7d85b821a04ab.jpg)
9725
>>9723
бедняша, "С/С++" пишут чтобы показать, что в сортах не разбираются.

см http://www.dreamsongs.com/RiseOfWorseIsBetter.html


POSIX - синоним для относительно стабильной части API Линупса и концепции Worse is Better.

работа функций отсутствующих в ПОЗИХе не гарантируется ВООБЩЕ. Но тебе и ПОЗИХ хватит для undefined behaviour. Единственный способ избежать segmentation fault - отказаться от Линупса и не писать на C/C++ вообще. На Haskell тоже не пиши, иначе девочкой станешь.
No. 9726    
>>9725

посикс-хэйтер-кун, ты видимо не работал с другими промышленными АПИ раз говоришь что оно ужасно.
Или приведи пример обратного. иначе ты просто ниасилятор, да
No. 9728    
Файл: 137164666359.jpg-(327.67KB, 700x992, 14.jpg)
9728
>>9726
Я вообще никогда не работал (безработный же).

Однако знаком с Common Lisp и наслышан о Lisp-машинах, где C/C++ был лишь для совместимости Линупсyным софтом, как cygwin в Windows.

Посему "C/C++" пишу чтобы выказать пренибрежение к недоязыку и недо-ос Линупс.
No. 9732    
>>9728

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

Все правильно делаешь
No. 9733    
Файл: 137177387934.jpg-(214.53KB, 799x999, 35c455899a6febaf9dc5fd6eff96c7d4.jpg)
9733
>>9732
Это ОП-то работодатель?
No. 9735    
В своей недорезюмешечки ты также написал в соседней нити.
No. 9738    
Файл: 137180896723.jpg-(1.40MB, 800x1000, 24282120.jpg)
9738
Ребят, ну я же попросил :C

Попробовал коммитнуть с кофеварки, та не прожевала файл с комментарием в UTF-8 (shame on you, SVN command-line tool!). Дублирую здесь.

— База физических материалов. Бинарная. Связывается с миром единожды, идентификация по именам.
— Пул уникальных физических примитивов (одинаковые объединяются) и запрос у Newton подробной информации о них.
— (Де)сериализация: Rigid Primitive, Rigid Body; начал Trail & Particle System. Ф-фух...
— Сериализация теперь отключаема.
— Значительно (~3x) оптимизировал сериализацию путевых точек. Теперь хранение их в сейве будет меньшей проблемой... запоминать сгенерированные рёбра в отдельном списке?
— Опечатка в USystem.pas: SRWLockShared'ам присваивались их SRWLockExclusive-аналоги.
— GetFileVersion — няшность. (Но это вроде уже было).
— Теперь можно изкоробки сохранять флоаты и векторы в поток в формате half16 либо 8- и 16-битных нормализованных целых (но не -1..1, а с известными границами).
— Хэш флоата с эпсилоном (для пулов, допускающих небольшую разбежку) и Crc64 (последний не пригодился, но пусть будет).
— Критичные по размеру форматы задают битность динамически.

P.S. Фактически всё, что я сделал — научился сериализовывать ту пачку мухоморов вместе с физикой. Осталось ещё куча всего, но чуть меньше, чем в прошлый раз. (Тот же скрипт, где вся логика... (⇀‸↼‶) А, точно, луа любезно предоставила для таких случаев lua_upvalueid и lua_upvaluejoin).
No. 9739    
Это опять золотце?
No. 10002    
Файл: 13721777581.jpg-(261.09KB, 1385x1971, 27954029.jpg)
10002
Willkommen in meinen Schloss.
>>9999
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]

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