![]() |
SimpleGraphicsEngine 0.1b
:crazy:Решил замутить свой графический движок на ДиректХ 9. Мутил 6 дней - и вот что получилось:
1) Полная поддержка шейдеров до 3 модели включительно 2) Простая классовая структура 3) Двиг прост в обращении ( чтобы нарисовать кубик надо всего 7 коротеньких строк кода ) 4) Нормальная камера ( на самом деле :-D ) на кватернионах 5) Пока загружает только *.х модельки но вскоре добавлю и 3ds и B3D 6) Простое использование шойдеров ( Загрузка -> Установка переменных -> Рисование ) 7) Есть более расширенные настройки практически всего что есть в двиге Дема. В сцене самолет блицевский :-D и кубик + бамп на всех объектах с правильным освещением Управление ну уж очень казуальным вышло :-D - WASD AD поворот :4to: В общем ногами не бейте. Вот аттач( кому надо могу исходники скинуть :-D ) |
Ответ: SimpleGraphicsEngine 0.1b
да, я-бы глянул исходники ))
кстати на широком формате демка выглядит жутковато |
Re: SimpleGraphicsEngine 0.1b
Вложений: 1
блин не учел что у некоторых широкие экраны ( fuck ) ладно щас исходники выложу
вотс ( основной файл Main.cpp - т.е дема ) Core.SetFullscreenMode(0); меняешь на Core.SetFullscreenMode(1); получешь оконный режим |
Ответ: SimpleGraphicsEngine 0.1b
А что значит "Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна."?
|
Ответ: SimpleGraphicsEngine 0.1b
Не запускается, кидает ошибку.
|
Ответ: SimpleGraphicsEngine 0.1b
нет редистов?
|
Re: SimpleGraphicsEngine 0.1b
пипец, почему?
to ViNT попробуй запустить исходники |
Ответ: SimpleGraphicsEngine 0.1b
:wild: Неужели так трудно сделать нормальное фрилучное управление?
Это же блин несколько строк кода (если у тебя и правда простой в обращении двиг, как написано в первом посте) Увидел бамп, самолёт и сплющенный куб. Для начала неплохо, но игру на этом пока не сделаешь :-D |
Ответ: SimpleGraphicsEngine 0.1b
Цитата:
|
Ответ: SimpleGraphicsEngine 0.1b
Цитата:
|
Re: SimpleGraphicsEngine 0.1b
да управление можно сделать быстро, но иногда происходит маза с неправильным перемножением кватернионов. ну впрочем эт моя проблема :)
2 АВТОМАТ а че ты хотел за 6 дней? Я буду еще много всякого добавлять. Или ты хочешь сказать что Хорс тоже писали неделю? :-) Я вот не врубаю почему ни кто не глянул исходники? мож вы боитесь что там супер вирус :-) :-) :-) :-) :-) :-) :-) 2 ViNT соберу в кучу все длл'ки и соберу заново архив |
Ответ: SimpleGraphicsEngine 0.1b
Посмотрел код. Рекомендую теперь сделать Ctrl+A потом Ctrl+Del и начинать заново. Из очевидного что бросилось в глаза сразу:
1) Камера не унаследована от ентити, просто отдельный класс - бред 2) Функции управления объектами (перемещение и т.п.) не имеющие ничего общего с реальностью 3) Кругом лишняя нагрузка на процессор. На более менее приличной сцене твой двиг погибнет из-за этого 4) С текстурами вообще ничо не ясно. Но функция установки фильтрации убила (во-первых, всегда ставятся значения на 0 уровень, во-вторых, анизотропка ставится неверно). 5) Вся работа с шейдерами - тонюсенькая обертка вокруг стандартных ID3DXEffect 6) Сильная зависимость от D3DX, в идеале лучше не использовать ничего кроме шейдеров с нее. 7) Материалы типа есть, но по факту их нет 8) Увидев дефайн: Цитата:
9) Для загрузки Х моделей опять же юзается D3DX, поэтому о легкой загрузке других форматов забудь сразу, для этого тебе придется переписать двиг. 10) Общий стиль кода - смахивает на копипаст с разных мест. Блин, не может один человек писать используя десяток стилей (альтернативно одаренных оставим в стороне). 11) В общем и целом - это не двиг, а некая обертка над ДХ 12) Сильная зависимость от GAPI. У нас это явилось причиной невозможности портирования движка на другие платформы. В общем работай, может чо и выйдет удобоваримое в итоге. Пока кода немного проще привести все в порядок, дальше будет хуже. Ну и по траблам с необходимостью редиста для запуска - мать вашу, научитесь уже проект настраивать для начала, потом пишите двиги. В данном конкретном случае достаточно переключить тип рантайм библиотеки на статичную, вместо используемой DLL. |
Re: SimpleGraphicsEngine 0.1b
Учитесь как надо отписываться! Спасибо за точное высказывание проблем. однако ctrl-a и Del я юзать не буду )). насчет ADIN эт у меня в голове после Упячки и Отаке.ру осталось.
Насчет копипаста них*я! все писал сам и куски кода брал из своих старых проектов А зах камера должна наследоваться от ентити ? насчет нагрузки на проц - я просто торопился и на оптимизацию пока Х положил. Но обязательно буду оптимизировать! Начну пожалуй с матриц которые в цикле рассчитываются ))) имо это есть предел тупости 11 пункт - гыыы смотри как двиг называется SimpleGraphicsEngine (простейший графический движок ) а вот с 12-ым пунктом мне вообще пох! я для винды пишу двиг а не для UNIX систем Загрузка других форматов как раз при такой структуре будет удобной. Единственное на чем запарка будет очень долгая и нудная это на оптимизации |
Ответ: SimpleGraphicsEngine 0.1b
В любом случае, надо вырабатывать стиль кода нормальный (отдельные места в коде радуют, но в целом каша из разных стилей). Камера наследуется от ентити затем чтобы был единый интерфейс ко всем сущностям сцены (камера ведь такая же сущность, она так же перемещается и т.п., просто она несет свои функции дополнительно).
Цитата:
Цитата:
В общем и целом - для начала выбрось D3DX меши, делай свои сюрфейсы, меши, загрузчики свои напиши для каких-нить форматов (если возьмешься за B3D очень НЕ рекомендую брать спецификацию на русском из Blitz Et Cetera, там сплошняком ошибки и неточности, лучше с офсайта слить английский). И подумай о графе сцены. |
Re: SimpleGraphicsEngine 0.1b
а какие моменты оптимизации можешь посоветовать? или ссыль кинь если знаешь
*.b3d меня не особо радует своей ущербностью )) впрочем как и 3ds. а придумывать свой формат это расточительно, хотя может будет и компактнее и проще. в общем если так рассуждать - то чё я нуб чтоле в программинге? |
Ответ: SimpleGraphicsEngine 0.1b
По оптимизации:
- Организовать нормальный граф сцены с контролем переключения стейтов, шедеров, техник и т.д. - Использовать многопоточность где это возможно. По этой теме есть хороший доклад у Романа Лута из Deep Shadows - "Внедрение многопоточного рендеринга в игровой движок" с КРИ 2009, есть ли она в сети не знаю, мы связывались напрямую с Романом. - Использовать SIMD для ускорения математики (следовательно использовать свою математическую библиотеку, ну или найти готовую) Это если глобально. Ну и уже по ситуации смотреть, в какую сторону дальше рыть. По форматам - есть много хороших и разных, выбирай какой хочешь. В идеале - свой. |
Re: SimpleGraphicsEngine 0.1b
спасибо учту
|
Ответ: SimpleGraphicsEngine 0.1b
Цитата:
Я выразил недовольство только по поводу управления |
Re: SimpleGraphicsEngine 0.1b
Блин щас по совету всезнающего ( Knightmare ) делаю оптимизацию, уже еб*нулся на отличненько.
|
Ответ: SimpleGraphicsEngine 0.1b
А ты как хотел? Было дело мне снились строчки деферред рендера, так что у тя все впереди.
|
Re: SimpleGraphicsEngine 0.1b
Вот прошел почти месяц, трудился по 2-3 часа в день. Сделал оптимизацию, загрузку 3ds моделей, обновил камеру( теперь не глючит ), сделал свободное управление( мышь + wsad), обновил почти каждый класс в движке, создал простую систему коллизий ( сфера - сфера ),
в аттаче простая сценка сделанная в максе + мой двиг ессесно + сяшные библы для запуска у кого нету c++ , кому надо исходники ( 100 кг кода ) пишите. зы. шейдеры откомпилены во второй версии, так что на старых компах( у кого видяха старая) не запустится. РАБОЧАЯ ВЕРСИЯ НА 3 СТРАНИЦЕ В 33 посте |
Ответ: SimpleGraphicsEngine 0.1b
1ое - неработает
2ое - если всё ещё делаешь с d3dx, то пока совсем не айс :) (не подумай что призываю полностью от неё отказаться.. но от того же ID3DXMesh- точно стоит (тем более если двиг пишешь в образовательных целях).... а ещё лучше проектировать так, что б от минимально зависеть от апи (Как учил дядя Ламот).. что при необходимости перейти на другое GAPI не пришлось перелопчивать весь двиг сверху донизу:) ) |
Ответ: SimpleGraphicsEngine 0.1b
блин почему неработает (((( че пишет? я ж вроде все библы нужные запаковал
|
Ответ: SimpleGraphicsEngine 0.1b
че еще и d3dx9 и d3d9 запаковывать?
|
Ответ: SimpleGraphicsEngine 0.1b
Вложений: 1
не, там хз че за хрень вылазит (типа дебага Visual Studio)
а прога висит... |
Ответ: SimpleGraphicsEngine 0.1b
ппц, блиин, у кого еще такая лажа? ояебу если такая жосская несовместимость из-за D3DX то седня же выкину его нах
|
Ответ: SimpleGraphicsEngine 0.1b
Есть мнение что твой код рассадник ошибок. Я правда успел полюбоваться на сцену целый 1 кадр. Потом приложение выпилило себя.
|
Ответ: SimpleGraphicsEngine 0.1b
Вложений: 1
блин почему у меня все работает а у других нет? это реально не айс ((((
кажись въехал в чем проблема. у меня стоит на загрузке шрифт Consolas . а так как у других его нет то при попытке нарисовать текст приложение вылетает с ошибкой. в архиве ехе исправленный |
Ответ: SimpleGraphicsEngine 0.1b
Цитата:
едь дальше ^_^ |
Ответ: SimpleGraphicsEngine 0.1b
все я ушел до выяснения обстоятельств с движком.
|
Ответ: SimpleGraphicsEngine 0.1b
нашел проблему - Ш Е Й Д У Р Ы. я сверхтормозящеглючный шейдер написал. буду проводить оптимизацию, новую версию( стопудов рабочую выложу через 2 дня )
|
Ответ: SimpleGraphicsEngine 0.1b
Ни один из примеров не запустился...
Цитата:
|
Ответ: SimpleGraphicsEngine 0.1b
Вложений: 1
Переписал шейдер, подлатал дырки в классах. ДОЛЖНО РАБОТАТЬ! ТЕСТИРОВАЛ У 3-Х ДРУЗЕЙ. У ВСЕХ ЗАПУСКАЛОСЬ И НЕ ВЫЛЕТАЛО!!!
На старых компах без шейдеров ( в двиге были выключены ) тоже все работало |
Ответ: SimpleGraphicsEngine 0.1b
Положительный момент - запустилось.
В целом - отвратная демка. Кстати можно ли скрин как оно должно выглядеть, а то сдается мне текстуры ложатся у меня исключительно криво. Ну и билинейная фильтрация текстур вгоняет меня в уныние. Кстати скайбокс дико глючит на стыках граней. Из далека эффект как будто они выполнены так - /\/\/\/\/\/\/\/\ Ну и ФПС убил. Просто убил. |
Ответ: SimpleGraphicsEngine 0.1b
Демка полное дерьмо, я просто торопилсо ))) поэтому ни о какой супер карте речи и не шло
фпс типа не больше 60 т.к не более частоты обновления экрана, скай бокс да )) тупак вышел из-з того что очень большое расстояние, |
Ответ: SimpleGraphicsEngine 0.1b
Чо? Упирается в vsync? А ничо что у мну 85 герц? И что иногда ниже 60 проседает? Скрин таки реквестирую.
|
Ответ: SimpleGraphicsEngine 0.1b
блин может тупо фпс просто рассчитывается т.к делал счетчик по книге Френка Луны
DWORD FrameCnt; float TimeElapsed; float FPS; void CalcFPS(float timeDelta) { FrameCnt++; TimeElapsed += timeDelta; if(TimeElapsed >= 1.0f) { FPS = (float)FrameCnt / TimeElapsed; TimeElapsed = 0.0f; FrameCnt = 0; } } ///////////////////// time = GetTickCount(); ...Рендеринг delta = GetTickCount - time; CalcFPS(delta) txt.DrawString(80,0,(int)(FPS*1000)); |
Ответ: SimpleGraphicsEngine 0.1b
Да. Счетчик погоду показывает у тебя. Но ФПС реально низкий. Fraps'у я верю. А в нем разброс - 50-70. А при vsync допустима погрешность 1-2 кадра. Вывод - срочно оптимизировать. С такими показателями на чуть более сложной сцене оно умрет нафиг.
|
Ответ: SimpleGraphicsEngine 0.1b
Вложений: 1
Ок, просто тянуть такой ( > 100 кб ) объем кода в одиночку не самое простое занятие. Кстате двиг тянет 3 000 000 треугольников( по крайней мере у меня ) с фпс 33 - 35( на скрине не 3 000 000 треугольников ))))))))))))))))))))) )
|
Ответ: SimpleGraphicsEngine 0.1b
куб что-то сильно плющит..
попробуй поставь угол зрения не p/2 а p/4 картинка должна стать лучш ^^ и ещё, скажи в чём соль твоего шейдера, если источник света статичен? -_- |
Ответ: SimpleGraphicsEngine 0.1b
источник не статичен он двигается стрелками ( источник это куб )
Новую версию с нормальной сценой новыми шейдерами и прочим выложу через день два, эта версия была проверкой на работоспособность |
Ответ: SimpleGraphicsEngine 0.1b
Цитата:
ЗЫ: Скайбокс просто ужасен! |
Ответ: SimpleGraphicsEngine 0.1b
уже работаю над новой качественной сценкой.
кто скачал, просьба писать FPS |
Ответ: SimpleGraphicsEngine 0.1b
Цитата:
фпс постоянно скачет от 32 до 66 и обратно... |
Часовой пояс GMT +4, время: 10:51. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot