SpaceEngine изнутри
|
|
equeim | Дата: Суббота, 30.07.2016, 22:43 | Сообщение # 136 |
Космический пилот
Группа: Пользователи
Российская Федерация
Сообщений: 94
Награды: 1
Статус: Offline
| Цитата SpaceEngineer (  ) На OpenGL - целиком и полностью. А как иначе? Я имею ввиду, есть ли слои абстракции, позволяющие безболезненно добавить поддержку других API без переписывания существующего кода?
|
|
| |
SpaceEngineer | Дата: Воскресенье, 31.07.2016, 00:33 | Сообщение # 137 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Цитата equeim (  ) Я имею ввиду, есть ли слои абстракции, позволяющие безболезненно добавить поддержку других API без переписывания существующего кода? Нету. А полностью абстрагироваться и не получится, некоторые фишки по-разному делаются на разных апи.
|
|
| |
serg-kkz | Дата: Четверг, 03.11.2016, 14:59 | Сообщение # 138 |
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 3
Награды: 0
Статус: Offline
| Здравствуте, ваш труд настолько велик, что даже в голове памяти не хватает, чтоб осознать масштаб вашего проекта. Я собственно пытаюсь программировать на питоне в движке Panda3D. Решил проверить ваш метод по увеличению точности в другом движке. Конечно буду использовать C++, для экспериментов. Собственно возник вопрос, вы класс для работы с fixed-point 64x64 сами писали или взяли готовый?
Сообщение отредактировал serg-kkz - Пятница, 04.11.2016, 03:33 |
|
| |
SpaceEngineer | Дата: Четверг, 03.11.2016, 15:39 | Сообщение # 139 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Сам писал, там ничего сложного, в сети полно примеров.
|
|
| |
serg-kkz | Дата: Суббота, 05.11.2016, 22:40 | Сообщение # 140 |
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 3
Награды: 0
Статус: Offline
| Интересно, если вы добились такой точности в 1.6 мм в любом уголке вселенной. То вам бы следовало застолбить эту технологию в плане как автор. Чтоб это звучало по миру как метод Романюка, по аналогии с другими методами разработанных кем либо.
|
|
| |
SpaceEngineer | Дата: Вторник, 08.11.2016, 23:56 | Сообщение # 141 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| serg-kkz, в этом нет никакой магии. Просто числа. 64.64 fixed point это расстояния от -2^63 до +2^63, с точностью 2^-64. В SE единица расстояния 1 парсек, следовательно, максимальные расстояния будут +/-2^63 пк = +/-9.22e+18 пк, а точность 2^-64 пк = 2^-64 * 3.0856e16 м = 0.00167 м = 1.67 мм. Можно извратиться и сделать 128.128 числа (всего-то 32 байта на одно число), какой у них будет диапазон и какая точность - можете сами посчитать.
|
|
| |
serg-kkz | Дата: Среда, 09.11.2016, 14:09 | Сообщение # 142 |
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 3
Награды: 0
Статус: Offline
| Я не про фиксированную точку, я в целом о проекте. Так как все ровно проц требует float, вы по сути изобрели алгоритм с наименьшими потерями для построения целой вселенной. У вас рендер относительный, замечу что это даже в других движках не реализовано. Принцип UVN камеры описывается в учебниках по 3D графики, но зачастую в проектах её не используют. А вместо этого на плавающей запятой изобретают костыли, масштабирование, зоны, камера всегда в позиции 0 0 0.
Ведь у вас я увидел впервые принцип, расчеты с фиксированной точкой, для минимизации потерь в числах и относительный рендер.
|
|
| |