Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
1 | |
OpenGL натянуть текстуру на 4х угольный полигон. Самый простой способ без лишнего кода23.02.2017, 09:39. Показов 3991. Ответов 24
Метки нет (Все метки)
В интернете слишком много кода на OpenGL с натяжкой полигона. Но большинство кодов использует так много сторонних библиотек, что не понимаешь что с чем связать. На DirectX натяжка полигона намного проще. На OpenGL кода очень много.
А еще пишут, что мол OpenGL проще в изучении чем directX по мне дык. OpenGL намного сложнее чем DirectX. В DirectX я больше мог сделать за короткое время. А с OpenGL усложняется большим количеством встроенных библиотек, которые уже не актуальны. И коды перестают работать. Существует простой код без всякого сложного добавления? Интересует код WinAPI OpenGL. Без всяких лишних библиотек. Нужны коды использующие библиотеки: <gl\gl.h> <gl\glu.h> opengl32.lib glu32.lib на этих библиотеках требуется найти реализацию натяжки текстуры на полигон.
0
|
23.02.2017, 09:39 | |
Ответы с готовыми решениями:
24
Самый простой способ рисования Самый простой способ создать таблицу Самый простой способ удаления файла Самый простой способ воспроизведения музыки |
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
23.02.2017, 10:03 | 2 |
Не надо гнать на OpenGL ! Мало ли кто на чём мог бы больше сделать. .
Вот для версии 1.5 Урок 6. Наложение текстуры А тут для версии 3.3 learnopengl. Урок 1.6 — Текстуры (правда для загрузки JPEG используется библиотека SOIL, но если брать обычные BMP, то можно обойтись и без неё)
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 10:45 [ТС] | 3 |
Позже проверю. Но мне нужно без лишних библиотек! Неужели библиотеки (<gl\gl.h> <gl\glu.h> opengl32.lib glu32.lib) не способны на загрузку текстуры???
Может кодики и статьи подкините еще? Но только для библиотек (<gl\gl.h> <gl\glu.h> opengl32.lib glu32.lib)
0
|
23.02.2017, 11:50 | 4 |
Вы имеете ввиду, что нужно без gl\glaux.h из предыдущей ссылки по версии 1.5?
Добавлено через 13 минут На всякий случай добавлю, что исходники к этим переводным урокам от NeHe можно скачать на оригинальном сайте в разделе справа "Legacy Tutorials", в самом низу каждого урока.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 12:12 [ТС] | 5 |
Да!
Мне интересно почему для вывода текстуры нужно использовать glaux.h? Но одновременно с этим эта библиотека считается устаревшей. А где альтернативы этой библиотеки? Интернет битком набит этой библиотекой. Мне интересно найти коды на актуальные библиотеки, которые есть в среде и в windows. Добавлено через 17 минут Тут используется библиотека glaux.h придется ее грузить. Опять поплывут тараканы с этой библиотекой.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 15:16 [ТС] | 6 |
Получилось загрузить текстуру без всякого хламья типа glaux.h
Прилагаю исходник сие творения: Загрузка текстуры без лишней библиотеки. Использовано только: (<gl\gl.h> <gl\glu.h> opengl32.lib glu32.lib)
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|||||||||||||||||||||
23.02.2017, 15:19 [ТС] | 7 | ||||||||||||||||||||
0
|
23.02.2017, 15:20 | 8 |
К слову сказать, уроки NeHe от конца 90-x годов. Не знаю сколько лет, может лет 10, но glBegin/glEnd считается устаревшим способом рисования. Часто пишут, что glBegin/glEnd - это legacy или deprecated. На некоторых устройствах этот способ вообще не работает, например, на мобильных или веб. На Desktop актуальной считается версия OpenGL 3.3 с шейдерами, она наиболее распространена и на XP тоже. В отличие от версии 4.5. Поэтому тех кто использует шейдеры гораздо больше, чем тех кто glBegin/glEnd и следовательно больше возможности найти туторы, людей, помощь. На этом форуме может только несколько человек используют glBegin/glEnd, остальные почти сразу стали использовать шейдеры, считая что glBegin/glEnd - неактуален.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 15:25 [ТС] | 9 |
Да в курсе, что не актуален и очень не производителен. Потому что есть буфер памяти в видеокарте для отрисовки.
Я пока учусь, вот и пытаюсь понять что с чем взаимосвязано. И больше всего расстраивает, что новички сразу через эту кашу хломья проходит. А без этой каши серьезного блюда не сваришь... Нужен опыт даже в (glBegin/glEnd)
1
|
23.02.2017, 15:25 | 10 |
infobos, а как загружаются текстуры в этом приложении: Исходники Проектов на OpenGL
И как там без шейдеров сделана аура выделения жёлтого цвета вокруг выбранного объекта?
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 15:28 [ТС] | 11 |
Использован шейдер.
Про текстуры пока не знаю. Там сложно пока понять. Много кода и конечно связано в большей части для буфера памяти видеокарты.
0
|
23.02.2017, 15:45 | 12 |
Да, с этим я полностью согласен. Нужно столкнуться с ограничениями статического конвейера, помучиться, чтобы по-настоящему понять спасение в шейдерах. Такую аура выделения - старым способом, наверное, очень сложно сделать, хотя делали, наверное, а может и нет. А Normal Map вообще нельзя сделать без шейдеров.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 16:13 [ТС] | 13 |
Оставлю на всякий случай ссылку где код нарыл про загрузку текстуры: http://stackoverflow.com/quest... -a-texture
Добавлено через 3 минуты Тут еще что-то написали про этот код: http://www.nullterminator.net/gltexture.html Добавлено через 21 минуту Тут рассказано как загрузить файлы tga в текстуру: https://sites.google.com/site/... gruzka-tga
1
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
||||||
23.02.2017, 17:46 | 14 | |||||
infobos, загрузка текстуры вручную это по твоему "без лишнего кода"? Сравни 30 строк своей GLuint LoadTexture( const char * filename ) с тем как это выглядит с библиотекой SOIL:
Так что твой минимализм и стремление к простоте наоборот всё усложняют.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 18:03 [ТС] | 15 |
Ну что, вступим в полемику... Философию давно проходили?
Есть что ответить: Я за длинный код, который имеет минимум библиотек. А лишние библиотеки чаще могут навредить в будущем. Когда эта библиотека тянет за собой другие ссылки, которые в будущем имеют тенденцию умирать, а за ним и работа программы умрет... К тому же длинные коды открывают глаза на глубинные процессы. А подключаемая библиотека скрывает глубинные процессы. Я хочу захватить только актуальные библиотеки, в которых буду уверен, что они будут жить долго. А библиотека SOIL пока не внушает доверия лишь потому, что ее нужно принудительно вшивать... Добавлено через 8 минут Библиотеку SOIL хочется ковырнуть. Возможно, что оттуда можно просто вытащить полезные алгоритмы-коды, если конечно они открыты, а не зашиты в DLL. Добавлено через 2 минуты Если DLL, то молиться и надеяться, что разработчики будут ее обновлять. Если microsoft не держит ее у себя? Я лучше найду альтернативу.
0
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
23.02.2017, 18:10 | 16 |
философию давно. ..то ли на втором, то ли на третьем курсе. .забыл ужо точно
Какие ссылки имеют тенденцию умирать? В ПО обратная совместимость версий практически является стандартом. Да, при технологических скачках бывают конфликты. Только я сомневаюсь, что стоит беспокоиться о том, что твоя учебная программа [может быть] перестанет через десять лет работать (когда все поголовно перейдут на Vulkan или еще куда-нибудь). Что должно "умереть", что бы перестала работать SOIL? или glut ? или SDL? или SFML ? и т.п. Глубинные процессы нужны и важны. Но не нужно "растекаться мыслью по древу". Изучаешь OpenGL ? вот и сосредоточься на его механизмах и принципах, а всю рутину пусть делают библиотеки и утилиты. Ну ладно .BMP загрузил, а ты возьми JPEG попробуй вручную распакуй. Да ты же так к пенсии только первый треугольник на экран выедешь. Тем более, что этих "глубинных принципов" и в самом OpenGL'е хватает с избытком.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
23.02.2017, 19:07 [ТС] | 17 |
Я имел ввиду, если внутри библиотеки метод использует старый метод функций, и он в будущих версиях может быть отменен или еще что там. Ну то есть метод ссылающийся на определенный DLL в операционной системе. И прочее. Это и может теоретически привести к стопору программы.
Добавлено через 4 минуты Вы имеете ввиду все, что старое не забывается? То есть новые выпуски ОС должны поддерживать старые версии. Да согласен. Однако библиотеки некоторые исключаются от различных сред. Также и операционная система наверно может не поддерживать старые версии Net.Framework-и и прочее. Теперь думаю понятно о чем речь? А я знаком со старыми программами, которые требуют старый net.framework. Добавлено через 3 минуты Пускай занимаются. Иногда приходится лазить куда бы не стоило. Но лазишь, чтобы понять, что туда лазить не стоит. А как иначе. Вот изучаешь OpenGL, а на ум приходит поиск альтернатив. Вот и лазишь по всяким. И не только ради экономии пространства, а ради того, чтобы увидеть и понять где границы OpenGL. Я смотрю Вы тут самый умный прямо блещете умом... Вы бы в начале тупо помогли, а потом мысли о писсимизме приподносили. Сначала реально делом помогайте, а потом бейте тревогу: Ой как это все сложно лучше пусть библиотекари этим занимаются. Говорит о том, что Вы на самом деле слабый программист, который туда пробовал лазить и только увидел темный лес и как там страшно... Мысли пускать тут все таланты...
0
|
23.02.2017, 20:27 | 18 |
Вы имеете ввиду .NET 1.0? Версия .NET 2.0 есть в списке VS2015. Что мне нравится у Microsoft .NET - это чёткое разделение по версиям фреймворков. Если программа пишется на конкретной версии .NET, то по крайней мере до XP они работают, а вот на более ранних версия: 2000, 98 - уже не факт. Я нацелен, чтобы программы хотя бы на XP запускались. .NET был портирован на Mac и Linux и этот проект называется Mono. Разработкой занимается компания Xamarin, которая так же портировала .NET на Android и iOS. Вот как там обеспечивается запуск на старых версиях ОС - ещё мне предстоит узнать.
Добавлено через 10 минут Уточну, что я имею ввиду запуск на старых версиях Mac, Linux и мобильные. Чем хорош Mono, что можно один раз написать проект в VS и потом открыть его на других OC в среде MonoDevelop и создать билд приложения. Добавлено через 1 час 3 минуты Я пытался найти пример, чтобы окно создавалось с помощью WinAPI и чтобы использовался OpenGL 3.3, но не смог найти. Везде для создания окна используют GLUT, FreeGLUT, GLFW и т.д. А вот чтобы окно WinAPI и шейдеры GL 3.3 - не нашёл. Если у кого есть ссылка, то дайте, пожалуйста.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
24.02.2017, 05:36 [ТС] | 19 |
Да!
Я еще не понял, наверно код для окна не сильно мешает понять другой код. Главное, чтобы команды и возможности OpenGL не оказались внедренными в эти библиотеки.
0
|
Строитель
460 / 77 / 4
Регистрация: 18.06.2010
Сообщений: 514
|
|
24.02.2017, 07:52 [ТС] | 20 |
Сделал загрузку текстуры через файл: .tga
Качество прекрасное! взял код из: https://sites.google.com/site/... gruzka-tga Исходник прикрепил:
0
|
24.02.2017, 07:52 | |
24.02.2017, 07:52 | |
Помогаю со студенческими работами здесь
20
Самый простой способ шифрования файла Самый простой способ проверить медиа-файл создать стоку из n нулей, самый простой способ минимальный и самый простой способ сортировки массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |