Войти
ПроектыФорумУтилиты

GPL редактор DREAMS 3D - релиз компонента ScriptEditor(альфа, отдельное приложение) - ТЕМА ПРИОСТАНОВЛЕНА. (3 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 513 Следующая »
#30
6:55, 10 фев. 2017

DREAMS_3D_Editor/Dream/DreamEngine/DREAMEngine.cpp не должен знать о всех форматах которые движок поддерживает.

Не должно быть метода

extern "C" DREAMENGINE_X_EXPORT bool ImportFBX_GetDesc(QString Path, QObject *Desc)

Ты таким образом на каждый формат будешь делать метод?
Делай универсальные методы:

extern "C" DREAMENGINE_X_EXPORT bool Import_GetDesc(QString Extension, QString Path, QObject *Desc)

extern "C" DREAMENGINE_X_EXPORT bool Import_GetScene(QString Extension, QObject *Desc)
Эти методы уже берут плагин (он должен быть синглтоном или методы статическими) который поддерживает формат с данным расширением, и вызывают эти методы, передавая туда расширение (если плагин поддерживает несколько форматов).


#31
13:00, 10 фев. 2017

Нет, не сделано. Делаю.

#32
17:52, 10 фев. 2017

Убрал из Shell и Engine всё, относящееся к FBX, в том числе диалоги опций импорта. Запихнул это всё в плагин.

#33
20:36, 10 фев. 2017

Добавлены новые возможности. Теперь можно выделять несколько мешей. Выделение снимается кликом на пустой области. Соответственно улучшено вращение вокруг выделенного. На хоткей F4 повесил показ/скрытие сетки поверх геометрии. На выделенном меше сетку показываю всегда.

#34
3:50, 11 фев. 2017

Virtual_Light ты не всегда делаешь коммиты?
Сделай dev ветку в которой будешь вести разработку и тестирование. После тестирования уже сливай в мастер.
Коммиты делай чаще, вплоть до моментов когда сделал маленькое исправление, чтобы потом не вспоминать что ты там делал и что писать в описание коммита.
Коммиты имеющие описание изменений вроде поста 33 плохие. Плохие потому что если придется делать откат, то откатывается слишком много. Надо разбивать.

#34
4:38, 11 фев. 2017

Virtual_Light
  От редактора игры нужно чтобы мышкой можно было загружать и расставлять модельки
из 3D MAX и искривлять сетку террейна и затем сохранять готовую карту в текстовом файле.
Это минимум.

  Кучу всяких форматов графических файлов можно и не делать, так как это только
усложнит код игры.

#35
11:24, 11 фев. 2017

Panur

J.A.C.K. - это новый редактор уровней для игр с квейковской BSP-архитектурой.

Это уже вымерло по сути. BSP решал проблемы производительности путем отсечения невидимой геометрии. Расчет видимости происходил по предварительно рассчитанному дереву. Сейчас используются другие техники для оптимизации.

Virtual_Light не понятно что делает SDK. Что там за исходники и для чего они. Нужно комментировать как файлы (в начале), так и код - методы и переменные (public).
Для тог чтобы написать плагин по сути нужен только lib и h файлы из SDK. Ну и отладочные pdb. Код из движка, cpp файлы, не нужно ложить в SDK.

#36
12:55, 11 фев. 2017

DDR3
> Для тог чтобы написать плагин по сути нужен только lib и h файлы из SDK.
Именно так. Это не SDK, а его исходный код. На выходе именно lib и h. Просто и этот код нужно где-то хранить.
Бабер
Это не редактор игры. Это самостоятельная программа, которая не будет входить в игровой движок. Террейн я делать не буду.
DDR3
> Virtual_Light ты не всегда делаешь коммиты?
Именно. В 11 часов вечера нет особого желания делать ещё и коммит. Разве что на следующий день с утра.

#37
15:05, 11 фев. 2017

Опять авария. Проект Dream_Shell будет залит заново под другим именем.

#38
15:34, 11 фев. 2017

Virtual_Light
> Именно так. Это не SDK, а его исходный код. На выходе именно lib и h. Просто и
> этот код нужно где-то хранить.
Стоп. Это неправильно. У тебя в файле
DreamX\Dream_Shell\Source_FBX\FbxImportOptionsWindow.cpp
есть строки:

#include "zRollout.h"

....

Rollout5 = new zRollout(this);


То есть, по сути zRollout.h это часть движка, так как его использует движок.

Убери zRollout.h, ISceneImporter.h и другие, в движок или в редактор, сам реши куда правильнее.

SDK - это просто публичный интерфейс к внутренностям движка и редактора. просто h-файлы.
Чтобы юзер не парился искать нужные файлы для включения при написании плагина, сделай файл который включает h-файлы содержащие нужные ему классы и назови его «SDK.h» как нибудь так и всё.
Многие движки сделаны по другому - дублируются h-файлы в папке sdk.
SDK как правило не содержит исходников (cpp). Если и содержит, то это подфрейворк в составе движка. Но наружу эти исходники не выходят. Юзеру они не нужны.

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

Virtual_Light
> Опять авария. Проект Dream_Shell будет залит заново под другим именем.
Подробности описывай. Что у тебя там с Git не получается?
Что используешь для работы с репозиторием?

#39
22:58, 11 фев. 2017

DDR3
> Подробности описывай. Что у тебя там с Git не получается?
Решил собрать Shell в Release конфигурации. Студия стала выдавать ошибки, указывала на FbxImportOptions. Сорок минут искал в проекте эти файлы, не нашёл. Открыл проект в блокноте, нашёл там эти строки, нигде в интерфейсе IDE их не было. Удалил их. Загрузка проекта стала валиться с ошибкой. Проект я не починил, взял старый файл. Утром залил код в репозиторий, потом скачал снова, эти файлы подошли отлично. В середине дня всё починил.
DDR3
> Что у тебя там с Git не получается?
Использую TortoiseGit, не могу сохранить в свойствах репозитория remote. При каждом push он сбрасываетя на старое значение.
DDR3
> Я тебе говорю как лучше делать - делай коммиты чаще. Например написал новый
> функционал - сделай коммит
Неудобно делать коммиты, долго.
DDR3
> То есть, по сути zRollout.h это часть движка, так как его использует движок.
zRollout - это класс раскрывающейся панели. Его использует редактор, чтобы отображать виджеты, и его должен использовать пользователь в плагине, чтобы отобразить виджеты в своих диалогах. Иначе плагин будет без нормального гуя. ISceneImporter - это абстрактный интерфейс для плагина. Его использует пользователь в плагине, чтобы сказать движку, что класс плагина ему знаком. Плагин от него наследуется. И его использует движок, чтобы загрузить плагин.

#40
23:41, 11 фев. 2017

DDR3
если я что-то изменю на сервере, то попытка сделать push окончится pull-ом и необходимостью разрешить конфликт, а это не получается. Кнопка Mark As Resolved всегда неактивна. Это час, потерянный впустую. Чем меньше коммитов, тем меньше проблем.

#41
6:28, 12 фев. 2017

Virtual_Light выкинь tortoise.
https://ru.atlassian.com/software/sourcetree

#42
8:07, 12 фев. 2017

В SDK у тебя получается часть ядра движка. SDK это просто лишний проект. У тебя уже есть ядро - это сам движок.
Эти файлы нужно перенести в движок:

VM_Triangulator.h
VM_Triangulator_Adapter.h
zGeometryStatistics.h
zMesh.h
zTransform3d.h

Этот файл перенести в Shell:

ISceneImporter.h

Таким образом у тебя получится три проекта - ядро, редактор и FBX плагин.
Переименуй ядро в DreamEngine или DreamCore; редактор в DreamEditor
Все исходные файлы помести в каталог Source; Все заголовочные в каталог Include

Структура получится вот такой:


[DreamEditor]
    [DreamEngine]
    .    [Intermediate]
    .    [Source]
    .    [Include]
    .    [Lib]
    .    .    [x64]
    .    .    .    DreamEngine64.lib
    .    .    .    DreamEngine64_d.lib
    .    .    [x86]
    .    .    .    DreamEngine.lib
    .    .    .    DreamEngine_d.lib
    .    [Bin]
    .    .    [x64]
    .    .    .    DreamEngine64.dll
    .    .    .    DreamEngine64_d.dll
    .    .    [x86]
    .    .    .    DreamEngine.dll
    .    .    .    DreamEngine_d.dll
    .    DreamEngine.vcxproj
    .
    [FBXImporter]
    .    [Intermediate]
    .    [Source]
    .    [Include]
    .    [Lib]
    .    .    [x64]
    .    .    .    FBXImporter64.lib
    .    .    .    FBXImporter64_d.lib
    .    .    [x86]
    .    .    .    FBXImporter.lib
    .    .    .    FBXImporter_d.lib
    .    [Bin]
    .    .    [x64]
    .    .    .    FBXImporter64.dll
    .    .    .    FBXImporter64_d.dll
    .    .    [x86]
    .    .    .    FBXImporter.dll
    .    .    .    FBXImporter_d.dll
    .    FBXImporter.vcxproj
    .
    [DreamEditor]
    .    [Intermediate]
    .    [Source]
    .    [Include]
    .    [Bin]
    .    .    [x64]
    .    .    .    DreamEditor64.exe
    .    .    .    DreamEditor64_d.exe
    .    .    [x86]
    .    .    .    DreamEditor.exe
    .    .    .    DreamEditor_d.exe
    .    DreamEditor.vcxproj
    .
    DreamEditor.sln
#43
12:14, 12 фев. 2017

DDR3
> SDK это просто лишний проект
Как пользователь будет писать плагин без SDK?

#44
12:23, 12 фев. 2017

DDR3
> Этот файл перенести в Shell:
Зачем? Shell его никак не использует. Плагины загружает движок, чтобы получить прямой доступ к их механике. Shell это посредник.

Страницы: 1 2 3 4 513 Следующая »
ПроектыФорумУтилиты

Тема в архиве.