![]() |
Ответ: Sigel
1й ~3000
2й ~2200 |
Ответ: Sigel
SBJoker, спасибо. визуально разница заметна?
|
Ответ: Sigel
Как один из вариантов - при загрузке заранее отрендерить твоим способом сглаживания кадров например в два раза больше. Я думаю, при теперешних объёмах ОЗУ картинка 1024*64 сильно нетяготит, а зато получим более сглаженную анимацию без лишних проволочек.
|
Ответ: Sigel
HolyDel, 1я вся рывками..как низкий фпс анимации выглядит..второе всё плавно...
Номер кадра в первом варианте точно правильно считается? |
Ответ: Sigel
ну повози камеру)) все правильно считается
рывками - потому что всего 40 кадров на 10 секунд. 0.25с достаточно чтобы увидеть резкую смену картинки. блицовая анимтекстура вела бы себя точно также. а интерполяция анимтекстуры это уже мой хак. ее надо юзать когда смена кадров анимтекстуры не больше 20-30 раз в секунду. |
Ответ: Sigel
Вложений: 2
демка потипа 2д светлячков.
тут тестится MRT (рендер сразу в несколько текстур) в принципе в этой демке он нафиг не нужен, но все же, чисто проверить будет на других компах работать или не. rectangle текстуры. и фикс того, что окно пропадло при запуске и его нужно было искать (щас вроде нормально, хотя хз) железо скорее всего нужно уровня 6xxx или выше. пока не работает на АТИ. скоро поправлю :) z/x - менять число "фонариков" |
Ответ: Sigel
1250ФПС - 10шт
50ФПС - 1000шт |
Ответ: Sigel
ABTOMAT, окно на сей раз человеческое создалось? Вылезло на передний план?
|
Ответ: Sigel
Фуллскрин же ж
|
Ответ: Sigel
а в фуллскрине и раньше нормально было?
|
Ответ: Sigel
да, в нём нормально.
А окно на заднем плане сидить. |
Ответ: Sigel
Вложений: 1
Авт, проверь вот это еще плиз. скомпилил в оконном режиме.
(на ати по прежнему не работает, в чем причина - еще не разобрался) |
Ответ: Sigel
Теперь с окном всё замечательно :super:
|
Ответ: Sigel
ну и отлично.
переписал систему расширений. теперь они по хитрому инициализирутся. сначала без суффикса, если нет то с ARB, если нет то с EXT. таким образом удалось инстансинг инициализировать на обоих видюхах (у NV он EXT а у ATI - ARB). Убрал наконец возможность менять размеры окна. Ибо она больше мешает, чем помогает. Теперь окно вылазит вперед, как и положено. Сделал возможность рендера в несколько текстур сразу (движек держит до 16). такие дела |
Ответ: Sigel
Вложений: 1
Цитата:
|
Ответ: Sigel
На АТИ открывается вход в Матрицу! :pure_magic: :-D
|
Ответ: Sigel
|
Ответ: Sigel
|
Ответ: Sigel
HolyDel, к Deferred Shading готовишся? :)
|
Ответ: Sigel
MoKa, не совсем. просто технология на глаза попалась, решил по быстрому сделать :)
на самом деле довольно много всего можно завязать на MRT. Например рендеринг в кубемапу за один проход (естественно не всю сцену, а какую нить спец геометрию). Или даже рендер в 3д текстуру, и так тоже можно, да. Или например партиклы на ГПУ, или какая нибудь хитрая анимация. Вобщем технология очень полезная и ограничивает только фантазия. |
Ответ: Sigel
MoKa
а что собстенно от deferred shading надо ? к примеру у меня в jengine уже сейчас можно отрендерить всю сцену (или часть сцены выборочно) с одним шейдером в несколько текстур за раз (mrt рулз), а потом уже работать с этими текстурами (я заюзал рендер через композиторы как в ogre и использую шейдеры cgfx) такого подхода достаточно будет ? но прокручивая всё это в голове я наткнулся на одну проблему, к примеру анимация происходит в вертексном шейдере, а нам надо отрендерить только канал глубины в фрагментном шейдере, как такое сделать если в материале вертексный и фрагментный шейдер не разделимы ? |
Ответ: Sigel
у меня с мрт ассоциируется только "магнитно-резонансная томография", подскажите что курить.
|
Ответ: Sigel
В FX (HLSL) материал, можно было делать инклюды. Можно сделать в одном файле много разновидностей вершинного, а в другом пиксельные, а в третьем только техники, где делать разные комбинации.
Jimon, от Deferred Shading'а требуется по сути уже готовая модель освещения, плюс гибкость для пользовательских шейдеров. |
Ответ: Sigel
jimon попробуй сделать ветвление.
условие на некую uniform переменную. когда она true - тогда рендериш цвет, когда false - тогда глубину. это примерно. |
Ответ: Sigel
Советую ещё Defin'ы покурить, ты можешь сделать ifdef'ов много, и заранее чтобы подготовить разные шейдера, открываешь инклуд файл с дефайнами, там везде ставишь нужные дефайны в зависимости от настроек (это делать нада программой писать, работу с текстовым файлом, почти как ini). И компилишь шейдер, каждый раз когда компилишь, идёт переучёт всего, в том числе и дефайнов.
Прошлый шейдер с этого же файла, но с другими дефайнами, который был скомпилен - естественно не пострадает. |
Ответ: Sigel
MoKa
да,но тебе так хочется иметь отдельную технику RenderZToTexture ? HolyDel в принципе можно, но тогда еще большая нагрузка на код шейдера вот дефолтовый шейдер : Код:
void DefaultMaterial_VS(in float4 Position : POSITION,in float2 UV : TEXCOORD0,out float4 oPosition : POSITION,out float2 oUV : TEXCOORD0,uniform float4x4 ProjMat,uniform float4x4 TexMat) TEX0-TEX8 слои текстур (до 32, ограничено настройками при компиляции) техники могут быть разного уровня качества графики, тогда надо задать имя техники так DefaultMaterial__Q3 (где может быть Q0,Q1,Q2,Q3,Q4 от самого низкого до самого высокого качества) и двиг тогда выберет оптимальную технику как видим уже тут у меня далеко не упрёшь, надо соблюдать формат аннотаций |
Ответ: Sigel
тогда никак. хотя если тебе надо тупо получить глубину, то просто юзай glMaskColor(0,0,0,0);
насколько мне известно, в таком случае пиксельный шейдер вообще не будет обрабатываться (хотя может и будет, все таки там discard (texkill) может быть). |
Ответ: Sigel
jimon, заюзай struct - код будет намного читабельнее и удобнее (это насчёт передачи данных в вершинник, и перенос данных из вершинного в фрагментный).
|
Ответ: Sigel
Цитата:
http://steps3d.narod.ru/tutorials/mrt-tutorial.html на самом деле замечательнейшая фича, наряду с float текстурами, rect текстурами и r2vb (рендер в вершинный буфер). так фактически можно на гпу делать что угодно. у меня в движке это выглядит так: Код:
somefbo->BindTexture(tex1,0); а в шейдере запись пикселя будет уже не Код:
gl_FragColor = bla_bla_bla; Код:
gl_FrafData[0] = color1; |
Ответ: Sigel
Вложений: 2
ввел систему сбора статистики (отдельное спасибо MoKe, за то что навел на мысль).
Она прям сразу оказалась куда полезнее чем я думал. На данный момент в статистику пишется число переключений текстур и шейдеров. Как оказалось, у меня в двиге шейдера переключались даже в том случае, если они не менялись! Т.е тысячу моделей рендерим с одним шейдером - 1000 раз переключается. Исправление этого бага в частности позволило чучуть ускорить вывод мд2 моделей. В архиве старая версия, новая версия и блицовая версия. Скажите плиз, есть ли изминения в плане производительности? Сравните старую и новую версию в F3 режиме (этот режим активен по умолчанию). F1 - софтварный метод F2 - без интерполяции. во второй демке просто жмите пробел - скажите как меняется фпс (до_пробела/после_пробела). Такая уже была, но от нее мало толку было. шейдера то все равно переключались на уровне ГАПИ (на уровне драйвера наверно не, так как все равно немного ускорялось). такие дела. |
Ответ: Sigel
Новая:
F1 - 24 F2 - 244 F3 - 240 Старая: F1 - 22 F2 - 210 F3 - 48 *когда включаю старую, почемуто начинает лагать Aimp... Вторая: 120-160(шейдеров не видно) |
Ответ: Sigel
Вложений: 1
ага. в старой был тпакой глюк.
-=Jack=-, у тебя же АТИ. скажи, третий режим (F3) у тебя сглаживается? Или рывками? Цитата:
на буке с встроенной нвидиа - с 75-80 до тех же 170-180. но ето относительно слабая видюха и довольно мощный проц. |
Ответ: Sigel
какая сейчас текущая версия движка? я смотрю пока по тестам опережает все с чем удалось потестить, респект. Документацию будешь ли делать, когда. примерный процент готовности, тоже напиши
|
Ответ: Sigel
Код:
какая сейчас текущая версия движка? Код:
0) экспорт\импорт бинарного формата 3д моделей ...done Цитата:
Цитата:
http://sigel.likosoft.ru/help пока не вижу необходимости в справке. + сам по себе двиг не слишком сложный, посложне блица и хорса к примеру, но зато куда проще огра или того-же иррлихта. смотрите раздел Samples в справке. Цитата:
Думаю сам двиг готов процентов на 7-10 в плане законченности. Выполню список выше - прибавлю еще 5. причем из того списка самое важное (и самое сложное) - это первые 3 пункта (0..2) |
Ответ: Sigel
Цитата:
|
Ответ: Sigel
ну слава богу. а у блица сколько фпс было? там есть версия в комплекте.
|
Ответ: Sigel
По старому, 3 фпс.
|
Ответ: Sigel
Цитата:
Хотя как не крути, а свой экспортер писать предеться! ну и сответственно свой формат моделек. Хотя это не очень трудная задача =) Если будешь писать экспортер под макс, делай так, чтобы он экспортил с максемально возожной скоростью!!! Ибо сечас юзаю огр, и тут есть 2 экспортера вменяемых, так один может несколько тысяч материалов + сотня тысяц полигонов экспотрнуть за 1-2 секунды, а второй пыхтит на этом же около минуты двух! |
Ответ: Sigel
FDsagizi
тысячу материалов не потянет толком не один двиг, тебе оно надо ? |
Ответ: Sigel
мой нынешний експортер експортит несколько минут тупую геометрию в 10к поликов.
такие дела. думаю бинарный будет побыстрее. |
Ответ: Sigel
Вложений: 1
сделал конвертор s3m файлов в sbs (sigel binary surface).
конвертит относительно долго (ибо еще и оптимизирует индексы) но зато sbs файлы грузятся куда быстрее s3m (на больших моделях они грузятся быстрее в 100-200 раз). и весят меньше. 0-й пункт из списка выше готов. |
Ответ: Sigel
хехе, сразу надо было делать кошерный формат ;)
|
Ответ: Sigel
да я впервые в столь долгую загрузку уперся на прошлой деме. вот и пришлось писать. а так и текстовый вполне устраивал.
|
Ответ: Sigel
Как по мне, то можно уже сечас взять в зубы Max SDK и наваять не сложный плагин!
Чтобы небыло лишних конвертеров ди конвертеров... Ну и если займешся, попробуй написать импортер, пусть он будет кривоват, но хотябы чобы геометрию можно было вернуть. Ибо недавно сталкнулся с проблемой, фал где была карта одного из уровней, на свн не комитилась, а не кто этого не просек. Ну вот, осталися только .mesh файл, а в 3д макс их не засунишь! |
Ответ: Sigel
FDsagizi, конвертор я писал 15 минут (не включая сюда время на написание функций загрузки и сохранения в бинарном формате), а плагин писать 15 дней (включая в них изучение MaxSDK). Он конечно нужен (плагин), но на данный момент есть задачи по актуальнее. по моему мнению.
добавил Entity::Point. направлять можно на 2д точку, 3д точку или объект. ent->Point(x,z) ent->Point(x,y,z) ent->Point(Entity*) + теперь fov по умолчанию 60 - раньше был 45. |
Ответ: Sigel
Вложений: 1
потестите плиз клипплейны.
1,2 включать выключать клипплейны (2шт) стрелки - рулить первым, WASD - вторым. хочется знать корректно ли работает. убирается ли отрезаемая геометрия из конвеера (вторая цифра - число трисов - должна при этом меняться). |
Ответ: Sigel
всё работает.. на более сложной геометрии затестить мб стоит?
|
Ответ: Sigel
Вложений: 1
вот. добавил статую.
вроде нормально обрезается. |
Ответ: Sigel
Вложений: 1
собрал тестик:
ManagedTest.exe - тут грузится ОДНА текстура и каждое прибиндивание текстуры выстанавливает все ее прааметры (если такая текстура уже прибиндена - то заново она не биндится). текст размазан, мне пока лень ето фиксить. UnManagedTest.exe - тут грузится 10 текстур. каждой проставлются свои параметры и при прибиндивании они уже не меняются Z - сортировать список объектов по текстурам (минимизировать их переключения) циферки сверху вниз - фпс, трисов в сцене, переключений текстур, сводно видеопамяти в кб (работает только на ати, на нв должно быть 0) мои результаты: Цитата:
лучше делать мендежмент одинаковых текстур, чем не делать его. Похоже glBindTexture жрет больше чем установка кучи параметров через glTexParameter и т.д. + меньшее время загрузки + экономия видеопамяти. |
Ответ: Sigel
ManagerTest.exe
220 12288 938 0 UnManagerTest.exe - грузится заметно дольше предыдущего 201 12288 914 0 Респект! 20 ФПС - это хорошо! |
Ответ: Sigel
Z нажми. или это с ним?
|
Ответ: Sigel
330 (каждому)
|
Ответ: Sigel
Вложений: 2
сделал хитрую шнягу в шейдерах. чтобы можно было компилить вендоро зависимый код.
теперь в начало кода шейдера пишутся строки (пока по умолчанию одна - определение вендора #define NVIDIA #define AMD #define INTEL таким образом можно вендоро-специфик код выносить в секции #ifdef #endif (в примере это шейдер light.psh). кстати, механизм позволяет писать свои строки. например можно писать качество шейдеров #define QUALITY 1 в зависимости от настроек игры. пофикшеная дема, она теперь не только работает на АТИ, но и освещается более менее нормально. заценяйте! |
Ответ: Sigel
Дефайны рулят! Советую покурить как устроены материалы в HL2, очень круто!
Очень удобно иметь разные файлы с дефайнами, и просто их инклудить, большим рядом шейдеров. Дефайны полюбому рулят. Есть ещё else у них ;). |
Ответ: Sigel
Вложений: 1
Цитата:
Не работает.... Опять! На моей шайтан-видяхе) |
Ответ: Sigel
Ize'g0re, понажимай плиз на c и v. скажи что будет. и кинь логи плиз.
|
Ответ: Sigel
Лог не можу кинуть - я имею вредную привычку прямо из архива тестилки запускать (ну лень мне распаковывать) )
Нажал C/v... одинаков результат - затенение исчезает, пятна матрицы тоже... Не все входы в матрицу пали! |
Ответ: Sigel
Вложений: 1
Цитата:
ize'g0re, проверь плиз еще эту версию. кажется пофикшено. Вложение 5642 теперь еще проблемы с фуллскрином на win7 выявились. |
Ответ: Sigel
Цитата:
Работает, по нажатию с вылазит диффуз, на v - нормал |
Ответ: Sigel
благодарю. это серьезная проблема с шейдерами была. хорошо што у тебя такая хорошая видюха. на моих обоих все работает, даже если неправильно :(
|
Ответ: Sigel
А у мну вообще не запустилась( сразу выдало окно типа отправить отчет об ошибке.
Видюха ATI Radion 9000 SIRIES 64Mb Скорее всего дрова устарели но другие более свежее не подходят! |
Ответ: Sigel
Насколько я знаю, она шейдеры не держит.
Утверждать не буду, но у друга была 9600 (т.е. более поздняя) и там уже ШМ 2.0 не пахала. HolyDel, какие шойдеры нужны для этой демки? |
Ответ: Sigel
без логов я бессилен.
но, кажется проблема в чем то другом. без шейдеров просто картинка была -бы левой. скорее всего проблема в драйверах. хотя сложно без логов гадать (надеюсь, намек понят?) |
Ответ: Sigel
Вложений: 1
сделал отрисовку картинок с float позицией.
в ексешнике 2 - это как раз float режим. кажется что картинка движется более плавно чем в режиме 1 (это режим по умолчанию) |
Часовой пояс GMT +4, время: 14:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot