![]() |
Ответ: Пишем 3D движок - замену Xors3D
Я бы назвал FlatChestedGAPI
|
Ответ: Пишем 3D движок - замену Xors3D
Может быть назовешь тогда просто Xe(Ксенон типа:-) ) engine?
P.S. зарегался на твоем сайте. Можешь теперь следить за мной;) |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
1) быть уникальным 2) отсутствовать в поисковиках (в идеале вообще, но по крайней мере не более 100 ссылок) 3) фонетически звучать 4) опционально иметь скрытый смысл или легко трактоваться P.S. Заглушку на сайт поставил - теперь можно вернуться к разработке движка... :) |
Ответ: Пишем 3D движок - замену Xors3D
Вот тут слайды нашёл, по OpenGL как можно сильно оптимизировать рендеринг и уменьшить overhead от драйвера.
http://www.geeks3d.com/20140321/open...iver-overhead/ |
Ответ: Пишем 3D движок - замену Xors3D
слайд с gdc 2014
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Не читал трэд, начинал когдато, когда еще 1 страница была. Чем все кончилось? Какой рендер будет, фичи там?...
Если OpenGl, то могу взять на себя написание рендера, а вы пишите граф сцены, загрузку моделей и т.п. Только при условии, что на движок никто не забьет потом, потому что я уже раз 50 забивал, хотя были довольно успешные попытки |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
P.S. Еще раз повторюсь: энтузиасты активно приглашаются. Работы много и ее хватит всем. Кто-то нарисует красивый значок, кто-то подскажет интересную идею, кто-то сделает красивую демку - вобщем с миру по нитке... В то же время я не сижу сложа руки. Как минимум пару раз в неделю буду выкладывать инфу тут и у себя на форуме... P.P.S. Сегодня попробую что-нибудь интересное выложить во избежание умирания топика.... |
Ответ: Пишем 3D движок - замену Xors3D
Кстати, как тебе идея написать игру для последнего джема на этом движке?
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
(2 * 5 + 10 * 2) * 2 = 60 часов за две недели.
даже за 8 часов можно что то сделать. а тут 60. + можно спать на работе, а ночью делать игру. |
Ответ: Пишем 3D движок - замену Xors3D
Мне кажется с DirectX не зайдет.
Я бы на твоем месте собрал бы сообщество, для написания движка на OpenGL с ES совместимостью, разделил бы обязаности, и запилили бы движок, Затем вытащили бы Сишный интерфейс наружу. Вот это бы нормально зашло бы. Люди бы пользовались. Мобилки же актуальны. Мне просто самому лень писать загрузчики форматов, всякие там обработчики в графе сцены. Вот если бы кто то сделал бы это за меня )) |
Ответ: Пишем 3D движок - замену Xors3D
автору нужен 3d vision.
под виндой он только на квадрах с gl-ом. потому и директ. |
Ответ: Пишем 3D движок - замену Xors3D
тем временем анонсировали directx 12.
|
Ответ: Пишем 3D движок - замену Xors3D
|
Ответ: Пишем 3D движок - замену Xors3D
Вложений: 1
Тестирую с VB.Net 2013:
|
Ответ: Пишем 3D движок - замену Xors3D
почему префикс x?
х - это хорс. у тебя должен быть или g или на крайняк v |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
xGraphic vGraphic gGraphic gvGraphic geGraphic gveGraphic Вроде Х симпатичнее смотрится.... Кто как думает? |
Ответ: Пишем 3D движок - замену Xors3D
А нельзя использовать НЕЙМСПЕЙСЫ, а не префиксы?
|
Ответ: Пишем 3D движок - замену Xors3D
Для VB/C# лучше конечно префиксы убрать. Они не нужны. Префикс обусловлен тем, что в блице есть команды с тем же именем, и нужен для того, чтобы их отличить друг от друга.
В самом же блице, если движок будет заменой xors3d, логично использовать префикс 'x', чтобы не переписывать готовый код (но только при условии, если автор собирается реализовать полный набор функций xors3d). |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
В рамках COM практически на любом языке все будет примерно так: 1. создаем объектную переменную, например MyEngine 2. используем методы и свойства движка через объектную переменную, типа: MyEngine.xGraphic(...) или MyEngine.xTextures.Add(...) 3. Снаружи оперируем только простыми типами, не интерфейсами СОМ. Вообще думаю, может отказаться от префиксов, совместимости с Xors и подобными вещами? Может просто максимально понятно назвать методы? Например вместо xGraphic назвать SetDisplayMode... Кто что думает? P.S. Кстати, блиц-то хоть поддерживает COM? |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
если планируется его использовать вместе с блицом то какой никакой префикс все равно нужен (иначе можно все равно напороться на одинаковые команды), но я бы его делал другим. а вообще, имхо, бейсики не особо нужны. в качестве школы программирования только. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
На счет второго Xors3D - полностью согласен. Должно получиться нечто совершенно новое, поскольку работа с движком осуществляется через СОМ. Хотя нечто подобное видел - движок TrueVision3D. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
trall-mode
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Код:
Function NvAPI_GetDisplayDriverVersion(ByVal hNvDisplay As Dword, pVersion As NvDisplayDriverVersion) As Long 'CDecl |
Ответ: Пишем 3D движок - замену Xors3D
жесть какая-то
|
Ответ: Пишем 3D движок - замену Xors3D
Вероятно, речь шла о intel-синтаксисе, а не языке ассемблера в стиле Си
|
Ответ: Пишем 3D движок - замену Xors3D
в c/c++ можно фигачить и в att и intel, причем в msvs intel делает просто вставку а дальше как повезет, а в gcc/g++ intel можно по прежнему контролировать (также как и att), указывая соотношения регистров и локальных переменных.
|
Ответ: Пишем 3D движок - замену Xors3D
А теперь по существу: Кто делал фабрику мешей, поделитесь соображениями - как это лучше связать с буфером/буферами вертексов? Варианты (просто пришедшие в голову): 1. Хранить все меши в едином буфере вертексов. В классе меша реализовать ссылки на определенную область в буфере вертексов. 2. Хранить сами вертексы как часть экземпляра класса меша и использовать отдельный буфер вертексов для каждого меша. Иначе говоря, сколько статических буферов вертексов принято использовать - один или столько, сколько мешей? Второй вариант позволит использовать такой стиль: MyEngine.Mesh(i).Render Первый вариант (с общим буфером) такой стиль: MyEngine.Render Mesh(i) В плане производительности склоняюсь к первому варианту. Поделитесь соображениями, пожалуйста. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Цитата:
Ну или можно by design запретить удаление статики, только если разом всю. Первый вариант должен быть незначительно быстрее. Цитата:
"Каждый объект сам себя рендерит" это не лучшая идея (уже много где обсуждалось). Каждый раз входишь в функцию, кладёшь что-то на стек, плюс она ещё может быть виртуальной (не знаю как в вашем бейсике), мы ждём пока каждая функция выполнит гапи код. Если много объектов - то много оверхеда накапливается. Намного приятнее имхо и дружелюбнее к железу представлять все объекты как данные. Меш должен содержать только инфу, нужную для его рендера. Дальше ты рендереру посылаешь толстую пачку этих мешей, и он, как на конвеере, их рендерит друг за другом без перерывов, в одном цикле. Также, в таком случае этот конвеер можно крутить в параллельном потоке, например. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
В си нет неймспейсов, в плюсах есть. Что бы твоя дллка работала везде, нужно пилить extern "C" и __declspec погугли. И да. Неймспейсы для переносимости не нужны, но на компилятор это никак не влияет )) |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
При отрисовке биндим оба буффера, и циклом бежим по поверхностям рисую диапазоны индексов. Все. PHP код:
|
Ответ: Пишем 3D движок - замену Xors3D
|
Ответ: Пишем 3D движок - замену Xors3D
А с точки зрения материалов? В каждом меше создавать еще подмеши со своим материалом?
А потом в цикле рендера перебирать все подмеши всех мешей с одним материалом, потом с другим материалом, потом с третьим и т.п.? Не убьет ли это производительность? Т.е. если имеем в кадре 100 различных типов мешей по 10 материалов. Итого нужно 1000 вертексных буферов + столько же индексных? |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
в не идеале, хотя бы 1 VB/IB на меш ничто не мешает держать - тогда по 100 тех и тех + для каждого типа материала хранишь оффсет/размер (диапазон короче) в индексбуфере меша. |
Ответ: Пишем 3D движок - замену Xors3D
Я же все написал выше.
А что бы избегать много объектов, делай класс который сконструирует один меш из 100, сгруппируя по материалам. Это относится к статике. Также можно заюзать текстурный атлас. Можно добиться отрисовки всего за 1 дип. |
Ответ: Пишем 3D движок - замену Xors3D
Занимаюсь оптимизацией. Как каждый из вас относится к идее не использовать DIP в пользу DP ?
Плюсы DP в том, что можно дублировать вертексы в одной позиции с разными текстурными координатами. Из минусов только большое количество самих вертексов (для куба аж 36 вместо 8 при DIP). Но судя по профайлингу DP быстрее DIP на 10-15%. Поэтому вроде больше плюсов у DP, чем у DIP. Кто как думает? |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
DIP - DrawIndexedPrimitive |
Ответ: Пишем 3D движок - замену Xors3D
Post T&L cache.
кстати замерять цпу профайлером gpu-side команды не очень правильно. конвейер работает асинхронно - профайлер лишь покажет как быстро вернется управление основному потоку, а не, то, какие затраты конкретная команда принесет. лучше меняй код и мерь фпс. про post T&L cache - когд вершину обработал вершинный шейдер, результаты ее хранятся в кэше. И если есть треугольники со смежными вершинами - то эти смежные вершины в случае DIP будут считаться только один раз, в случае DP для каждого треугольника всегда считаются три вершины. и неважно, считались они уже или нет. |
Ответ: Пишем 3D движок - замену Xors3D
И я так понимаю, что если рендер имеет сильный перекос в сторону пиксельных шейдеров (perpixel light, deffered shading и т.п.), то возможно DP в некоторых ситуациях будет предпочтительней.
|
Ответ: Пишем 3D движок - замену Xors3D
по идее в случае сильного перекоса в сторону пиксельных шейдеров будет без разницы. на растеризации будет ботлнек.
Цитата:
таким кубом только карту глубины для рендера шадоумапы рисовать. кстати кто нибудь делал такую оптимизацию? чтобы на пасс, где генерится шадоумапа использовались упрощенные шейдеры и геометрия (только позиция). Давала ли такая техника ускорения? |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
просто вершинный будет настолько быстрый что тормоза начнуться на растеризации, но она не станет медленней. к тому же в архитектурах поддерживающих тесселяцию обычно блоки растеризации очень быстрые. если сложность сцены высокая то лучше делать перекос в сторону пиксельного шейдера. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Я вот лично вообще не понимаю логики. Какую замену ксорсу пытается написать человек? Да еще и на бэйсике =D
Все что можно уже за долго до тебя написали. Лучшего мы здесь все равно не увидим. На написание хорошего движка уйдут годы. Посмотри сколько разрабатывался юнити и какое количество людей его делает. В нем уже по максимальному все просто и понятно с редакторами и т. д. Лично я считаю что толку будет 0, в свет он не выйдет хотя бы как тот же ксорс, знаний от написания движка 0 имхо язык бэйсик ну больше сказать нечего . Чисто символически мое мнение :) |
Ответ: Пишем 3D движок - замену Xors3D
опыт.
опыт программирования графики на уровне гапи и программирование ее же на пару уровней выше это совсем разные вещи. хотя бейсик не понимаю, да. но автору нравится. Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Тут в WebGL балуюсь, сделал примитивную демку, 1024 энтитей, у каждого свой вершинный и индексный буфера, также свой шейдер (примитивно позиция и цвет вершин), и все они вращаются независимо. То есть каждый куб полностью независимо рендериться.
1024 кубов, выдало 150 fps. А если забиндить буфера по одному разу и шейдер, и только для каждого куба передавать матрицу трансформации и вызывать drawElements, то фпс будет 200. |
Ответ: Пишем 3D движок - замену Xors3D
ссылку чтоли давай
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Наводит на мысль что такая стейт машина уже есть внутри d3d. Есть у кого более подробная инфа на этот счёт? |
Ответ: Пишем 3D движок - замену Xors3D
возможно в d3d и есть.
в gl-e мои и МоКины эксперементы указывают что ее нет. Цитата:
только контексты, буфера и шейдеры, решил на сей раз начать не с кубов))) как смогу рисовать кубы и летать камерой - так выложу демку. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Если это подключаемая библиотека, наро встретит это дело очень тепло. Особенно движок встретят люди, прогающие на пурике
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Может она просто указывает чтобы ты поправил код и избавился от ворнингов, а в релиз режиме машина стейтов убирается в надежде что ты все поправил. :) |
Ответ: Пишем 3D движок - замену Xors3D
Ну кагбе тут разжевано
http://www.gamedev.net/topic/296413-...render-states/ Цитата:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx |
Ответ: Пишем 3D движок - замену Xors3D
Ок.
Значит с флагом D3DCREATE_PUREDEVICE стейт машину можно убрать. Тогда всё сделано как надо. |
Ответ: Пишем 3D движок - замену Xors3D
Кто-нибудь знает как в msvs 2013 (и может быть любой другой) в редакторе кода сделать видимыми символы пробела и табуляции, как это можно делать в notepad++ или gedit тех же?
|
Ответ: Пишем 3D движок - замену Xors3D
Edit->Advanced->View White Space
или Подряд Ctrl+R, Ctrl+W |
Часовой пояс GMT +4, время: 08:51. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot