forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   SimpleGraphicsEngine 0.1b (http://forum.boolean.name/showthread.php?t=9373)

mr.DIMAS 07.10.2009 23:16

SimpleGraphicsEngine 0.1b
 
:crazy:Решил замутить свой графический движок на ДиректХ 9. Мутил 6 дней - и вот что получилось:
1) Полная поддержка шейдеров до 3 модели включительно
2) Простая классовая структура
3) Двиг прост в обращении ( чтобы нарисовать кубик надо всего 7 коротеньких строк кода )
4) Нормальная камера ( на самом деле :-D ) на кватернионах
5) Пока загружает только *.х модельки но вскоре добавлю и 3ds и B3D
6) Простое использование шойдеров ( Загрузка -> Установка переменных -> Рисование )
7) Есть более расширенные настройки практически всего что есть в двиге

Дема.
В сцене самолет блицевский :-D и кубик + бамп на всех объектах с правильным освещением
Управление ну уж очень казуальным вышло :-D - WASD
AD поворот :4to:

В общем ногами не бейте.

Вот аттач( кому надо могу исходники скинуть :-D )

NitE 07.10.2009 23:18

Ответ: SimpleGraphicsEngine 0.1b
 
да, я-бы глянул исходники ))
кстати на широком формате демка выглядит жутковато

mr.DIMAS 07.10.2009 23:32

Re: SimpleGraphicsEngine 0.1b
 
Вложений: 1
блин не учел что у некоторых широкие экраны ( fuck ) ладно щас исходники выложу
вотс ( основной файл Main.cpp - т.е дема )
Core.SetFullscreenMode(0);
меняешь на
Core.SetFullscreenMode(1);
получешь оконный режим

ViNT 08.10.2009 00:02

Ответ: SimpleGraphicsEngine 0.1b
 
А что значит "Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна."?

Android 08.10.2009 00:05

Ответ: SimpleGraphicsEngine 0.1b
 
Не запускается, кидает ошибку.

impersonalis 08.10.2009 00:12

Ответ: SimpleGraphicsEngine 0.1b
 
нет редистов?

mr.DIMAS 08.10.2009 00:12

Re: SimpleGraphicsEngine 0.1b
 
пипец, почему?
to ViNT попробуй запустить исходники

ABTOMAT 08.10.2009 00:19

Ответ: SimpleGraphicsEngine 0.1b
 
:wild: Неужели так трудно сделать нормальное фрилучное управление?
Это же блин несколько строк кода (если у тебя и правда простой в обращении двиг, как написано в первом посте)
Увидел бамп, самолёт и сплющенный куб.
Для начала неплохо, но игру на этом пока не сделаешь :-D

impersonalis 08.10.2009 00:23

Ответ: SimpleGraphicsEngine 0.1b
 
Цитата:

Увидел бамп, самолёт и сплющенный куб.

Дали курит в сторонке

ViNT 08.10.2009 00:32

Ответ: SimpleGraphicsEngine 0.1b
 
Цитата:

Сообщение от impersonalis (Сообщение 120955)
нет редистов?

Да, ни студия, ни что-то подобное у меня не установлено, видимо по этому и вылетает (потом уже обратил внимание на маленький размер приложения).

Но я поражаюсь майкрософту - зачем обзывать ошибки так, чтобы потом было не разобраться, что они значат...

mr.DIMAS 08.10.2009 09:16

Re: SimpleGraphicsEngine 0.1b
 
да управление можно сделать быстро, но иногда происходит маза с неправильным перемножением кватернионов. ну впрочем эт моя проблема :)
2 АВТОМАТ а че ты хотел за 6 дней? Я буду еще много всякого добавлять. Или ты хочешь сказать что Хорс тоже писали неделю? :-)
Я вот не врубаю почему ни кто не глянул исходники? мож вы боитесь что там супер вирус :-) :-) :-) :-) :-) :-) :-)
2 ViNT соберу в кучу все длл'ки и соберу заново архив

Knightmare 08.10.2009 14:14

Ответ: SimpleGraphicsEngine 0.1b
 
Посмотрел код. Рекомендую теперь сделать Ctrl+A потом Ctrl+Del и начинать заново. Из очевидного что бросилось в глаза сразу:
1) Камера не унаследована от ентити, просто отдельный класс - бред
2) Функции управления объектами (перемещение и т.п.) не имеющие ничего общего с реальностью
3) Кругом лишняя нагрузка на процессор. На более менее приличной сцене твой двиг погибнет из-за этого
4) С текстурами вообще ничо не ясно. Но функция установки фильтрации убила (во-первых, всегда ставятся значения на 0 уровень, во-вторых, анизотропка ставится неверно).
5) Вся работа с шейдерами - тонюсенькая обертка вокруг стандартных ID3DXEffect
6) Сильная зависимость от D3DX, в идеале лучше не использовать ничего кроме шейдеров с нее.
7) Материалы типа есть, но по факту их нет
8) Увидев дефайн:
Цитата:

#define ADIN 1
Скатился под стол
9) Для загрузки Х моделей опять же юзается D3DX, поэтому о легкой загрузке других форматов забудь сразу, для этого тебе придется переписать двиг.
10) Общий стиль кода - смахивает на копипаст с разных мест. Блин, не может один человек писать используя десяток стилей (альтернативно одаренных оставим в стороне).
11) В общем и целом - это не двиг, а некая обертка над ДХ
12) Сильная зависимость от GAPI. У нас это явилось причиной невозможности портирования движка на другие платформы.
В общем работай, может чо и выйдет удобоваримое в итоге. Пока кода немного проще привести все в порядок, дальше будет хуже.
Ну и по траблам с необходимостью редиста для запуска - мать вашу, научитесь уже проект настраивать для начала, потом пишите двиги. В данном конкретном случае достаточно переключить тип рантайм библиотеки на статичную, вместо используемой DLL.

mr.DIMAS 08.10.2009 17:05

Re: SimpleGraphicsEngine 0.1b
 
Учитесь как надо отписываться! Спасибо за точное высказывание проблем. однако ctrl-a и Del я юзать не буду )). насчет ADIN эт у меня в голове после Упячки и Отаке.ру осталось.
Насчет копипаста них*я! все писал сам и куски кода брал из своих старых проектов
А зах камера должна наследоваться от ентити ?
насчет нагрузки на проц - я просто торопился и на оптимизацию пока Х положил. Но обязательно буду оптимизировать! Начну пожалуй с матриц которые в цикле рассчитываются ))) имо это есть предел тупости
11 пункт - гыыы смотри как двиг называется SimpleGraphicsEngine (простейший графический движок )
а вот с 12-ым пунктом мне вообще пох! я для винды пишу двиг а не для UNIX систем

Загрузка других форматов как раз при такой структуре будет удобной. Единственное на чем запарка будет очень долгая и нудная это на оптимизации

Knightmare 08.10.2009 17:15

Ответ: SimpleGraphicsEngine 0.1b
 
В любом случае, надо вырабатывать стиль кода нормальный (отдельные места в коде радуют, но в целом каша из разных стилей). Камера наследуется от ентити затем чтобы был единый интерфейс ко всем сущностям сцены (камера ведь такая же сущность, она так же перемещается и т.п., просто она несет свои функции дополнительно).
Цитата:

11 пункт - гыыы смотри как двиг называется SimpleGraphicsEngine (простейший графический движок )
Тем не менее. Движок это движок, а ты пока обернул часть ДХ функционала. Практической пользы это не несет.
Цитата:

а вот с 12-ым пунктом мне вообще пох! я для винды пишу двиг а не для UNIX систем
Я не говорил про никс системы. Если быть объективным - нахрен там движки не нужны никому. Однако со временем появится желание запилить ДХ11, а может на мобильные платформы портануть, а может на консольки. А нихрена и не выйдет без тотального переписывания кода.
В общем и целом - для начала выбрось D3DX меши, делай свои сюрфейсы, меши, загрузчики свои напиши для каких-нить форматов (если возьмешься за B3D очень НЕ рекомендую брать спецификацию на русском из Blitz Et Cetera, там сплошняком ошибки и неточности, лучше с офсайта слить английский). И подумай о графе сцены.

mr.DIMAS 08.10.2009 17:24

Re: SimpleGraphicsEngine 0.1b
 
а какие моменты оптимизации можешь посоветовать? или ссыль кинь если знаешь
*.b3d меня не особо радует своей ущербностью )) впрочем как и 3ds. а придумывать свой формат это расточительно, хотя может будет и компактнее и проще. в общем если так рассуждать - то чё я нуб чтоле в программинге?


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

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