forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Пишем 3D движок - замену Xors3D (http://forum.boolean.name/showthread.php?t=18971)

St_AnGer 04.03.2014 21:19

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 276049)
Выложил скрин и демку (одна из первых). Шапку постоянно буду править. Там же лог разработки.

Работает :) на основном ПеКа 164 фпс (конфиг в подписи)

Только я тебя огорчу - постоянно шапку править не получится, потому что есть предельный срок на правку поста (если конечно это не было убрано на форуме). По крайней мере раньше было ограничение такое.

Samodelkin 04.03.2014 22:55

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от St_AnGer (Сообщение 276053)
Работает :) на основном ПеКа 164 фпс (конфиг в подписи)

Только я тебя огорчу - постоянно шапку править не получится, потому что есть предельный срок на правку поста (если конечно это не было убрано на форуме). По крайней мере раньше было ограничение такое.

И сейчас такое ограничение есть - я несколько месяцев назад также напоролся.
Вроде как 10 дней.
Кстати тоже призываю убрать такое ограничение - всё самое свежее должно быть в шапке в кратком виде.

mr.DIMAS 05.03.2014 01:11

Ответ: Пишем 3D движок - замену Xors3D
 
Работает.

ФПС:
118 - без объектов.
63 - полностью с объектами.

Конфиг
Проц 2.8 ГГц x 4, 4 Гб оперативки, видюха HD 4870 512 Мб.


Эхъ смотрю я на сего господина, и вспоминаю свои недодвижки. Эхъ было время...

HolyDel 05.03.2014 02:55

Ответ: Пишем 3D движок - замену Xors3D
 
125 фпс когда видно все объекты.
680gt

насчет стерео режима в 3d vision и opengl подтвердилось.
все вот эти PFD_STEREO и GL_BACK_LEFT, GL_BACK_RIGHT на обычной карте не работают (нужна квадра). Хотя что то похожее удается замутить показывая по очереди левый и правый кадр.

moka 05.03.2014 03:18

Ответ: Пишем 3D движок - замену Xors3D
 
Разве не вся суть заставить карточку выдавать регулируемо один буфер в чётный кадр, а другой в нечётный. При этом даже если твоё приложение не выдаёт 120 кадров (на каждый глаз), то всё равно замена кадров будет, лишь факт замены буффера для кадров замедлиться.
Но суть в том что стабильныеы 120 кадров мигают, и очки синхронизированны с монитором на эту чистоту (если активное 3Д), будет ОК.

Да и тут не суть в монике. Ведь монику обычно кормят разные форматы, например можно кормить все 120 кадров один за другим, а можно кормить левый и правый кадры слева и справа на экране как один - кормим это монику, а моник сам уже интерполирует изображение в стерео для очков.
Также работают и проекторы.

Есть ещё разные режимы - по полоскам, вертикально, горизонтально, и ещё другие.
Unigine Heaven демка умеет много режимов, главное найти которыые поддерживаются твоим монитором/проектором.

По факту для левый/правый режима, не нужно никаких расширений и дров - просто две камеры рендер, для левого и правого глаз :)

bugway 05.03.2014 03:50

Ответ: Пишем 3D движок - замену Xors3D
 
Сейчас пытаюсь разобраться, что я делаю не так:

когда включен стереорежим 3D vision - разделение на 2 вида (2 камеры) должно произойти автоматом. У меня же такого почему-то не происходит. Не пойму, толи что-то с буфером глубины, толи что-то добавить нужно. Самое интересное - в чужих демках разделение на 2 ракурса происходит автоматом.

bugway 05.03.2014 09:35

Ответ: Пишем 3D движок - замену Xors3D
 
Нашел на сайте NVidia такой фрагмент:

Цитата:

Inside the driver, each 3D scene gets rendered twice – once for the left eye, and once for the right eye. The driver is able to automatically modify typical 3D game vertex shaders “in flight” so that it can generate the correct images at run time. User options allow players to adjust settings like inter-ocular distance (that is, the amount of “depth”) to their own preference. Developers can explicitly control the stereo aspects of the experience, or just let the driver do its job.
Т.е. если нет шейдера, значит автоматом и нет стерео? Получается так?


P.S. Кстати, 3D vision можно использовать на любом мониторе и практически любой видеокартой NVidia в режиме Discovery c анаглифными очками. Т.е. многим 3D доступно.

Mr_F_ 05.03.2014 13:20

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Т.е. если нет шейдера, значит автоматом и нет стерео? Получается так?
а у тебя ФФП там чтоль?
в любом случае, оно тоже должно эмулироваться через шейдеры.
-----
я подключал нвидийный 3д вижн - он и правда как по волшебству работает без особого кода - единственное надо convergence/separation параметры подобрать к сцене и устанавливать их через NvAPI.

Nex 05.03.2014 14:45

Ответ: Пишем 3D движок - замену Xors3D
 
Накатайте лучше импортер из новых максов в b3d формат.

moka 05.03.2014 15:39

Ответ: Пишем 3D движок - замену Xors3D
 
b3d не нужен.

impersonalis 05.03.2014 15:41

Ответ: Пишем 3D движок - замену Xors3D
 
что нужно (?)

moka 05.03.2014 15:46

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от impersonalis (Сообщение 276118)

jimon всё правильно сказал.

bugway 05.03.2014 19:35

Ответ: Пишем 3D движок - замену Xors3D
 
Блин.... как же я ступил с 3D vision... Удивляюсь, почему не работает разделение ракурсов - а ведь банально проглядел, что у меня стояло %D3DCREATE_SOFTWARE_VERTEXPROCESSING
... Поправил на %D3DCREATE_HARDWARE_VERTEXPROCESSING и все стало работать... :) И ФПС поднялся в 4 раза... :)

P.S. У кого есть опыт создания игрушек на DX - подскажите - как работали с клавиатурой? Через DirectInput или GetAsyncKeyState WinApi?

Mr_F_ 05.03.2014 19:59

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

P.S. У кого есть опыт создания игрушек на DX - подскажите - как работали с клавиатурой? Через DirectInput или GetAsyncKeyState WinApi?
и так и эдак, по сути разница не велика, но DirectInput не советуют сами MS юзать, т.к. забили на него.
в винапи я только не GetAsyncKeyState юзал, а GetKeyboardState - она возвращает массив со всей клавы где нажато, где нет (раз в кадр вызывал).

bugway 07.03.2014 13:49

Ответ: Пишем 3D движок - замену Xors3D
 
Точно. Шапку больше править нельзя... :(

bugway 08.03.2014 19:58

Ответ: Пишем 3D движок - замену Xors3D
 
Имеем: ландшафт и набор моделей с разными материалами и камеру, которая смотрит на часть моделей из набора.

Правильно ли я понимаю следующие вещи: (поправьте, если не прав)

0. Постоянно загружаем в фоне нужную порцию вертексов с диска в память (неважно для чего: ландшафта, моделей и т.п.), проверяя что нужно грузить исходя из положения и направления камеры.
1. Опрашиваем устройства ввода, считаем физику, меняем координаты вертексов и т.п.
2. Сортируем все вертексы по материалам, создаем вертексные буферы для каждого материала и пишем в них только то, что должно быть видно из камеры.
3. Для каждого материала перед рендером соответствующего вертексного буфера на экран устанавливаем вертексный шейдер через SetVertexShader.
4. Рендерим все получившиеся вертексные буферы.
5. Применяем пиксельный шейдер на всю картинку.

НО!

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

Mr_F_ 08.03.2014 20:55

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

0. Постоянно загружаем в фоне нужную порцию вертексов с диска в память (неважно для чего: ландшафта, моделей и т.п.), проверяя что нужно грузить исходя из положения и направления камеры.
1. Опрашиваем устройства ввода, считаем физику, меняем координаты вертексов и т.п.
2. Сортируем все вертексы по материалам, создаем вертексные буферы для каждого материала и пишем в них только то, что должно быть видно из камеры.
неправильно, загружать нужно один раз, буферы создавать один раз, вертексы сортировать и подавно.
во время игры в идеале вообще никаких загрузок ничего ниоткуда и даже аллокаций памяти не должно происходить.
если мир игры действительно большой, то действительно стримим данные время от времени с харда во время игры, но и это обычно делается элегантнее - с ленивым копированием по частям без переаллокаций за несколько кадров, чтобы не повлиять на фпс (тебе это пока не нужно).

Цитата:

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

Цитата:

3. Для каждого материала перед рендером соответствующего вертексного буфера на экран устанавливаем вертексный шейдер через SetVertexShader.
4. Рендерим все получившиеся вертексные буферы.
5. Применяем пиксельный шейдер на всю картинку.
у тебя каша в голове, на каждый вызов отрисовки необходим как вертексный так и пиксельный шейдер - обязательно, если одного из них нет, то дх9 будет делать его через ффп (что все равно эмулируется шейдерами в драйвере), в дх10-11 ффп вообще нет, и без шейдеров работать нельзя.
применять постпроцессовый шейдер поверх всей картинки в конце можно - но не обязательно.

запомни - закачка чего-то из оперативки в видеопамять (и наоборот) это адово дорогая операция, ничего кроме шейдерных констант ты не должен по-хорошему каждый кадр перезаливать.
нет, бывают исключения, типа когда нам надо на цпу какое-нибудь soft body симулировать, но это единичные случаи, за которыми надо чётко следить и вырубать/лодить их жестоко при первой возможности. в старых играх, бывало фпс у анимаций скиненых персонажей уменьшали вдали, лол, чтобы скинмеши перезаливать реже.
-----

почитай
http://netlib.narod.ru/library/book0032/
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

bugway 09.03.2014 09:04

Ответ: Пишем 3D движок - замену Xors3D
 
Я понял так: если геометрия статичная, то действительно - можно сделать один единственный буфер вертексов и один раз залить его в видеопамять. В этом буфере будут все вертексы всех статичных моделей с кадрами анимаций, уровнями детализации и т.п. Естественно там должно быть отсортировано всё по материалам. А рендерить такой буфер необходимо кусками по типу материала. Например: верстекс 1-120 - вертексы одного материала, 121-240 - другой материал, и .т.п. Уменьшить кол-во вызовов DrawPrimitive можно использованием текстурных атласов.

Но как быть с динамической геометрией? Или ее желательно тоже привести к статике? При динамическом ландшафте можно попробовать что-то типа marching triangles, т.е. залить в буфер вертексов все возможные комбинации и рендерить ту комбинацию, которую нужно, предварительно задав матрицу транформации.

Что я имею ввиду. Возьмем к примеру мир Minecraft. Базовый элемент мира - куб. Если использовать идею, которую я описал выше, то нам в буфере вертексов нужен всего один куб (36 вертексов). При рендере куба в нужном месте мы просто задаем матрицу смещения.

Я правильно рассуждаю?

pax 09.03.2014 09:14

Ответ: Пишем 3D движок - замену Xors3D
 
В майнкрафте рендерится не кубами, а чанками, каждый чанк это 16х16х128 генерируется отдельно, и там не кубы, а фейсы только те, что видно.

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

bugway 09.03.2014 09:28

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от pax (Сообщение 276384)
В майнкрафте рендерится не кубами, а чанками, каждый чанк это 16х16х128 генерируется отдельно, и там не кубы, а фейсы только те, что видно.

Но ведь чанки - это по сути динамическая геометрия. Чанк перестраивается, когда ставится или удаляется куб. Т.е. происходит изменение буфера вертексов. Верно?

pax 09.03.2014 09:30

Ответ: Пишем 3D движок - замену Xors3D
 
Да, там чанки постоянно перестраиваются.

bugway 09.03.2014 09:33

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от pax (Сообщение 276386)
Да, там чанки постоянно перестраиваются.

Иначе говоря, происходит частая пересылка вертексов из памяти в буфер вертексов. Верно? Понятно, что не каждый кадр, но суть такая?

pax 09.03.2014 09:35

Ответ: Пишем 3D движок - замену Xors3D
 
В Unity есть так называемый статик батчинг, который объединяет всю статическую геометрию на старте, но это отключается если не нужно.

Цитата:

Сообщение от bugway (Сообщение 276387)
Иначе говоря, происходит частая пересылка вертексов из памяти в буфер вертексов. Верно? Понятно, что не каждый кадр, но суть такая?

Я думаю эта память заранее выделена, и обновляется по необходимости.

bugway 09.03.2014 09:40

Ответ: Пишем 3D движок - замену Xors3D
 
Я пытаюсь сказать, что имеется дилемма: либо относительно часто менять буфер вертексов, но рисовать минимальным кол-вом вызовов DrawPrimitive, либо наоборот: не трогать буфер вертексов, но тогда будет огромное число вызовов DrawPrimitive.

pax 09.03.2014 10:43

Ответ: Пишем 3D движок - замену Xors3D
 
В универсальных движках всегда так. Когда пишешь движок под конкретный проект ты сможешь все оптимизировать как тебе надо.

Mr_F_ 09.03.2014 11:17

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

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

bugway 09.03.2014 20:25

Ответ: Пишем 3D движок - замену Xors3D
 
8100 кубиков на сцене при 60-70 ФПС (100000 треугольников) - это много или мало? (оптимизаций пока никаких)

При разрешении 1680х1050 в стерео - ФПС: 4-5
При разрешении 1680х1050 не стерео - ФПС: 60-65

Не пойму, почему в стерео режиме такое сильное падение... :(

moka 09.03.2014 20:45

Ответ: Пишем 3D движок - замену Xors3D
 
Кубики бенчить приятно, но бессмысленно. Т.к. смысл есть как раз в сложных сценах с множеством рендеров (тени и т.п.)..

Mr_F_ 09.03.2014 21:06

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Не пойму, почему в стерео режиме такое сильное падение...
странно, это 3d vision? он у меня на удивление очень слабо влиял на производительность, удивлялся даже.

Цитата:

8100 кубиков на сцене при 60-70 ФПС (100000 треугольников) - это много или мало? (оптимизаций пока никаких)
какое железо?

HolyDel 10.03.2014 01:06

Ответ: Пишем 3D движок - замену Xors3D
 
выложи демку уже. посмотрим.

bugway 10.03.2014 07:18

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 276418)
какое железо?

Парочка 660Ti в SLI


P.S. Погоняв тесты выявил прямую линейную зависимость от числа DrawPrimitive. У меня сейчас каждый куб - это отдельный вызов DrawPrimitive. В стерео режиме 60-70 ФПС достигается только при рендере не более 600 кубов. Но все-равно непонятно, почему не в стерео режиме ФПС в 8-10 раз больше. В стерео режиме ФПС должно падать примерно в полтора раза по сравнению с обычным режимом.

P.P.S Сейчас соберу демку с настраиваемым конфигом и выложу...

bugway 11.03.2014 20:10

Ответ: Пишем 3D движок - замену Xors3D
 
Вложений: 1
Народ!

Вот демка:

Вложение 20236

Посмотрите, пожалуйста - у кого какая производительность. Особенно интересно в стерео режиме.

Mr_F_ 11.03.2014 20:33

Ответ: Пишем 3D движок - замену Xors3D
 
GTX560, 1280x1024 - 122fps.

при 1024 кубиках - 500 фпс.
к чему сравниваю с 1024 - у меня была демка своего движка с таким кол-вом кубов, тоже с отдельным дроуколом на каждый и текстурами, плюс куллингом - при всех кубах и таком же разрешении в кадре было 1000+ фпс.
-----
это всё без стерео.

St_AnGer 11.03.2014 21:33

Ответ: Пишем 3D движок - замену Xors3D
 
6000 кубов, MSI R5770 (в подписи точное название), 1280x1024 - 42 fps. Что в полноэкранном, что в оконном.

moka 11.03.2014 22:05

Ответ: Пишем 3D движок - замену Xors3D
 
Вложений: 1
Вот лог.
HTML не даёт заливать, переименовал. Обратно переименуй.

Randomize 12.03.2014 00:18

Ответ: Пишем 3D движок - замену Xors3D
 
Стабильно 32 FPS
Конфиг в подписи

HolyDel 12.03.2014 02:11

Ответ: Пишем 3D движок - замену Xors3D
 
работает. 3д эффект есть.
со стерео 4 фпс на 6000 кубах. 680gt.

bugway 12.03.2014 11:34

Ответ: Пишем 3D движок - замену Xors3D
 
Главный цикл примерно так выглядит?

Код:

QueryPerformanceFrequency(qFreq)
QueryPerformanceCounter(qStart)
QueryPerformanceCounter(qStart) ' bug fix for INTEL chipsets

    WHILE run 'GetMessage(uMsg, %NULL, 0, 0)  ' Message loop
        WHILE peekMessage(uMsg, 0, 0, 0,%PM_REMOVE)  ' Message loop
            translateMessage uMsg
            DispatchMessage uMsg
        WEND
      DIALOG DOEVENTS 0

        CALL KeybMouse
        CALL Physics
        CALL GameRender

        QueryPerformanceCounter(qStop)
        dt = (qStop - qStart)/ qFreq
        fps=1/dt

        QueryPerformanceCounter(qStart)
    WEND                           

Вроде оптимально?

bugway 12.03.2014 12:12

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 276564)
GTX560, 1280x1024 - 122fps.

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

А видяха была та же - GTX560 ? Вертексов в кубе 8 или 36 (DIP или DP)? В окне или во весь экран? Счетчик ФПС был как сделан? QueryPerformanceCounter? Текстура одна или несколько?

P.S. Буду стараться ориентироваться на эту цифру....

Mr_F_ 12.03.2014 12:38

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

А видяха была та же - GTX560 ?
да, у меня валяется ещё та демка, специально запустил сравнил.

Цитата:

Вертексов в кубе 8 или 36 (DIP или DP)?
32 вроде как, в общем у каждого фейса свои - нормали гранёные.
DIP.

Цитата:

В окне или во весь экран?
это не играет большой роли ни у тебя, ни у меня (но фуллскрин).

Цитата:

Счетчик ФПС был как сделан?
Fraps

Цитата:

Текстура одна или несколько?
2

Сейчас соберу эту демку и кину (надо кое-что лишнее убрать).

Mr_F_ 12.03.2014 13:41

Ответ: Пишем 3D движок - замену Xors3D
 
Вложений: 1
Вот она. WASD + мышка управление.
Попробуй отлети чтобы все кубы в кадр влезали - их 1024 штуки, у меня 1100 фпс.
Алсо, там ещё MSAA 4x.

В settings.ini можно настроить разрешение.

bugway 12.03.2014 14:23

Ответ: Пишем 3D движок - замену Xors3D
 
Mr_F_ - просто супер! На моем железе 1720 ФПС при старте, если отдалиться - 514 .... У моей демки - фрапс показывает 92-100, но везде и при 6000 кубах. При 1108 кубах без 3D Vision - 485-505...

А можно кусок кода главного цикла посмотреть?

P.S. Что-то полный экран не включается...

P.S.S Все-таки не нашел косяков у себя. Единственное - не понятно, что со стерео не так - почему так сильно падает производительность (при 1108 кубах - 32 ФПС у меня)

Mr_F_ 12.03.2014 14:47

Ответ: Пишем 3D движок - замену Xors3D
 
спасибо, хоть кто-то оценил :D

Цитата:

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

Цитата:

У моей демки - фрапс показывает 92-100, но везде
ну у тебя куллинга наверное нет - т.е. всё время все кубы рисуешь, а я определяю какие из них попадают в кадр и только их.
но если отдалиться у меня - то можно сравнивать с твоей.

Цитата:

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

bugway 12.03.2014 14:57

Ответ: Пишем 3D движок - замену Xors3D
 
Mr_F_ , меня глючит или на сцене только 256 кубов? :)

Mr_F_ 12.03.2014 15:09

Ответ: Пишем 3D движок - замену Xors3D
 
тебя глючит - там 32х32 (посчитай с любой стороны) сетка из кубов, итого 1024.

bugway 12.03.2014 15:14

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 276646)
тебя глючит - там 32х32 (посчитай с любой стороны) сетка из кубов, итого 1024.

И правда 32х32.

Вобщем вывод пока один - без разницы на чем писать код. Главное КАК писать код... Что и подтвердилось: примерно по 500 ФПС у нас обоих, если тупо рисовать 1000 кубов....

moka 12.03.2014 15:26

Ответ: Пишем 3D движок - замену Xors3D
 
Я понимаю что ещё рано меряться (т.к. не много в движке есть), но думаю будет на много лучше потестить что-то посложнее, например сделать тест сценарий такого рода:

32 текстуры:
2 1024х1024
2 512х512
8 256х256
8 128х128
8 64х64
4 32х32

Три модели (загруженные):
Куб, кролик (тот самый популярный), чайник

Сцена:
Модели отрисованы массивом - 8 х 8 х 8, где идут по очереди по 4, получается например первый ряд верхнего слоя будет 4 куба, и 4 кролика, во втором ряду 4 чайника и 4 куба, и т.д.
Текстуры же будут чередоваться одна за другой по моделям.

Вот такая демка думаю получше протестирует несколько аспектов - скорость загрузки, то как переключение и дипы держутся, много текстур.

Далее для усложнения сцены для второго теста, можно добавить 3 источника света, без теней, но с нормал картами и бампом.

Третий тест добавить 16 источников света и тени. Это уже будет стресс тестом. Также вращением всех объектов (чтобы не статика была, и тени каждый кадр обновлялись).

Думаю вот такие 3 демки, будут отличным тестом для многих аспектов движка, и более реалистичны для реальных условий применения движка.
Понимаю что ещё очень много нужно сделать до того как такие демки можно реализовать.

Mr_F_ 12.03.2014 15:27

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

примерно по 500 ФПС у нас обоих, если тупо рисовать 1000 кубов....
странно, а у меня в моей демке в 2 раза выше же со всеми кубами на экране (в твоей 500, в моей 1000).
у тебя сколько ядерный проц? мою демку если запускаешь - вместе с основным окном открывается окно консоли - в нём строчка found cores - что в ней?

Цитата:

сценарий такого рода:
лень :P
сделай FBX со всем описанным

bugway 12.03.2014 15:40

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 276650)
странно, а у меня в моей демке в 2 раза выше же со всеми кубами на экране (в твоей 500, в моей 1000).
у тебя сколько ядерный проц? мою демку если запускаешь - вместе с основным окном открывается окно консоли - в нём строчка found cores - что в ней?

Если к моей прикрутить удаление невидимых частей - будет полное совпадение. Сейчас равны наше демки только при охвате камерой всей сцены.

Лог консоли:

Plugin initialized: Graphics
Added task: CAMS
Added task: CLCH
Added task: CLCR
Added task: CULL
Added task: PRSS
Added task: SBSH
Added task: PRMT
Added task: REND
Component registered: visnode
Component registered: vismesh
--- HEAP STATE: OK
Activating plugins...done.
Found cores: 8
Direct3D9 handle: 007D07E0
Support for chosen AA levels: OK
Support for chosen AA type: OK
Support for Vertex Shaders 3.0: OK
Support for Pixel Shaders 3.0: OK
Max VS constants: 256
D3D9Device Handle: 047F9F80

Mr_F_ 12.03.2014 15:47

Ответ: Пишем 3D движок - замену Xors3D
 
Вложений: 2
Цитата:

Сейчас равны наше демки только при охвате камерой всей сцены
ну так у меня не равны при охвате всей сцены.
хотя ядер столько же.

bugway 12.03.2014 15:54

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от moka (Сообщение 276649)
Думаю вот такие 3 демки, будут отличным тестом для многих аспектов движка, и более реалистичны для реальных условий применения движка.
Понимаю что ещё очень много нужно сделать до того как такие демки можно реализовать.

Модельки предоставить и текстуры можешь? Для сравнения движков нужен одинаковый контент как минимум..

P.S.
Загрузка моделей уже есть. Из самостоятельно написанного с нуля - только OBJ пока. Можно сделать любой подобный OBJ формат - это не сложно.

Самое главное, что требуется для дальнейшего развития - это информация по архитектуре движков. Информацию достаю по крупицам, реальных статей в интернете практически нет. Везде примеры с выводом треугольника и код в виде сплошного листинга, в котором в лучшем случае есть класс. Если у кого есть любые материалы - пожалуйста кидайте ими в меня в любом количестве... :)

Mr_F_ 12.03.2014 15:58

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

это информация по архитектуре движков.
почитай это - http://www.gameenginebook.com/
очень хорошая книжка
в инете валялись сканы (правда не всех страниц), если не найдёшь - скину какие у меня есть.

bugway 12.03.2014 16:01

Ответ: Пишем 3D движок - замену Xors3D
 
Вложений: 1
Цитата:

Сообщение от Mr_F_ (Сообщение 276652)
ну так у меня не равны при охвате всей сцены.
хотя ядер столько же.

Параметры точно одинаковые в обеих демках? 1280х1024 при 1000 кубиках? У меня так выглядит:

Вложение 20244

pax 12.03.2014 16:06

Ответ: Пишем 3D движок - замену Xors3D
 
Вы еще посоревнуйтесь в скорости математики, пусть все кубики крутятся :)

Mr_F_ 12.03.2014 16:06

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Параметры точно одинаковые в обеих демках? 1280х1024 при 1000 кубиках? У меня так выглядит:
всё одинаково. весьма странно. потестирую ещё на других системах при возможности.

Цитата:

Вы еще посоревнуйтесь в скорости математики, пусть все кубики крутятся
ох) вообще демка с кубиками у меня уже лежала готовая - делал для тестов. новые мутить что-то я не готов сейчас)

bugway 12.03.2014 16:16

Ответ: Пишем 3D движок - замену Xors3D
 
А вообще соревноваться - очень интересно! Лично меня - мотивирует :)

Может еще кто готов посоревноваться? :)

pax 12.03.2014 16:23

Ответ: Пишем 3D движок - замену Xors3D
 
Чем ваши шейдеры отличаются?

bugway 12.03.2014 16:25

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от pax (Сообщение 276665)
Чем ваши шейдеры отличаются?

Тем, что у меня их пока нет :)

Mr_F_ 12.03.2014 16:27

Ответ: Пишем 3D движок - замену Xors3D
 
Прикол короче.

Стоит упомянуть, что тестировал я на WinXP. На этом же ПК стоит вин7, решил проверить в ней: на вин7 обе демки примерно равны и выдают около 700 фпс (все кубы в кадре).

У меня есть ещё одна демка со сложной графикой, более того, она сделана на юнити (но все шейдеры, рендер теней и прочее - своё), и прикол в том что она на семёрке идёт в 30 фпс, а на хп в 60 - ровно в 2 раза быстрее.
Также можно наблюдать 20-50% ускорение на ХП в некоторых других играх:
http://forums.steampowered.com/forum....php?t=1608036
http://www.terrariaonline.com/thread...se-bump.39668/
http://benchmark3d.com/bulletstorm-w...ws-7-benchmark

Почему так происходит? Хз.

bugway 12.03.2014 16:30

Ответ: Пишем 3D движок - замену Xors3D
 
Mr_F_ , а в стерео режиме не тестировал разницу?

Mr_F_ 12.03.2014 16:35

Ответ: Пишем 3D движок - замену Xors3D
 
у меня нет стерео девайсов.

bugway 12.03.2014 16:38

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 276670)
у меня нет стерео девайсов.

Может анаглифные очки завалялись? Есть же режим Discover на худой конец....

Mr_F_ 12.03.2014 16:42

Ответ: Пишем 3D движок - замену Xors3D
 
ничего нет

SBJoker 12.03.2014 16:47

Ответ: Пишем 3D движок - замену Xors3D
 
тестировать нужно под высокой нагрузкой, т.к. сравнения на высоких FPS нерепрезентативны.

Добейтесь сложности сцены чтобы фпс был порядка 20-100 и сравнивайте.


Часовой пояс GMT +4, время: 11:57.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot