Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / OpenGL Вопросы (2 стр)

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

Поделиться

Страницы: 1 2 3 4 ... 12 ... 21 22 23 Следующая

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

Правка: 7 ноя. 2014 15:30

СтасПостоялецwww7 ноя. 201415:30#16
А нафига тебе glm если у тебя есть твой собственный код?
DampireПостоялецwww7 ноя. 201415:34#17
Какой собственный код? Я вышку прогуливал. Я через glm все операции с матрицами и кватернионами провожу.
bazhenovcУдалёнwww7 ноя. 201415:37#18
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

СтасПостоялецwww7 ноя. 201415:43#19
bazhenovc
> Да ладно, тяжелая? Тяжелее, чем кешмисс?
Достаточно тяжелая для того чтобы не делать ее для каждого объекта, тебе инверсивная матрица зачем-то в каждом объекте нужна?
bazhenovcУдалёнwww7 ноя. 201415:46#20
Стас
> Достаточно тяжелая для того чтобы не делать ее для каждого объекта, тебе
> инверсивная матрица зачем-то в каждом объекте нужна?
А вдруг нужна? Но вообще я про dirty flag говорил, это до ужаса плохо.
DampireПостоялецwww7 ноя. 201415:52#21
bazhenovc
Т.е. надо постоянно пересчитывать матрицы? Че-то меня такая перспектива пугает.
Стас
Инверсивка считается только при запросе инверсной матрицы.

Правка: 7 ноя. 2014 15:54

bazhenovcУдалёнwww7 ноя. 201415:56#22
Dampire
> Т.е. надо постоянно пересчитывать матрицы? Че-то меня такая перспектива пугает.
Да, потому что память намного медленнее, чем процессор. Посмотри те 2 ссылки, которые я тебе скинул.
DampireПостоялецwww7 ноя. 201415:56#23
bazhenovc
Я почитал. 25 тактов на проверку булки это сурово.
СтасПостоялецwww7 ноя. 201416:00#24
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;
}

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

bazhenovcУдалёнwww7 ноя. 201416:05#25
Стас
> Да нет, он имеет ввиду группировать данные, в свое время у сони была
> призентация, где они советовали групировать данные тоесть не так:
AoS/SoA это отдельная тема, перед тем, как начинать курить её - надо разобратся, как работает кэш.
programinaЗабаненwww8 ноя. 20149:12#26
Если ты хочешь, чтобы вправо было +, а налево -, то измени матрицу проекции:
glm::projection(90.f, -4/3, 0.1f, 100.f)

Правка: 8 ноя. 2014 9:13

innuendoПостоялецwww8 ноя. 20149:34#27
bazhenovc
> Срочно повышать квалификацию:

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

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

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

Страницы: 1 2 3 4 ... 12 ... 21 22 23 Следующая

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

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