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

Расчет бинормалей

#0
2:10, 2 июня 2013

Подскажите алгоритм для расчета бинормали к конкретному треугольнику.

З.Ы. нашел в интернете алгоритм - получилось, но он пересчитывает уже после загрузки меша, проходя по всем вершинам и треугольникам: минус - оооочень медленно (N^2). Так что хочется ускорить этот процесс

Заранее спасибо!


#1
2:29, 2 июня 2013

Посчитать на этапе сборки ресурсов и сохранить вместе с геометрией модели. На загрузке сразу загружать готовое.

#2
16:24, 2 июня 2013

А профилирование делалось? Или просто возникает такое ощущение?

#3
16:35, 2 июня 2013

luckyleo769
> N^2
ты явно делаешь что-то не так

#4
19:34, 2 июня 2013

Ну там не N^2, скорее N*N/3, но когда количество этих вершин заходит за 500к, время слегка напрягает.  А в 3d max'е можно экспортировать obj с просчитанными бинормалями?

#5
20:01, 2 июня 2013

Самому просчитывать при экспорте в свой формат.
А тангент считать в шейдере. Ну или всё просчитать при экспорте.

#6
20:32, 2 июня 2013

luckyleo769
> А в 3d max'е можно экспортировать obj с просчитанными бинормалями?
можно, только не obj

#7
6:54, 3 июня 2013

luckyleo769
> . А в 3d max'е можно экспортировать obj с просчитанными бинормалями?
Как вариант экспортировать в collada плагином OpenCOLLADA. В нем можно указать, экспортировать или нет тангеты с бинормалями. Стандартных экспорт в 3dmax'е не экспортит их (2010 года).

#8
8:50, 3 июня 2013

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

правельно говорят, лучше заранее всё посчитать...

#9
11:07, 3 июня 2013

TheGrayWolf
> Как вариант свой плагин экспорта в 3д максе, не так уж и сложно, я поначалу
> начал хранить нормаль и тагент и знак,
> и считать кросом в шейдере, но мне что-то это не понравилось, был там какой-то
> косяк, и начал всю тройку хранить, и всё стало зэбэст (почти).
тангент и знак всё норм должно быть. йунити так делает, и ничего, жив, здоров.

#10
16:03, 3 июня 2013

Mr F
Поставлю вопрос ребром, что будет лучше по перфомансу?
один крос и умножение на знак в вершинном, или лишние 4 байта в вертексе?

#11
17:30, 3 июня 2013

TheGrayWolf
> 4 байта в вертексе
Открой для себя сжатие аттрибутов

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

Тема в архиве.