ФлеймФорумПрограммирование

Общие вопросы по программированию графония. (231 стр)

Страницы: 1227 228 229 230 231 232 Следующая »
#3450
12:38, 31 янв 2025

totoro
> Дельты поворотов должны применяться каждый кадр, иначе объект за мышкой не будет поворачивать.

Самая левая ось всегда будет следовать за мышкой. Положение второй будет зависеть от первой, да, но ты можешь не отпуская кнопку мыши вернуть первую ось в ноль (ведь мы начали с нулевых углов в момент нажатия кнопки мыши) и тогда вторая ось будет вести себя как надо.

#3451
(Правка: 14:10) 14:02, 31 янв 2025

Dmitry_Milk
> Ну, например, ты нажал кнопку мыши для осуществления поворотов - с этого момента объект у тебя крутится эйлером
ну...мышкой у меня ArcBall-ом крутится нормально (как и сама камера ArcBall-ом крутится, это ж cad), там проблем нет, но в CAD-е поворот мышкой - это так, для понта, основные повороты должны быть чёткими, по трём осям и в основном 0...90...180...270, поэтому в моём случае такой подход не проканает, т.к. мне нужно вводить угол в GUI, то есть все твои манипуляции по сути работают только для одного раза, ну как бы для одноразового ввода дельты (ввёл цифру, нажал enter), после всё теряется и обратно только через undo/reset.

master-sheff
> Так что ли?
ни видео не очень понятно. Так ты победил эти углы? Если да, то попробуй повернуть, например, сначала по X на 90, потом по Y на 90, затем по X вернись на 0, потом по Y вернись на 0 и посмотри, встанет твой объект в исходную позицию или нет.

#3452
15:22, 31 янв 2025

THE_MASTER
> ни видео не очень понятно. Так ты победил эти углы?

Так у него не CAD, у него поверхностный шутер. Там эйлеровы углы ложатся естественным образом, вертикальная ось перса совпадает с вертикальной осью мира и является самой левой в цепочке преобразований. Остальные оси уже вторичны.

Вот если 6DOF типа Descent или Shattered Horizon - тогда та же проблема что в CADе. Новичкам в дескенте особенно "весело", когда корабль выворачивает после пары движений мышкой, пока не освоятся с тем, что надо дополнительно ролл подкручивать клавой :)

#3453
11:01, 6 фев 2025

Решил проверить как лучше размещать индексы, чтобы на полную использовать вершинный кэш. Оказалось что tri_strip полосками дает всего 7% дополнительных вызовов VS, а tri_list квадратами по 4х4 .. 4х16 индексов дают 10 - 20% дополнительных вызовов. Причем дублирование стабильно на 21-25 значениях индекса.

Я ожидал что большее переиспользование индексов и типа мешлеты даст лучший результат. Оптимизировать VS пока нет смысла, но просто интересно почему так?

#3454
18:00, 6 фев 2025

/A\
>Я ожидал что большее переиспользование индексов и типа мешлеты даст лучший результат.
а что значит мешлеты ? речь про мешь шейдеры?

#3455
18:18, 6 фев 2025

Andrey
> а что значит мешлеты ?
Как мешлеты, но старым способом.

Проверил на мобилках, так там вершинный кэш всегда почти на максимум используется, а когда доходит до однопиксельных треугольников еще и интерполяция аттрибутов отключается.

#3456
(Правка: 19:27) 19:15, 6 фев 2025

Заодно проверил как работает IndirectDraw.
На десктопах все одинаково. На мобилках намного интереснее, на Adreno 505 indirect в 2 раза медленее, на Mali G610 indirect в 1.5 раза быстрее, на Mali T830 и G57 не работает firstInstance в indirect maxDraw=1, на Adreno 660 и PowerVR BXM одинаково.
В целом на свежих мобилках можно сделать GPU-driven подход.

#3457
(Правка: 11:03) 10:59, 9 фев 2025

Хочу рисовать квадраты в через фрагментный шейдер, чтоб не через компьют, но треугольниками получается лишние потоки на границе треугольников. Решил обрезать треугольник до квадрата через gl_ClipDistance, а в итоге он отрисовался как квадрат из 2х треугольников с helper invocation посередине, да как так то?
Если обрезать через буфер глубины, то также. Похоже на какую-то оптимизацию от NV, где железо может рисовать только треугольники.

#3458
3:45, 10 фев 2025

/A\
> Хочу рисовать квадраты в через фрагментный шейдер
А точки большого размера пробовал?

#3459
17:19, 10 фев 2025

}:+()___ [Smile]
> А точки большого размера пробовал?
Забыл про них)
Точки не разбиваются на треугольки.

#3460
11:35, 25 фев 2025

А как делают отражения для множества мелких источников света?
Например фонари на мокром асфальте/воде. Нужно проверить что из каждой точки виден источник света и нужно как-то ограничить перебор всех источников света. Для воды это сделать сложно, так как рябь дает всевозможные углы. Reflection probe может потерять мелкие источники.

#3461
11:46, 25 фев 2025

/A\
> фонари на мокром асфальте/воде
Для плоских отражающих поверхностей рендер в текстуру чем плох?

#3462
11:49, 25 фев 2025

Mikle
> > фонари на мокром асфальте/воде
> Для плоских отражающих поверхностей рендер в текстуру чем плох?
Я про спекулярные отражения, тут рендер в текстуру не поможет. И где ты видел плоский асфальт? )

Изображение
#3463
11:53, 25 фев 2025

/A\
> спекулярные отражения, тут рендер в текстуру не поможет
Отрендеренную текстуру выводить с бампом, причём, чем сильнее бамп, тем меньше заметно отклонение от плоскости, весь асфальт на данной картинке можно будет считать плоским. Можно сделать Френель, зависимый от нормали.

#3464
12:02, 25 фев 2025

Mikle
Ты про планарные отражения? Они же для зеркал.
Тут даже рендер в текстуру не нужен, по BRDF находится конус в котором могут быть отражения, нужно только получить все источники света в этом конусе и сделать это для каждого пикселя.
В киберпанке над таким долго мучались и только с RTX смогли сделать нешумящие отражения.

Страницы: 1227 228 229 230 231 232 Следующая »
ФлеймФорумПрограммирование