LINUX.ORG.RU

Помогите наложить текстуру в opengl

 , ,


0

3

https://github.com/xverizex/asel

Всё действие происходит в main.c

Программа загружает из data 3d модель и картинку. Картинку хочу использовать как текстуру. В blender делал модельку и создал uv рисунок. Нарисовал. Проверил как выглядит. Экспортировал в формат obj вместе с текстурными координатами.

Программа отображает модельку, но текстура наложена неправильно. Я когда раньше проверял загруженную картинку, то как то попробывал использовать glDrawPixels, она выводит рисунок какой он есть, это значит что я правильно перенёс рисунок. Только помню пришлось поменять направление на справа налево.

Что может быть не так? Как сделать, чтобы было правильно?

Ответ на: комментарий от andreyu

Согласен. Какой-либо прогресс отсутствует.

Как отсутствует? Он уже стал способен на членораздельную речь, это большое достижение. Ещё лет 500 развития и из него выйдет ПХП макака.

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

Не ПХП макака, очевидно же. Вообще принципиально стараюсь держаться от веба подальше, особенно от фронтенда. Мне хватило 90 минут чтобы понять что с css я вообще встречаться не хочу из-за того как он поддерживается в браузерах.

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

с css я вообще встречаться не хочу из-за того как он поддерживается в браузерах.

А что не так с его поддержкой в браузерах?

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

Он уже стал способен на членораздельную речь, это большое достижение.

Фиг там. Он блюет словами и надеется, что они сами по себе соберутся в нечто осмысленное.

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

Он блюет словами и надеется, что они сами по себе соберутся в нечто осмысленное.

У него и код так-же написан.
Надёрган из разных мест, зачем-то повторяются ненужные куски кода(без попытки как-то понять, а нафига он нужен).

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

У него и код так-же написан.

Да, я видел его код.

Надёрган из разных мест, зачем-то повторяются ненужные куски кода(без попытки как-то понять, а нафига он нужен).

Угу, он не пытается осознать то, что ему дают. Персонаж весьма странный.

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

Угу, он не пытается осознать то, что ему дают

Бери выше, он просто не читает тред судя по коду. Ищет готовый код, и его копипастит.

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

а я бхотел посмотреть на такой код на c, но код должен быть написан так, чтоб сразу не было бы понятно что он делает

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

Но это же был конкурс на самую нечитабельную программу. А если тебе надо сделать нечитабельным только какой-нибудь rm-rf, то и дефайнов для этого понадобится гораздо меньше. :-)

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

У нас есть, в данном случае, некий индивид, который использует чужие куски кода в решение своих задач, и обладает навыками чтения программ на неизвестном нам уровне, задача написать программу на с, которая будет чистить /home, но при этом на первый взгляд код должен быть нормальным и читабельным, чтоб индивид не догадался

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

Ну, решать конкретно эту задачу я не собираюсь, и не только потому, что это будет нарушением правил, но и просто это нехорошо (по крайней мере, я так считаю). Но чисто гипотетически мой метод вполне подходит. Пишешь более-менее понятный код (но не слишком понятный, чтоб совсем непонятный кусок не очень выделялся на фоне остального кода). Далее создаёшь несколько макросов, которые маскируют этот самый рм-рф или что-то подобное и равномерно распихиваешь их среди остальных макросов. Потом в каком-то месте вызываешь нужный макрос. Если индивид бегло просматривает программу и запускает её, то это сработает. Если же он внимательно изучает код, потом не менее внимательно изучает вывод препроцессора, запуская gcc с опцией -E, а потом ещё тщательно дебажит программу в виртуальном окружении с ограниченными правами, то такого индивида не провести. Ему, скорее всего, даже тухлый бинарник не удастся подсунуть, а об исходниках и говорить не приходится.

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

Правила форума не вырезаны в камне.

И это подтверждает данный тред, который по-хорошему следовало бы удалить, т. к. сообщений по теме я насчитал в нём ровно 1, да и то с натяжкой.

Но ведь помимо правил форума, существуют ещё и внутренние правила.

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

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

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

написать такой код сложно очень

Зависит от того, на кого этот код рассчитан. Т. е. от осторожности и квалифицированности объекта атаки.

Я думал о каких нибудь ассемблерных вставках

Можно и ассемблерными вставками. Но только при условии, что весь код ими напичкан. Потому что одна непонятно для чего созданная вставка привлечёт больше внимания, чем макрос. Кроме того, программа, написанная со вставками, будет плохо переносима даже между ia32 и amd64, о других архитектурах и говорить не приходится. Ну и между компиляторами тоже (встроенный ассемблер в gcc по дефолту отличается от встроенного ассемблера для большинства других компиляторов на архитектуре x86).

и попытке прямого доступа к устройствам без применения библиотек, еще одна проблема это защищённый режим, который ограничивает нас в правах

Если говорить о Линуксе, то можно непосредственно вызывать linux-api. Не прослойку posix, а чистый linux, который обычно не используется. Например, непосредственный вызов прерывания int 80h (то же, что досовское int 21h). А чтоб ещё сильнее запутать, можно обернуть эти вызовы в функции с непонятными или заведомо ложными названиями, а потом ещё вызывать их не напрямую, а через указатели (авось пока объект атаки будет разбираться в этих указателях, про то, что обозначают те или иные номера функций, посмотреть позабудет).

Но, опять же, всё это работает с более-менее беспечным объектом атаки. Осторожного и квалифицированного на бобах не разведёшь.

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

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

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

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

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

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

Но очень осторожный человек сделает это в виртуальном окружении, и если программа не умеет ломать это самое окружение и выбираться наружу, то номер не пройдёт.

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

Так у меня добрый дядька на аве, зачем мне такие вещи делать. Я вот еще подсказываю, а такое встраивать ну ты чего. Да и такие люди думаю иксы не юзают, и их рабочее место выглядит как то так: Рабочее место шифропанка

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

Так у меня добрый дядька на аве

Ну, мало ли что на аве. На аве может быть одно, а под авой — совсем другое. :-)

такие люди думаю иксы не юзают, и их рабочее место выглядит как то так

Не обязательно. Я знавал очень сильных программёров, которые неработающий драйвер для linux переписывали для другой системы, и он там начинал работать. При этом сидели под виндой и даже с антивирусом не заморачивались. Когда на компе выскакивал какой-то чёртик и сообщал им, что я, дескать, вирус, но добрый и пушистый, поэтому бороться со мной не надо, — они принимали на веру и оставляли всё как есть. :-) А ведь даже добрый и пушистый вирус может неумышленно нагадить, если в его коде есть ошибки.

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

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

у разных версий одного и того же браузера результат может выглядеть по-разному.

А, в этом плане. Да, разработчики браузеров любят класть на совместимость. Но всё-таки есть какие-то стандарты, и если придерживаться только их и не использовать разные расширения, то, думаю, всё должно быть ok. Хотя, конечно, всё равно желательно тестировать в разных браузерах.

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