Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 25.02.2014, 06:36   #1
bugway
ПроЭктировщик
 
Аватар для bugway
 
Регистрация: 19.03.2012
Адрес: Забайкальский край
Сообщений: 112
Написано 15 полезных сообщений
(для 23 пользователей)
Пишем 3D движок - замену Xors3D

Для создания 3D движка (альтернатива устаревающему движку Xors3D) собирается команда энтузиастов.

Цели проекта:

+ Сделать движок не хуже Xors3D
+ Получить опыт в разработке
+ НЕ убийца КРИЗИСА и Unity !!!
+ Реализовать некоторые интересные идеи

Фичи проекта:

+ Платформа только РС
+ Движок в виде внешней DLL
+ Поддержка 3D Vision и Oculus Rift
+ Поддержка терраморфинга
+ Большие ландшафты
+ Наличие удобного редактора

Что есть на текущий момент:

+ Исходники на PowerBasic 10
+ Репозитрий GIT на bitbucket.org
+ Несколько демок (очень примитивных, чтобы выкладывать тут)
+ Материалы, примеры, гайды и. т.п. (как использовать lua.dll и.т.п.)

Движок (точнее его зачатки ) уже может:

+ Инициализировать DX9
+ Устанавливать видеорежим
+ Рендерить сцену
+ Реализованы некоторые примитивы: кубы, плоскости, треугольники.
+ VBO. Реализована загрузка моделей формата OBJ
+ Работа с камерой
+ Есть зачатки редактора мира на Xors3D - можно портировать на чистый DirectX

Лог разработки:


06.03.2014

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

04.03.2014

- Написан с нуля модуль для работы с HID-устройствами. Работает поиск трекера Oculus Rift на шине USB.

03.03.2014

- Портирован исходник для работы с видеокартами NVidia (nvapi.dll)



Скрины и демки:




Одна из первых демок:

FirstDemo.rar



Кто требуется в первую очередь:

- Человек, имеющий опыт в работе с шейдерами.
- Человек, имеющий опыт работы с физическими движками

а также все заинтересованные.

UPD: Нужность и целесообразность обсуждаем тут

Пара скринов с репозитория:



Пример кода (метод загрузки модели формата OBJ, выдранный из класса):

'===============================================================================================================================
METHOD xLoadMeshFromOBJ(File AS STRING)
    DIM buf AS STRING, FN AS LONG, FC AS LONG
    DIM tc AS LONG, vc AS LONG, P(4) AS STRING, v() AS vertexType, vtu() AS SINGLE, vtv() AS SINGLE
    DIM z(4) AS WORD, zp(4) AS STRING
    IF ISFILE(File) THEN 'если файл найден
        FN = FREEFILE
        OPEN File FOR INPUT AS FN
        WHILE NOT EOF(FN)
            LINE INPUT #FN,buf
            INCR FC
            IF MID$(TRIM$(buf),1,1)<>"#" THEN
                PARSE buf, p(), " "     'парсим строку в массив P()
                SELECT CASE p(0)
                    CASE "mtllib":      'файл с материалами           'пока не нужно
                    CASE "o":           'новый подмеш (набор) subset  'если текстурный атлас - субмеши не нужны
                    CASE "v":           'координаты вертекса
                        REDIM PRESERVE v(vc)
                        v(vc).x=CSNG(VAL(p(1)))  :  v(vc).y=CSNG(VAL(p(2)))  :  v(vc).z=-CSNG(VAL(p(3)))
                        INCR vc
                    CASE "vt":          'координаты текстуры
                        REDIM PRESERVE vtu(tc), vtv(tc)
                        vtu(tc)=CSNG(VAL(P(1)))  :    vtv(tc)=1-CSNG(VAL(P(2)))
                        INCR tc
                    CASE "vn":          'нормали - пока не нужны
                    CASE "f":           'индексы стрипов или треугольников (делаем только треугольники!)
                        PARSE P(1), ZP(), "/"
                        Z(0)=CWRD(VAL(ZP(0))):  Z(1)=CWRD(VAL(ZP(1))):  Z(2)=CWRD(VAL(ZP(2))) ' (Z(0)-1)   - индекс вертекса
                        me.AddVertex (v(Z(0)-1).x, v(Z(0)-1).y, v(Z(0)-1).z, vtu(Z(1)-1), vtv(Z(1)-1))

                        PARSE P(2), ZP(), "/"
                        Z(0)=CWRD(VAL(ZP(0))):  Z(1)=CWRD(VAL(ZP(1))):  Z(2)=CWRD(VAL(ZP(2))) ' (Z(0)-1)   - индекс вертекса
                        me.AddVertex (v(Z(0)-1).x, v(Z(0)-1).y, v(Z(0)-1).z, vtu(Z(1)-1), vtv(Z(1)-1))

                            PARSE P(3), ZP(), "/"
                            Z(0)=CWRD(VAL(ZP(0))):  Z(1)=CWRD(VAL(ZP(1))):  Z(2)=CWRD(VAL(ZP(2))) ' (Z(0)-1)   - индекс вертекса
                            me.AddVertex (v(Z(0)-1).x, v(Z(0)-1).y, v(Z(0)-1).z, vtu(Z(1)-1), vtv(Z(1)-1))

                END SELECT
            END IF
        WEND
        CLOSE FN
        IF FC<5 THEN MSGBOX "Incorrect file - please convert it with MilkShape! (or convert from UNIX format!)"
    ELSE 'файл не найден
        MSGBOX "File not found:  " & file
    END IF
END METHOD

Как видите - очень простой пример процедуры загрузки формата OBJ...

Последний раз редактировалось bugway, 05.03.2014 в 19:46.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо bugway за это полезное сообщение:
DStalk (25.02.2014), L.D.M.T. (25.02.2014), Randomize (25.02.2014)
Старый 25.02.2014, 07:20   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Скрины? Прмеры кода? Бенчмарки?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 08:57   #3
Harter
Бывалый
 
Аватар для Harter
 
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений
(для 2,520 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Отличный ник! Хорошо бы смотрелся в качестве названия какой-нибудь аутсорс-студии.
"BugWay - we provide only high quality bugs!"
"BugWay - try to deBug!"
...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
BlackOut (02.03.2014)
Старый 25.02.2014, 09:39   #4
bugway
ПроЭктировщик
 
Аватар для bugway
 
Регистрация: 19.03.2012
Адрес: Забайкальский край
Сообщений: 112
Написано 15 полезных сообщений
(для 23 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

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

Судя по обсуждениям только одного форума о Xors3d - все хотят продолжения поддержки движка, т.к. он очень простой. Но до сих пор НИКТО не предложил сделать аналогичный движок.

Выкладывать скрины думаю вообще не особо целесообразно, ведь пишется именно движок, а не контент для него... Что можно оценить по скриншоту? Для оценки движка нужно какое-то время с ним поработать, понять его структуру, оценить удобство и функциональность. На текущем этапе в плане моего движка это сделать нельзя до завершения хотя бы основных функций....
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 10:58   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

А почему бейсик? Ксорс же на С++ под любой язык подключается... Имхо вы хотите написать новый Blitz3d, а не Ксорс...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
moka (25.02.2014), Mr_F_ (25.02.2014)
Старый 25.02.2014, 11:14   #6
L.D.M.T.
Бывалый
 
Аватар для L.D.M.T.
 
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений
(для 832 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

DIM z(4) AS WORD, zp(4) AS STRING - я щитаю лишнее, будет проще указывать DIM z#(4), dim zp$(4)
__________________
Per Aspera Ad Astra...
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 11:17   #7
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 978
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

И чем он новее если опять dx9?

Кстати Knightmare вроде собирался что то делать только не для блица. Есть инфа?
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 11:35   #8
bugway
ПроЭктировщик
 
Аватар для bugway
 
Регистрация: 19.03.2012
Адрес: Забайкальский край
Сообщений: 112
Написано 15 полезных сообщений
(для 23 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Сообщение от pax Посмотреть сообщение
А почему бейсик? Ксорс же на С++ под любой язык подключается... Имхо вы хотите написать новый Blitz3d, а не Ксорс...
Нет. Задачи написать новый блиц желания нет. Цель - сделать движок с рендером DX9/10/11 с продуманной архитектурой и совместимый со всем, с чем только можно. Блиц, си, VB6, PowerBasic, PureBasic, FreePascal и т.п. К тому же с редактором мира.

Выбор языка PowerBasic 10 обусловлен следующим:

+ Простой синтаксис языка
+ Мощь и возможности Си (+ есть встроенный ассемблер, 17 типов данных!!!)
+ Чисто нативный код без виртуальных машин
+ Поддержка классов, COM, и.т.п.
+ самое главное: есть готовые заголовочные файлы для ВСЕГО WIN32API!!! Включая DX9/10/11!!!

Т.е. на выходе будет DLL или несколько, которые можно использовать практически в любом языке.
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 11:39   #9
bugway
ПроЭктировщик
 
Аватар для bugway
 
Регистрация: 19.03.2012
Адрес: Забайкальский край
Сообщений: 112
Написано 15 полезных сообщений
(для 23 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Сообщение от L.D.M.T. Посмотреть сообщение
DIM z(4) AS WORD, zp(4) AS STRING - я щитаю лишнее, будет проще указывать DIM z#(4), dim zp$(4)
Код набран на скорую руку, но вообще суффиксы обещали исключить в следующих версиях компилятора...
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 12:04   #10
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

PowerBasic 10
ну это несерьёзно как-то.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
moka (25.02.2014), Nerd (26.02.2014)
Старый 25.02.2014, 12:14   #11
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Несерьезно - это лепить виртуальную машину на android и пихать это дело в мобилки с многоядерными процами.
А PowerBasic для данной задачи я думаю вполне подходит...
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 14:06   #12
jimon
 
Сообщений: n/a
Ответ: Пишем 3D движок - замену Xors3D

Запилите мне версию под Mac, Ubuntu\Debian, FreeBSD, iOS, Android, WP8
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (25.02.2014)
Старый 25.02.2014, 15:13   #13
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений
(для 410 пользователей)
Re: Пишем 3D движок - замену Xors3D

Да, действительно, надо мультитаргетенджин.
Виндовс, Андроед, Айёос, HTML5 или WebGL и опционально, но желательно Линух и Мак
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 17:09   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

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

ну а вообще да, я бы бенчмарки бы посмотрел.
(Offline)
 
Ответить с цитированием
Старый 25.02.2014, 18:31   #15
bugway
ПроЭктировщик
 
Аватар для bugway
 
Регистрация: 19.03.2012
Адрес: Забайкальский край
Сообщений: 112
Написано 15 полезных сообщений
(для 23 пользователей)
Ответ: Re: Пишем 3D движок - замену Xors3D

Сообщение от MadMedic Посмотреть сообщение
Да, действительно, надо мультитаргетенджин.
Виндовс, Андроед, Айёос, HTML5 или WebGL и опционально, но желательно Линух и Мак
Думаю если человек реально собрался выпускать игру на всех платформах - ему НЕ НУЖЕН движок уровня Xors3D, т.к. это уже совсем другой уровень. Скажите честно - кто-нибудь сделал на Xors3d убийственный коммерческий проект? Я думаю ответ очевиден.

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

Я реально оцениваю свои силы и возможности и говорю сразу - "Убийцы Unity" не будет. Но должен получится (если мы сообща приложим усилия) вполне приемлемый по качеству движок.

Что могу гарантировать я - как минимум не пропаду как Сквид. А если вдруг и заброшу проект, то как минимум оставлю исходники всем желающим. (кстати, обсуждаем вопрос изначальной открытости исходников)

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

Если есть энтузиасты, готовые полученный код портировать на PureBasic, который поддерживает Linux и Mac - нет проблем!

Хотя чем и интересен именно PowerBasic - он позволяет делать все тоже самое, что и на Си - только намного проще и код намного более читабельный и понятный. Не думаю, что кто-то будет иметь желание ковыряться в чужом коде Си. Особенно Си++.

Если все-таки не сойдемся в выборе инструмента - можно писать алгоритмы на псевдоязыке и переводить на свой любимый язык или платформу. Но согласитесь, задача не завоевать рынок, не убить Юнити - мы сделаем удобную и нужную обвертку под графическое АПИ в первую очередь для себя, для воплощения своих творческих идей. Мне кажется - что это было стержнем у Xors3D.

От сообщества поклонников Xors3D требуется список фич, которых не хватало в Xors3D. Например мне не хватало функций для работы с ландшафтом, были глюки с LODом и дыры в ландшафте. И много чего еще. Так давайте вместе это дело исправим?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо bugway за это полезное сообщение:
L.D.M.T. (25.02.2014), No09 (28.02.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com