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

3D редактор

Страницы: 1 2 312 13 Следующая »
#0
(Правка: 6 мая 2020, 8:03) 14:02, 23 фев. 2020
14:02, 23 фев. 2020

Релизы для Windows x64

v0.1.2Редактирование вершин, экспорт, генерация плоскости с параметрами, Python.
v0.1.1Загрузка высокополигональной модели, выбор и трансформация объектов, рисование вершин.
v0.1.0Есть только камера, разбиение вьюпорта на части и загрузка лоуполи модели.


+ Показать


#1
14:43, 23 фев. 2020

3dhater
> Класс со статическими методами, для возможности вызова таким способом
namespace?

3dhater
> _type * ptr = (_type*)kkMemory::allocate(sizeof(_type));
> new((void*)ptr) _type( constructor_here );
не exception safe, (void*) не нужен

3dhater
> static void destroy( _type * ptr )
> {
> ptr->~_type();
> kkMemory::free( ptr );
> }
Спецефецировать, что будет для nullptr
Стандартные методы (free, delete, delete[]) - для нулевого указателя - noop, но считать nullptr это UB - это тоже нормально (но в таком случае лучше добавать ассерт)

3dhater
> static _type * create( const _type& constructor_here )
Лучше передавать параметры через вариадик

template<typename Args...>
static _type * create(Args&&... args)
new(ptr) _type(std::forward<Args>(args)...);

3dhater
> Для автоматического уничтожения объектов добавил класс обёртку который в
> деструкторе вызовет
Не умеет в move, лучше использовать std::unique_ptr с кастомным делетером

#2
(Правка: 17:32) 15:04, 23 фев. 2020

return [](){};
спасибо за идеи. буду разбираться и вносить изменения. пока ещё не поздно

______

осталось подумать над std::unique_ptr 🤔
но пока kkPtr справляется с задачей - просто автоматическое удаление объектов.

#3
(Правка: 21:52) 21:51, 23 фев. 2020

3dhater
> спасибо за идеи. буду разбираться и вносить изменения. пока ещё не поздно
Ты болен. Просто посмотри сколько людей на зарплате тридемакс делает и успокойся уже.

#4
22:31, 23 фев. 2020

раб вакуумной лампы
> Просто посмотри сколько людей на зарплате тридемакс делает и успокойся уже.
не всем нужен комбайн, когда нужно покосить собственный двор.

#5
(Правка: 20:43) 20:15, 24 фев. 2020

Что на данный момент есть

Untitled | 3D редактор

ГУИ, пока майн меню. По нему можно понять какие должны быть минимальные функции к первой версии программы.

Добавил структуру для хранения цветовой схемы программы.

Каковы дальнейшие действия?

Нужно сделать вьюпорт. Фон вьюпорта будет из квадрата, закрашенного градиентом.

нужна реализация для opengl

m_gs->draw_rectangle( up_left, bottom_right, color1, color2 );

нужно рисовать на лету, без создания буферов

Следующий шаг, рисование линии в пространстве.

Нарисовав что-то, можно создать и настроить камеру. Кстате для камеры, да и для прочих объектов сцены нужно будет уметь делать иерархию объектов.

#6
21:15, 25 фев. 2020

3dhater
> Нужно сделать вьюпорт. Фон вьюпорта будет из квадрата, закрашенного градиентом.
3dhater
> нужно рисовать на лету, без создания буферов
>
> Следующий шаг, рисование линии в пространстве.
>
> Нарисовав что-то, можно создать и настроить камеру. Кстате для камеры, да и для
> прочих объектов сцены нужно будет уметь делать иерархию объектов.

Готово

コメント 2020-02-25 210005 | 3D редактор






Следующие шаги...........
Нужно сделать полноценные вьюпорты.
Они должны быть настраиваемыми.
Делать как в блендере не хватит сил, как в максе - слишком уныло.

В моих фантазиях я представляю кнопки, по нажатию на которых добавляются новые окошки вьюпорта.
Кнопка слева добавит вьюпорт слева.
Кнопка справа добавит вьюпорт справа.
Будут кнопки с преднастроенными вьюпортами.

Задачи есть, иду к цели!

#7
(Правка: 21:08) 21:07, 26 фев. 2020

Закрепляю промежуточный результат.

コメント 2020-02-26 205458 | 3D редактор

Вьюпорты представляют собой дерево. Создавая новый, родительский вьюпорт ужимается в 2 раза, и рядом встаёт дочерний. Проблема будет (возможно), в удалении вьюпорта. Визуально не понять где родительский а где дочерний, и может захотеться удалить родительский. Возможно нужно будет просто передать дочек другому родителю...

Быть может получится сделать как в блендере.

Напрягает эта особенность ОткрытойГБ когда координаты экрана начинаются с левого нижнего угла. не привычно

... пока вьюпорты не реагируют на изменение размера окна. и ещё при нажатии на кнопку, когда создаётся навый вьюпорт, рамка отодвигается влево или вниз (это только при первых нажатиях). Мелочь но глаза мозолит.

В общем, решив эти проблемы, попробую сделать изменение размеров вьюпорта. И заодно удаление.

#8
2:01, 27 фев. 2020

крипота то какая, крипота!

#9
14:27, 27 фев. 2020

3dhater
> Я люблю 3Д.

ККК
> Black Lives Matter

#10
(Правка: 20:09) 18:16, 27 фев. 2020

3dhater
> .. пока вьюпорты не реагируют на изменение размера окна. и ещё при нажатии на
> кнопку, когда создаётся навый вьюпорт, рамка отодвигается влево или вниз (это
> только при первых нажатиях). Мелочь но глаза мозолит.

oooo | 3D редактор

Осталось сделать функцию для преобразования координат экрана в координаты OpenGL и растянуть сами вьюпорты.

Я не буду делать изменение размеров самих вьюпортов. Слишком много времени потратил на них. Оставлю на будущее.


ТА-ДА!!
コメント 2020-02-27 200523 | 3D редактор

Далее нужно сделать подсветку активного вьюпорта. Выбор вьюпорта.
Потом сделать камеру. В каждом вьюпорте своя камера.
Вращение, перемещение камеры.

#11
0:46, 29 фев. 2020

3dhater
> Далее нужно сделать подсветку активного вьюпорта. Выбор вьюпорта.
> Потом сделать камеру. В каждом вьюпорте своя камера.
コメント 2020-02-29 003559 | 3D редактор
Выбор вьюпорта, подсветка активного, подсветка не активного на котором висит курсор.
Выбор левой и правой кнопками по щелчку, средней можно удерживать.
Камера, приближение о отдаление на колёсике.
Изменил положение кнопок по добавлению вьюпорта. Теперь они в левом нижнем углу. При дроблении вьюпорта, старое окошко уходит влево или вниз.

#12
9:25, 29 фев. 2020

Вопрос простой: Нахрена?

Большую часть времени пользователь проводит с одним вьюпортом на весь экран. Это должно быть достижимо в один клик или одно нажатие хоткея. Больше 4-х вьюпортов для 3D мира вообще не нужно. Достаточно две схемы: 1 вьюпорт / 4 вьюпорта. И быстрое переключение между ними.

Сетку рисовать нужно еще менее выразительно. Почти в цвет фона. При zoom-удалении шаг сетки можно увеличивать, чтобы не было столько линий на квадратный миллиметр.

#13
(Правка: 12:53) 11:47, 29 фев. 2020

wat
> Нахрена?
Вначале я тоже задался этим вопросом. Достаточно было горячих клавиш.

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

И туда можно будет рисовать что-то другое, например содержимое UV редактора и т.д. Наверно... Может и не надо этого делать. Пока нет чётких планов.

#14
16:48, 29 фев. 2020

Сделал обработку нажатия клавиш.
Как пример - отжатие Z сбросит камеру текущего вьюпорта.


wat
> Сетку рисовать нужно еще менее выразительно. Почти в цвет фона.

コメント 2020-02-29 164108 | 3D редактор

wat

> При zoom-удалении шаг сетки можно увеличивать, чтобы не было столько линий на
> квадратный миллиметр.
Согласен.
Так-же была мысль где-то показать размер сетки, чтобы сразу понять масштаб. Пока размер равен 1.f

Страницы: 1 2 312 13 Следующая »
ФлеймФорумПроЭкты