Russian Qt Forum
Ноябрь 22, 2024, 18:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Трехмерный движок для qt  (Прочитано 9817 раз)
DistinctVision
Гость
« : Август 28, 2016, 15:56 »

Добрый день.
Делал трехмерный движок для qt, может кому здесь пригодится:
https://github.com/DistinctVision/QScrollEngine
К слову есть еще один велосипед, используемый совместно с тем велосипедом:
https://github.com/DistinctVision/PhysicsEngine
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Август 29, 2016, 09:33 »

Вас не смущает 178 предупреждений конвертации size_t в int?
Записан
DistinctVision
Гость
« Ответ #2 : Август 29, 2016, 17:33 »

Смущало бы, если бы они у меня были. Разные компиляторы, по разному на все реагируют.
Видимо когда менял код, что то забыл
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Август 29, 2016, 17:59 »

Какой у вас компилятор? Версия?
Записан
DistinctVision
Гость
« Ответ #4 : Август 29, 2016, 18:07 »

Qt 5.6,1, msvc 2013
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #5 : Август 29, 2016, 23:35 »

Вас не смущает 178 предупреждений конвертации size_t в int?
Там какой-то простой флажок нужно выставить. Типа "не предупреждать о потере значности при приведении типов" size_t = unsigned int. Вряд ли размер чего-то в нормальном проекте превысит int-значность. Улыбающийся
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #6 : Август 30, 2016, 07:30 »

Согласен, что int значность не превысится. Но такой флажок, как мне известно будет игнорировать и потери для переменных меньшей разрядности.
Если использовать этот код в ином проекте (как это и предполагается), то разработчик скорее всего не захочет отключать такие предупреждения. По сути тут всего лишь добавить static_cast
Записан
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #7 : Август 30, 2016, 07:40 »

Смущало бы, если бы они у меня были.
Попробуйте собрать 64-битную версию, обычно такие ошибки в MSVC именно на 64-битной сборке вылезают.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #8 : Август 30, 2016, 09:45 »

Там даже встречаются предупреждения size_t => qint16
У меня компиль msvc2015 x64
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #9 : Август 30, 2016, 10:02 »

Цитировать
Isosurfaces (marching cubes)
А что это?
Записан
DistinctVision
Гость
« Ответ #10 : Август 30, 2016, 12:14 »

https://ru.wikipedia.org/wiki/Marching_cubes
Грубо говоря, это визуализация трехмерной функции.
На github есть гифка, непонятный меняющийся объект слева, это оно и есть.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Август 30, 2016, 12:49 »

Чуть подробнее. Напр как построить такую бяку (аттач)? Запускается полигонайзер (marching cubes) который зовет Ваш калбэк (density function). Калбэк получает координаты точки в пр-ве и должен вернуть -1 если точка "снаружи" или +1 если "внутри". Упрощенный пример
Код
C++ (Qt)
// Исходные данные
QVector<QVector3D> cntr;  // точки в пр-ве
float radius;               // один радиус для всеx
 
float MyDensityFunction( const QVector3D & pos )
{
 for (int i = 0; i < cntr.size(); ++i)
  if ((pos - cntr[i]).length() < radius)
   return 1;
 
 return -1;
}
Меняя density function можно получать очень причудливые формы. В общем - классика
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #12 : Август 30, 2016, 14:17 »

А это интересненько. Только мне marching tetrahedrons больше подойдёт. Но, в далёком будущем.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.097 секунд. Запросов: 23.