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

Текстурные координаты (2 стр)

Страницы: 1 2
#15
9:02, 9 окт. 2019

Polyflow3d
> Это все равно что сравнивать фотошоповский psd исходник c пережатой dds
> текстурой.
ну так в том и проблема, что многие юннаты начинают писать рендерер, основанный на формате obj, вместо формата, который использует видюха. это как писать софтовый растеризатор, основанный на psd вместо растрового изображения.

#16
(Правка: 9:22) 9:15, 9 окт. 2019

Suslik
Не, я понимаю что юнаты могут многое, но как в принципе можно писать рендерер на основе obj?
Как можно использовать psd напрямую в рендере, не растеризовав его фонты, например?
Как можно скопипастьть псевдокод в свой проект?

Короче главный мой посыл - не перекладывать проблемы с больной головы(нубске рендеры) на здоровую (obj).

Долгие годы obj-у, потому что иначе мы получим тонны запутанного избыточного проприетарного гавна от автодеска , адоба и прочих.

#17
9:29, 9 окт. 2019

Еще в догонку вспомнил ситуацию с gif картинками и 80-ми годами.
При том, что этому гифу лет больше чем мне, как не смешно, он остается единственно реальным способом делать анимированные картинки для веба. Все остальное - либо не понятно в чем создавать, либо не работает в браузерах.
И это при том , что альтертативу гифу пытались делать такие гиганты с безграничными возможностями как Гугл.
Вот такой дивный новый мир.

#18
(Правка: 9:57) 9:35, 9 окт. 2019

Suslik
Да к а кто же грузит сырые модели в движок-то? У меня даже карты нормалей во float грузятся, со знаковым float пока есть определённые заморочки (я тебе писал), так я пока беззнаковый гружу и в шейдере уже только 1 отнимаю. Но история OBJ заинтересовала, с удовольствием прочитал :)

#19
(Правка: 10:21) 9:57, 9 окт. 2019

Suslik
> основанный на формате obj
Да нет никакого OBJ'а.

Куб генерится кодом:

+ Показать

Сделал индексы по другому, но понял, что нет конфигурации
в которой автоматически генерятся корректные координаты от 0.0.
В такой конфигурации нужен флаг переворота координат по U.
В моем случае U = Y, а V = X. Хотя сей момент меняется как угодно.

+ Показать

#20
10:40, 9 окт. 2019

Может я некорректно координаты считаю?

+ Показать
#21
10:41, 9 окт. 2019

eDmk
> Может я некорректно координаты считаю?
Счёты возьми :)

Изображение
#22
(Правка: 11:34) 11:33, 9 окт. 2019

Daniil Petrov
Кыш «нечистая» ;)

В общем если точка C.Y лежит ниже или равна A.Y, то переворачивать ничего не надо,
а если точка лежит выше, то требуется вычитание из единицы. Вот и весь признак.
Математики «блин».

#23
13:12, 9 окт. 2019

С похожей ситуацией сталкивался в синьке.
Вот тут спрашивал: https://gamedev.ru/art/forum/?id=243982
Причем, доделав себе плугин, так и не понял системы - если делать строго по документации, то получается "переворачивание" второго треугольника полигона, практически как у вас. Если делать по-своему, переворачивая вершины C и D, всё прекрасно работает)
Странно, что в таких ключевых вопросах нет железобетонно-стандартной практики.

#24
13:33, 9 окт. 2019

MSA2
> Странно, что в таких ключевых вопросах нет железобетонно-стандартной практики.
Их не может быть, т.к. все начинают писать под разные условия. У одних базовый треугольник CW с положительной площадь, у других CCW с положительной площадью и наоборот. В меню экспорта OBJ-файла в 3ds max можно посмотреть пресеты для разных программ. Там для одних надо геометрию по вертикали отражать, для других - по горизонтали. Одни нужны отрицательные индексы - другим положительные. В общем как написали - так и работают. Стандартов нет к сожалению, т.к. все варианты рабочие.

#25
13:36, 9 окт. 2019

eDmk
> Сделал индексы по другому, но понял, что нет конфигурации
> в которой автоматически генерятся корректные координаты от 0.0.
Тебе уже сказали, что в правильном кубе 24 вершины, а не 8.
И основная проблема с нормалями, а не текстурными координатами, поэтому костылями по типу "флагов переворота" не отделаешься.

#26
(Правка: 13:39) 13:38, 9 окт. 2019

Polyflow3d
> Не, я понимаю что юнаты могут многое, но как в принципе можно писать рендерер
> на основе obj?
почему бы тебе не спросить у автора нульпоста? его идея-то, так как он пытается куб из 8 вершин как в obj с hard edge рендерить вместо нормальных 24.

#27
18:20, 9 окт. 2019

eDmk
> AddFace(0, 1, 2);
> AddFace(2, 3, 0);


Должно быть

    AddFace(0, 1, 2);
    AddFace(2, 1, 3);

#28
(Правка: 18:28) 18:28, 9 окт. 2019

eDmk
Obj содержит топологию, для рендера тебе она не нужна, геометрию нужно "триангулировать".
Перестрой вручную Obj или работай напрямую с форматами, где ее нет, например,
https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/Cube

Страницы: 1 2
ПрограммированиеФорумГрафика