Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Математическая библиотека для физики и графики..и.т.д ! (4 стр)

Математическая библиотека для физики и графики..и.т.д ! (4 стр)

Страницы: 1 2 3 4 5 6 Следующая »
nonamezeroxПостоялецwww5 фев. 201814:57#45
werasaimon
> P.S : что делает эта дериктива __attribute__((aligned(8))) .

Выравнивает экземпляр юниона/структуры на стеке на границу 64 бит (последние три цифры адреса - 000). Помогает подсказать компилятору использовать aligned-версии SIMD инструкций.

denesikПостоялецwww5 фев. 201815:40#46
werasaimon
>
> Может кто подскажет в чёмь разница между file.h и file.hpp?
Нету. .hpp обычно юзают для шаблонных библиотек. В .h пишут объявление класса, в .hpp определение.
0xc0deПостоялецwww5 фев. 201819:17#47
/A\
> а если будет так:
>
> struct Vec {
> T x, y, z, w;
> };
> struct Arr {
> T v[4];
> };
> // sizeof(Vec) != sizeof(Arr)
>
> то твой код сломается.

это где такое возможно?

werasaimon
> приставка unsigned для исключения не надо , потому что [-index] лутше вообще
> запретить такое обращения к элементу, видь с точки зрения математики это не
> верно

для 32битного числа:
(unsigned)(-1)  == 0xffffffff
(unsigned)(-2)  == 0xfffffffe
(unsigned)(-3)  == 0xfffffffd
и так далее, а это всегда больше, чем 3. Поэтому можно обойтись одной проверкой вместо двух.

/A\Постоялецwww5 фев. 201819:57#48
0xc0de
> это где такое возможно?
Внезапно, вчера в моем коде такое случилось)
Хотя больше похоже было на баг компилятора, так как он в компайл тайме рассчитывал одно смещение, а в рантайме другое более правильное, так что хз.
Но никто не гарантирует что компилятор не повставляет пустоты между полями, зато есть гарантия что не будет пустот между элементами массива.
werasaimonПостоялецwww5 фев. 201821:35#49
0xc0de
> для 32битного числа:
> (unsigned)(-1)  == 0xffffffff
> (unsigned)(-2)  == 0xfffffffe
> (unsigned)(-3)  == 0xfffffffd
> и так далее, а это всегда больше, чем 3. Поэтому можно обойтись одной проверкой
> вместо двух.
>
>
Это не верно, с точки зрения математики . Проще говоря индекс должен всегда быть натуральным числом .
Иначе теоретический можно буде  выйти за приделы нулеф_0 ,
Ну для этого конечно надо чтоб на компютере было сверхбесконечность памяти , что в реальном мире не возможно!


nonamezerox
> Выравнивает экземпляр юниона/структуры на стеке на границу 64 бит (последние
> три цифры адреса - 000). Помогает подсказать компилятору использовать
> aligned-версии SIMD инструкций.
А что там с кратностю 8 , 16 .. или как это роботает ?
P.S: И вообще какого черта этим не занимается компилятор ?

Правка: 5 фев. 2018 21:43

nonamezeroxПостоялецwww5 фев. 201822:07#50
werasaimon

Для индексов ИСПОЛЬЗОВАТЬ ТИП size_t И ТОЛЬКО ЕГО

FordPerfectПостоялецwww6 фев. 20183:55#51
nonamezerox
Я тему напомню, что-ли.
nonamezeroxПостоялецwww6 фев. 20188:44#52
FordPerfect

https://habrahabr.ru/company/pvs-studio/blog/81222/

https://www.viva64.com/ru/a/0004/#ID0ENGAM
https://www.viva64.com/ru/a/0004/#ID0EA6BM

А  тот срач на 27 страниц я видел и он совсем не о  том.

Правка: 6 фев. 2018 9:14

werasaimonПостоялецwww7 фев. 201810:46#53
nonamezerox
> Для индексов ИСПОЛЬЗОВАТЬ ТИП size_t И ТОЛЬКО ЕГО
А для пирименых с плавающей точкой , что использовать?
0xc0deПостоялецwww7 фев. 201814:19#54
/A\
> Но никто не гарантирует что компилятор не повставляет пустоты между полями

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

0xc0deПостоялецwww7 фев. 201814:21#55
werasaimon
> Это не верно, с точки зрения математики

Ты программу пишешь или что? :) Что не верно для математики, может быть верно для языка программирования.

werasaimonПостоялецwww7 фев. 201815:58#56
0xc0de
> Ты программу пишешь или что? :) Что не верно для математики, может быть верно
> для языка программирования
Я же пишу математическую библиотеку, а в математики правила игры (аксиомы) сторого определенны , их нарушать не можно . А что там может язык программирования  меня  мало иинтересует!
Это проблемы розроботчиковь языка программирования !
denesikПостоялецwww7 фев. 201816:18#57
werasaimon
> А что там может язык программирования  меня  мало иинтересует!
с таким подходом только ты будешь пользоваться этой библиотекой
werasaimonПостоялецwww7 фев. 201823:06#58
denesik
> с таким подходом только ты будешь пользоваться этой библиотекой
В математики правила игры уточнялись 2-тысичилетия а то и больше, а правила игры в программировании ещё даже не розроботаны как следует ! А если я пишу математическую библиотеку , это значит я должен  принять её правила . Это же математика тут одно следует из другого , а третие  с первого и второго и.т.д . Я не могу делать что мне или разработчикам языка программирования  вздумаеться. Иначе я пользователя библиотеки завиду в заблуждения, видь я его буду банально обманывать.

P.S: например glm прикрасна с точки зрения програмирования онна быстрая , красивая, много функций и.т.д . Но в тоже время glm с точки зрения тензорной-математики банально пуста , почти все функции в ней это дублирования одного и тоже только с разными параметрами входа выхода , и , это сделано только  ради простоты использования библиотеки . И с моей точки зрения,  это усложнения системы лишние , видь всем известно чем проще система тем она лутьше!

Зачем в glm не симтричные матрицы, ну тобишь 2×3 3×2 ..?

Правка: 7 фев. 2018 23:14

FlyOfFlyПостоялецwww7 фев. 201823:35#59
Скоро появиться библиотеки для Helloworld'a
Страницы: 1 2 3 4 5 6 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр