![]() |
Ответ: C3D Engine
Понятно... конечно странная фигня... у меня Win7 x86, Nvidia - такого глюка нет, специально сейчас проверил...
|
Ответ: C3D Engine
ППЦ я не понимаю почему такая задержка
HolyDel: В ядре: сначала вызывается scene->draw(); в сцене лежит std::vector<CNode*> _nodes; //это список объектов для отрисовки кратко, что делает CScene::draw() Код:
............... Код:
void CNode::drawVBO(glm::mat4 &m_view) Код:
if(_vbuffer && _ibuffer) |
Ответ: C3D Engine
ты передаешь три матрицы. а я одну. и в шейдере их множишь получается (для каждой вершины) а я один раз, правда на цпу, так быстрее.
ты проверку на фрустум делаешь по боксу, а я по сфере, так быстрее. ну и насчет сеток - у тебя один vbo/ibo на сцену, или 4096? у меня один, и у блица с хорсом тоже, за остальные не скажу. хотя это не так сильно влияет. |
Ответ: C3D Engine
спасибо что посмотрел код
ты передаешь три матрицы. а я одну. и в шейдере их множишь получается (для каждой вершины) а я один раз, правда на цпу, так быстрее. я пробовал - дольше! ты проверку на фрустум делаешь по боксу, а я по сфере, так быстрее. имхо - меньше точность неужели одного буффера хватит на кучу сложных объектов? O_o один буфер на всё, дал прирост 5 фпс... ниочем |
Ответ: C3D Engine
нет. тут дело в том что объекты то одинаковые.
Цитата:
ну и множить, надо понятное дело один раз. т.е. viewproj считаем один раз и model на нее множим столько раз, сколько нод. |
Ответ: C3D Engine
т.е. viewproj считаем один раз и model на нее множим столько раз, сколько нод.
хм - не подумал... спасибо upd: не дало результата... фпс остались такие же |
Ответ: C3D Engine
ну тогда хз ))
надо значит профайлером пройтись. |
Ответ: C3D Engine
|
Ответ: C3D Engine
во, респект! теперь давай выкладывай бинарники чтобы на разном железе потестить ))
анимаци костаня или морфная? |
Ответ: C3D Engine
анимация морфная, бинарники вечером выложу, там кое че подправить надо для интелектуальной сортировки по нескольким критериям, плагин для макса 2010 в комплекте, если от плагина сорцы надо, пиши. У меня плагин для макса любую анимацию в морф делает. Все преобразования на CPU идут через SSE2, так что быстро )))
|
Ответ: C3D Engine
|
Ответ: C3D Engine
С дружелюбностью у тебя конкретно проблемы.
Попросили бинарники для теста, а ты выложил кучу исходников, с bin папкой, где запуск любого exe не даёт ожидаемого.. |
Ответ: C3D Engine
А, сорри...
http://rghost.ru/38625118 |
Ответ: C3D Engine
А фпс где смотреть?
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Ну раз в секунду менять заголовок окна, не съест и 1 фпс..
|
Ответ: C3D Engine
БЛИН! гадский NVIDIA CG. Мне придется переписывать на GLSL... чтоб всякие тангенсы, бинормали передавать без костылей..., ну зато будет еще быстрей =)
|
Ответ: C3D Engine
дружище, а ты можешь выложить отдельно 4096 кубов, отдельно 400 анимированных человечков?
и спецификацию файла бы, я может у себя в движке тоже реализую поддержку анимированных моделей твоего формата. тогда можно будет и на анимации померяться :) |
Ответ: C3D Engine
Хорошо только чуть позже, я тут завяз в дебрях GLSL, чуть изменятся функции движка, будет более гибко, CG выкинул. Как доделаю GLSL, изменю PDF с туторами, выложу новую версию с спецификацией формата, и сорцами для 3ds max SDK. Единственное что бесит, я пока не понял как реализовать.. например куб 8 вершин, но нормалей 12, как это реализовать я хз, если продублировать вершины, то трабла с анимацией возникнет, и некоторые модели отображаются с корявыми UV, и нормалями...
|
Ответ: C3D Engine
если делаешь через glsl то обрати внимание на http://www.opengl.org/registry/specs...er_objects.txt.
http://steps3d.narod.ru/tutorials/se...r-objects.html и откажись от такой удобно штуки как explicit vertex layout. она мало где поддерживается. на тех-же девайсах (кстати, зря ты на них внимания не хочешь обратить, имхо это более перспективное направление) оно не поддерживается, и даже Intel HD 3000 не держит. |
Ответ: C3D Engine
я затачиваю под GMA X4500 самая казуальная плата ))) сделал поддержку GLSL выпилил CG, осталось туторы поправить и готово ), Странно но производительность в 3 раза упала вычислил, что тормозит glDrawElements. Причем все буферы устанавливаются только 1 раз далее за все программу идет glDrawElements, но все равно скорость в 3 раза ниже чем было с CG, че за х?
|
Ответ: C3D Engine
в чем то еще косяки. CG ето выше уровнем чем glsl. оно не может работать быстрее (ну если только как-то хитро шейдеры компилит)
|
Ответ: C3D Engine
Короч я там матрицу считал modelviewproj из-за этого тормозило... а на CG эту матрицу я считал шейдером
УРААААААААААА скороссть еще выше 265 ФПС 4к кубов! |
Ответ: C3D Engine
ты ее считал шейдером для каждой вершины, дружище! на 65к вершинах ты бы понял что ето нехорошо.
вот тебе еще один бенчмарк: http://axelynx.googlecode.com/files/...yBenchmark.zip уже на тяжелую геометрию. |
Ответ: C3D Engine
я предоставил выбор и ты там сам решаешь перемножать в шейдере или в коде, короче в туторе написано.
|
Ответ: C3D Engine
|
Ответ: C3D Engine
|
Ответ: C3D Engine
jimon, это синтетический тест. на цену ентити. понятно, что от реальной игровой ситуации далеко.
|
Ответ: C3D Engine
БИЛД ВЕРСИИ 135
Спецификация формата Архив с скомпилеными туторами Экспортер для 2010 макса Если ошибка, писать мне, что пишет консолька, железо, версия Windows, исходный код. Там сейчас в консоле пишет GLSL error не обращайте внимания... если будет ошибка он напишет текст ошибки |
Ответ: C3D Engine
"формат не измениться никогда" - ошибочная позиция.
Время идёт взгляды меняются.. Реквестируем скелетную анимацию! |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
морф дорого по памяти.
и не гибко. хоть и очень быстро. время морфа прошло... |
Ответ: C3D Engine
Цитата:
у меня 1 морф хоть на 100500 одинаковых объектов может быть, это определяет движок по имени файла... |
Ответ: C3D Engine
смотри.
есть тысяча РАЗНЫХ моделей. по тысяче вертексов. по тысяче кадров на каждую. это будет один миллиард вертексов. при весе вертекса в 12 байт (три флоата) это будет чуть меньше 11,2 гигабайт данных. впринципе две квадры должны справиться ))) та же история со скелеткой (допустим 50 костей на скелет, которые, кстати, хранятся в оперативке и счтаются на цпу, на гпу просто натягивается скелет) 50 (костей) * 1000 (кадров) * 64 (вес одной кости - матрица трансформации, можно еще оптимизировать) * 1000 (моделей) = 763 метра. намного меньше предыдущих 11,2 гигов. |
Ответ: C3D Engine
Как же старые добрые игрушки делали на морфной анимации? Не факт что одновременно ты будешь видеть все 1000 моделей с анимацией по 1000 кадров... я думаю в казуалках точно такого не будет.
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Недавно играл вот в такое:
![]() Мне теперь делать игры в монохроме? Казуальщина предполагает яркую, сочную графику, приятную для глаза и с высокой детализацией. В 3D такое сделать нереально сложно, да и нафиг никому не нужно, все делается в 2D. А там в реалиях десктопов проблем вообще нет, в реалиях мобильных девайсов (основной рынок на сегодня) - свои заморочки, связанные как правило с малым объемом памяти. Разработка 3D движка для казуальщины - игра в разработчика и пустая трата времени, а твое стремление копировать другие просто смишно (юзербар как бэ намекает). |
Ответ: C3D Engine
|
Ответ: C3D Engine
Разговор был не о том, что не надо делать, а о том, что надо решать реальные задачи, даже если ты пишешь для себя. Иначе твой опыт будет бесполезен чуть более чем полностью. Если в один прекрасный день ты ВНЕЗАПНО решишь стать гамедевилопером и устроиться в соответствующую контору, от тебя потребуется с вероятностью 97% писать 2D под iOS/Android. Там все твое 3D никому не нужно, нужны другие скилы -> твой опыт бесполезен. Количество контор занимающихся хардкором/3D ММО исчезающе мало и даже если ты туда попадешь, твой "движок" не имеет ничего общего с реальностью -> твой опыт бесполезен.
|
Ответ: C3D Engine
Это правда. 2D движков и так море, тем более нормальный 2D двиг можно самому за пол недели написать, и не интересно. Я приобрел опыт в оптимизации приложений под c++, тоже не плохо... из всего можно извлеч плюсы...
|
Ответ: C3D Engine
Цитата:
Цитата:
|
Ответ: C3D Engine
BUILD 136 (14.06.2012)
Туториал по освещению (под номером 5) - в этом туториале я показываю как можно завернуть хэндлы объектов в классы и использовать их Функции для передачи параметров напрямую в шейдер (не автопараметры) Логирование в файл Исправлены трансформации нормалей в экспортере Экспортер в комплекте Юзербар теперь не такой упоротый))) скачать Tutorial Проверьте на утечку памяти пожалуйста. Дома на NVIDIA GT240 Windows 7 x86, память не убегает, на работе Windows 7 x86 GMA X4500, кушает 500 кб в минуту |
Ответ: C3D Engine
Прикрутил интуитивное определение на чем анимировать.
Я добавил видео, в котором показываю, как работает normal mapping с динамичным освещением. http://youtu.be/_5GUE0yL4cc |
Ответ: C3D Engine
Заметил такую штуку: если анимировать модель на говноинтеле X4500, то не важно на GPU анимируешь или на CPU FPS одинаковый - вывод: отсой
BUILD 139 (16.06.2012) [*]Туториал по нормал мапам [*]Плоскость отсеченияне глючит с масштабируемыми объектами [*]Исправлены некоторые глюки в ядре [*]Добавлены стандартные имена tangents, modelview, model_normal [*]Все шейдерные переменные присваиваются и расчитываются ТОЛЬКО если имя присутствует в шейдере скачать Tutorial |
Ответ: C3D Engine
Демки из этого поста ->
tutorial № 1 - ~10k fps tutorial № 2 - 1115 fps (всё в кадре) tutorial № 3 - ~6900 fps (всё в кадре) tutorial № 4 - ~4270 fps (всё в кадре) tutorial № 6 - ~2050 fps (всё в кадре) tutorial № 7 - ~7k fps (всё в кадре) |
Ответ: C3D Engine
Супер! Спасибо что потестил. Мне это очень важно
|
Ответ: C3D Engine
Ура! Завел под Андроидом свой движок. Пришлось кучу переписывать. Теперь интерфейс ООПшный. Возможность скомпилировать на SDL - это всякие WinCE, Symbian, и т.д.
Свой формат текстур. В комплекте конвертер. Перетаскиваете на него текстуру и она конвертится в понятный движку формат, старые текстуры удалять. Как доведу до ума сделаю внятную инструкцию - выложу версию. |
Ответ: C3D Engine
под андроид на ES 1.0 или 2.0?
|
Ответ: C3D Engine
GLES 2.0
|
Ответ: C3D Engine
HolyDel, будешь портировать учти, что там много заморочек с шейдерами, например нельзя int привести к float. Короче код должен быть строго по спецификации. вместо in out, varying, и attribue. Хотя может это у меня на LG Optimus P500 так... и что бы не тащить jpeg png и т.д. лучше делать свой формат текстур...
|
Ответ: C3D Engine
Цитата:
ну будут значит ax_in ax_out которые в зависимости от ситуации будут или varying или out. вообще респект тебе что завел это дело под андроид. у меня все руки не доходят. кстати, ты на яве ето делал или на НДК? |
Ответ: C3D Engine
Я это делал на НДК. По другому не портировать сишный код. Там тока запуск главной функции на яве. А вообще это ппц геморойное дело, лучше на ранних стадиях начинать портировать, пока не трудно что то переделать в движке ИМХО. Кстати на планшете шейдеры не рисуют объекты почему-то вечером буду разбираться, если че кину инфу... а на телефоне все ок. Даже плавная анимация ))))
P.S. мм я компилял для android 2.3.3 а на планшеье 4.0.3 в этом дело.... |
Ответ: C3D Engine
а у них разве нет обратной совместимости?
|
Ответ: C3D Engine
Теоретически должно быть. Но я не раз натыкался на то что при скачивании игры пишут например не выше 2.3.3 версии... хз, копаться надо
|
Ответ: C3D Engine
HolyDel - учти что нужно индексы хранить unsigned short!!! Не все девайсы работают с 32 битными индексами!! только щас исправил.. теперь и на планшете работает.. ппц такая мелоч, а так долго глюк искал. Кстати странно, на планшете видео mali 400 что мощнее чем на телефоне adreno 200, а телефон тянет 32 битную адресацию. Мистика.
|
Ответ: C3D Engine
16 битные индекса быстрее на многих платформах.
поэтому по возможности я храню в них. |
Ответ: C3D Engine
Скоро вы узнаете что там нет MRT, только на тегровских чипах :)
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
буст очень активно используется в огре.. а glm можно урезать, не очень то он и громоздкий. Можешь в либу скомпилять под разные платформы... и потянуть всего 2 хедера
|
Ответ: C3D Engine
из всего буста в огре используются потоки и дата/время насколько я знаю.
Цитата:
|
Ответ: C3D Engine
Заметил, что GLES, нельзя в шейдере делать так
color += light[i] А нужно делать так color += light[0] спеременной в качестве параметра элемента массива не работает почему-то, думал что как то связано с unsigned, но в GLES в спецификации ни че не нашел по этому поводу... странно... |
Часовой пояс GMT +4, время: 04:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot