Войти
ПрограммированиеФорумГрафика

OpenGL Вопросы (2 стр)

Страницы: 1 2 3 429 Следующая »
#15
15:29, 7 ноя. 2014

Мать их через ногу. Проклятые фошысты.
Короче. В glm указывают fov в радианах с версии 0.9.5. А на сайте дока старая. А старая моя множилка корректно все умножает, попробовал и вращать и скейлить. С парентами пока не проверял.
Стас
GLM это специально для OpenGL мат либа. Правостороннюю.

#16
15:30, 7 ноя. 2014

А нафига тебе glm если у тебя есть твой собственный код?

#17
15:34, 7 ноя. 2014

Какой собственный код? Я вышку прогуливал. Я через glm все операции с матрицами и кватернионами провожу.

#18
15:37, 7 ноя. 2014

Dampire
> Все матрицы кешируются. Перересчет происходит когда была изменена
> позиция/угол/etc. Я уже писал об этом. GetWorldMatrix(Inv) проверяет на dirty
> флаг, при необходимости перерасчитывает и возвращает переменную matrix(Inv)
> матрицу.
Я за такое на работе руки обычно отрываю. Эта твоя проверка на dirty флаг в несколько раз дороже, чем те вычисления, которые ты ей "оптимизируешь".

Срочно повышать квалификацию:
http://research.scee.net/files/presentations/gcapaustralia09/Pitf… g_GCAP_09.pdf
http://macton.smugmug.com/gallery/8936708_T6zQX#!i=593426709&k=BrHWXdJ

Стас
> Операция inverse сама по себе очень тяжелая, а те ее еще и с умножением
> комбинируешь... Да еще не факт что правильно.
Да ладно, тяжелая? Тяжелее, чем кешмисс?
https://github.com/g-truc/glm/blob/0.9.5/glm/detail/intrinsic_matrix.inl #sse_inverse_fast_ps #sse_inverse_ps
https://github.com/g-truc/glm/blob/0.9.5/glm/gtc/matrix_inverse.inl

#19
15:43, 7 ноя. 2014

bazhenovc
> Да ладно, тяжелая? Тяжелее, чем кешмисс?
Достаточно тяжелая для того чтобы не делать ее для каждого объекта, тебе инверсивная матрица зачем-то в каждом объекте нужна?

#20
15:46, 7 ноя. 2014

Стас
> Достаточно тяжелая для того чтобы не делать ее для каждого объекта, тебе
> инверсивная матрица зачем-то в каждом объекте нужна?
А вдруг нужна? Но вообще я про dirty flag говорил, это до ужаса плохо.

#21
15:52, 7 ноя. 2014

bazhenovc
Т.е. надо постоянно пересчитывать матрицы? Че-то меня такая перспектива пугает.
Стас
Инверсивка считается только при запросе инверсной матрицы.

#22
15:56, 7 ноя. 2014

Dampire
> Т.е. надо постоянно пересчитывать матрицы? Че-то меня такая перспектива пугает.
Да, потому что память намного медленнее, чем процессор. Посмотри те 2 ссылки, которые я тебе скинул.

#23
15:56, 7 ноя. 2014

bazhenovc
Я почитал. 25 тактов на проверку булки это сурово.

#24
16:00, 7 ноя. 2014

Dampire
Да нет, он имеет ввиду группировать данные, в свое время у сони была призентация, где они советовали групировать данные тоесть не так:

class Object
{
   mat4 m_local;
   mat4 m_global;
   mat4 m_parent;
};

а как то так:

class Object
{
   vector<mat4> m_locals;
   vector<mat4> m_globals;
   mat4 *          m_local;
   mat4 *          m_global;
   mat4             m_parent;
}

Честно говоря не уверен как правильно должно выглядеть, но идея примерно такая. Тоесть если ты апдейтишь объект ты апдейтишь и всех дочерних объектов.

#25
16:05, 7 ноя. 2014

Стас
> Да нет, он имеет ввиду группировать данные, в свое время у сони была
> призентация, где они советовали групировать данные тоесть не так:
AoS/SoA это отдельная тема, перед тем, как начинать курить её - надо разобратся, как работает кэш.

#26
9:12, 8 ноя. 2014

Если ты хочешь, чтобы вправо было +, а налево -, то измени матрицу проекции:

glm::projection(90.f, -4/3, 0.1f, 100.f)

#27
9:34, 8 ноя. 2014

bazhenovc
> Срочно повышать квалификацию:

Вот, кстати, как теперь это дело на новых конзолях ? Ну все эти заморочки про Pitfall OOP

#28
10:11, 8 ноя. 2014

>http://research.scee.net/files/presentations/gcapaustralia09/Pitf… g_GCAP_09.pdf
Изображение
Вот эта вот команда __dcbt это вообще только для плойки3 или на ПК тоже так можно?
И вообще есть тоже самое только на русском ? А то что-то я про кеш промахи вообще ничего не понял.

#29
10:13, 8 ноя. 2014

codingmonkey
> Вот эта вот команда __dcbt это вообще только для плойки3 или

Это для пиписи

Страницы: 1 2 3 429 Следующая »
ПрограммированиеФорумГрафика