LINUX.ORG.RU
ФорумTalks

натянуть текстуру на треугольник.

 ,


0

1

Такс, гусары, нигде тут не пробегал алгоритмик натягивания текстуры на треугольник?
Пользуясь случаем, порекомендуйте так же годный RTFM по комп. графике, ибо довольствоваться гуглом да мелкими статьями надоело. (на русском языке не предлагать, только англ.)

★★★★★

Последнее исправление: AiFiLTr0 (всего исправлений: 1)

красная книга, черная книга...

Rastafarra ★★★★
()

алгоритмические основы компьютерной графики

математические основы компьютерной графики

f3ex ★★
()

Такс, гусары, нигде тут не пробегал алгоритмик натягивания текстуры на треугольник?

тебе в OpenGL или просто? Если просто, то фигли ее натягивать? Создаешь биекцию треугольника на квадрат и вперед.

dikiy ★★☆☆☆
()

в DirectX SDK достаточно хорошо разжёвываются азы компьютерной графики, в том числе и натягивание текстур

Harald ★★★★★
()
Ответ на: комментарий от dikiy

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

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

А в чем проблема-то? Координаты текстуры в вершинах задал — и вуаля!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от dikiy

понимаю, я пока только добрался до текстур, потому и спрашиваю RTFM'ки. У меня сейчас текстурка - тупо валяется в GRAM'е, в 565 квадратиком, и я пытаюсь понять, хотя бы какие варианты натягивания ее на треугольник имеет смысл реализоввывать.
//да, делаю свой граф. ускоритель с колдунством и эльфийками, как бы это странно не звучало.

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от AiFiLTr0

понимаю, я пока только добрался до текстур, потому и спрашиваю RTFM'ки. У меня сейчас текстурка - тупо валяется в GRAM'е, в 565 квадратиком, и я пытаюсь понять, хотя бы какие варианты натягивания ее на треугольник имеет смысл реализоввывать.

можно обрезая, можно «сжимая», а можно «искажая». Все что тебе надо - это однозначное преобразование координат. грубо говоря - точки на треугольнике удобно задавать с помощью выпуклой комбинации координат вершин: (ax+by+cz), где a,b,c\in [0,1], а x,y,z - координаты вершин треугольника.

Тебе всего лишь надо задать преобразование декартовых координат квадрата с текстурой в координаты (a,b,c).

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

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

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от AiFiLTr0

ну, это в принципе уже отдельный разговор. я не думаю, что принцип сильно другой будет. Кстати - вспомнил как координаты в треугольнике называются: барицентрические координаты.

dikiy ★★☆☆☆
()
Ответ на: комментарий от AiFiLTr0

хотя как реализовывать преобразования и матрицы вращения и т.п. чисто в целых числах - для меня темный лес. Можнт все таки родишь FPU?

dikiy ★★☆☆☆
()
Ответ на: комментарий от AiFiLTr0

Я когда-то пробовал делать с фиксированной точкой, но точности не хватило.

gadfly ★★
()
Ответ на: комментарий от note173

Да, так как написать полноценную, запайплайненую FPUшку - на это уйдет сильно дофига времени. Так что пока думаю только в целых числах работать.

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от dikiy

Второе интересно, да нет ссылки на скачку.

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от AiFiLTr0

Ты бы сразу и сказал, что тебе на какой-то особой железяке надо.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от AiFiLTr0

нет, именно сам алгоритм, ибо мне его сейчас вериложить

Если тебе на таком уровне, то стоит поискать олдфажные книжки, например Michael Abrash's Zen of graphics programming. Там рассматривался 3D движок, рассчитанный ещё на програмный рендеринг на старых компах, чисто на процессоре. В том числе рассматривается текстурирование.

На английском найти как раз проще. Хотя был и перевод.

atrus ★★★★★
()
Ответ на: комментарий от AiFiLTr0

Так что пока думаю только в целых числах работать.

О, это тебе точно стоит Абраша глянуть. Он тоже (из-за тормознутости старых процов) предпочитал алгоритмы в целых числах.

atrus ★★★★★
()
Ответ на: комментарий от AiFiLTr0

О! Это интересно! А что предполагается уметь? Hardware T&L? Или там просто растеризатор? А кто выступает в роли CPU?

Я тоже потихоньку собираюсь свою видимокарту написать, но пока разродился только процессором и пайплайненным FPU, но не со всеми операциями. Кстати, оказывается, floating-point деление нормально конвейеризуется, в отличие от.

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

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

Я пока делаю только 2д часть, которую потом при растеризации можно будет юзать.
По операциям отталкиваюсь от фичей GLES, чтобы проще потом было.

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от AiFiLTr0

это кстати да. пытался «по-русским» алгоритмам понять Z-buffering, в итоге пошёл читать английскую вики. Не умеют наши нормально писать.

f3ex ★★
()
Ответ на: комментарий от Quasar

Я там ковыряю один FPU, но когда у меня дойдут руки его заимплементить...

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