LINUX.ORG.RU

Нарисовать треугольник 2D с uv-mapping'ом...

 ,


0

2

А подскажите как написать на сишечке... есть 3D меш с uv координатами. Из него z выкинуто, все полигоны уже 2d и только видимые. то есть есть пары точек ((x, y), (u, v)) ну и треугольники из них. Надо бы это растеризовать. (u, v) - координаты в картиночке 256x256. а надо это все отрисовать на экране, в котором координаты (x, y).

Как мне отрисовать такой треугольник? (((x1, y1), (u1, v1)), ((x2, y2), (u2, v2)), ((x3, y3), (u3, v3))) А дальше я уже сам придумаю что делать :( Надо без OpenGL и всяких плюшек, и используя только код на C, без float'ов c double'ами.

Это НЕ ДЛЯ ИГРЫ. (не умею я ничего такого делать). Это хренов эмбеддед. Да, под Linux.

★★

Надо без OpenGL и всяких плюшек

Ты взвоешь от деталей. Проще уж mesa3d притянуть, там есть софтверный растеризатор.

Но если очень хочется, то вот здесь: http://www.enlight.ru/faq3d/content.htm , начиная с пункта 4.

i-rinat ★★★★★ ()

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

xaizek ★★★ ()
Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от xaizek

нет не так, так будет слишком медленно

anonymous ()
Ответ на: комментарий от anonymous

Дык, GPU так и делают. Но только у ТСа GPU нет, поэтому придется страдать. То ли он задачу слишком сложную для железа выбрал, то ли железо слишком слабое.

Это как пытаться интуры численно решать на железном Феликсе...

Anon ()

может афинные преобразования: растяжение, сжатие, поворот?

dimon555 ★★★★★ ()

1. Найти формулу для перевода точек треугольника из x/y в экранные координаты.
2. Найти способ растеризации треугольника (в интернете найдете за несколько секунд, вроде бы даже в самом стандарте на ОпенГЛ он описан).
3. В стандарте ОпенГЛ описан алгоритм получения значений u/v для точки треугольника по значениям u/v его вершни. Можно найти в интернете.
4. Выборку из текстуры сможете сделать сами, я в вас верю.

P.S. Если что-то не очень понятно и есть вопросы - задавайте, постараюсь ответить.

trex6 ★★★★★ ()
Последнее исправление: trex6 (всего исправлений: 1)
Ответ на: комментарий от trex6

можно закрывать тред. этим комментов все сказано.

dikiy ★★★★☆ ()

«Компьютерная графика. Полигональные модели» (Шикин Е. В., Боресков А. В.)

mv ★★★★★ ()

Можно, например, окружить каждый треугольник окружностью и проверять каждую точку круга на принадлежность треугольнику. (google://point in polygon)

x4DA ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.