FreeBasic
Главная
Вход
Регистрация
Пятница, 29.03.2024, 13:45Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Исходники » Пример "3D кубик в OpenGL"
Пример "3D кубик в OpenGL"
DarkDemonДата: Вторник, 02.04.2019, 16:19 | Сообщение # 1
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Благодаря парням с раздела OpenGL цайбера удалось таки.
Выглядит немного громостко, но цель была раскурить таки уже нормально ZBuffer с корректными текстурами.
Так что Стас, если хочешь можешь выложить на сайте, для таких же раскуривающих.

Прикрепления: 3D_Example.zip (123.8 Kb) · 8370792.png (37.5 Kb)
 
WQДата: Вторник, 02.04.2019, 17:16 | Сообщение # 2
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Да, когда-то много времени было потрачено, чтобы понять, как работает такой кубик
А потом сделал вариант, где на каждую грань выводилось видео с ютуба


Сообщение отредактировал WQ - Вторник, 02.04.2019, 17:16
 
DarkDemonДата: Вторник, 02.04.2019, 18:04 | Сообщение # 3
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Тут сложность лично у меня не с тем была чтобы понять как работает, а скорее чтобы
адаптировать под свои методы работы с 3D этот долбаный OpenGL и очень не хотелось тягать
с собой всякие там GLU, GLUT и тому подобное добро, т.к. пишу всё без библ своими силами.

Также в чистом софте хочу ещё такое же написать именно перспективно корректное, как-бы задумка интересная есть.
А по факту всё это нужно чтобы переписать одну старую игрушку 2001 года, одного чела.
Не уверен что справлюсь с этой задачей, потому что там реально дофига работы, а переписывать
нужно полностью т.к. старые исходники адаптированы под EMS, с них толку ноль.
Думаю не быстро за год\два в фоновом режиме может переписать, не нахрапом, не торопясь.

 
haavДата: Вторник, 02.04.2019, 19:34 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Привет Леха!

Я не знаю в чем дело , но твой исходник похоже не работает как надо.

1) кубик не вращается

2) иногда при запуске программы вообще ничего не видно , кроме синего бэкграунда (это случается приблизительно каждый третий\четвертый запуск). В остальных случаях просто статичный "шахматный" квадрат. 

Я тестировал на Linux Mint 64-bit.

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


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Вторник, 02.04.2019, 20:16 | Сообщение # 5
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Стас, кубик пол секунды ждёт бенчмарка(статистики по кадрам), потом вращается.
Потому что через таймер на моём текущем компе какая-то задница, всё дёргано.
Но если не начинает вращаться через пол секунды, то что-то с таймером и я тут уже не при делах,
т.е. даже бенчмарк не удаётся провести.

Цитата haav ()
иногда при запуске программы вообще ничего не видно , кроме синего бэкграунда (это случается приблизительно каждый третий\четвертый запуск). В остальных случаях просто статичный "шахматный" квадрат.


Прикольно, вот это уже большой косяк. Очень забавно.
Использовал только функции FreeBasic-a, ничего такого экстравагантного там в исходнике нет.
Если чё то не пашет, ну значит так линуксовая сборка FreeBasic-a отрабатывает.

Цитата haav ()
Я не в курсе, чего ты хотел добиться в конечном случае , но разве уроки NeHe в той же папке Examples от компилятора не дают ответы? Вроде там есть примеры, в том числе с вращением кубика и с текстурами.


Туда не лазил поэтому не знаю, но если вдруг там через Glut - то да, не дают ответа.

Исходник писался впопыхах по инфе с форума, поэтому мог накосячить, но тут нужен уже спец
по OpenGL. Вообще код простейший там вроде нечему лососить.


Сообщение отредактировал DarkDemon - Вторник, 02.04.2019, 20:23
 
haavДата: Вторник, 02.04.2019, 21:05 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Я нашел ошибку в твоем исходнике.

Вместо: DIM FirstTime AS SINGLE

Нужно: DIM FirstTime AS DOUBLE

И все будет работать как задумано. 

Не помню писал я или нет , если что повторю: чем мне нравится программировать в Linux , так это тем , что Linux не прощает таких ошибок . В итоге либо не работает и это явно видно, либо вообще вылетает. Это в винде все кажется работает , а потом сыплются жалобы пользователей , а ты понять не можешь, ведь все вроде работает... То есть кажущаяся стабильность работы приложений на Windows , бывает играет злую шутку с программистом.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Среда, 03.04.2019, 02:14 | Сообщение # 7
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline

Цитата
Вместо: DIM FirstTime AS SINGLE

Нужно: DIM FirstTime AS DOUBLE


Жесть. Если честно это последнее, на что я бы думал. Неужели FB не может сам понять что надо преобразовать тип.
И почему таймер не работает в SINGLE? Точнее даже вопрос в другом, почему под виндой оно работает сбивая
с толку программиста, что мол так и надо.


Сообщение отредактировал DarkDemon - Среда, 03.04.2019, 02:16
 
haavДата: Среда, 03.04.2019, 09:25 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline

Цитата
 И почему таймер не работает в SINGLE? 


Как бы функция Timer всегда возвращала тип Double:

https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgTimer


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Среда, 03.04.2019, 17:13 | Сообщение # 9
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Стас, я понял косяк, но это конечно полная кабзда. Просто обычно всегда перед тем как объявить переменную думаю,
а хватит ли мне этого и вроде всегда хватало, всегда работало и тут нате вам.
Понятно что линукс сделал что-то что влезло в дабл и не влезло в сингл. Но какого чёрта)))
Да документация говорит что дабл, тем не менее старому QB всегда хватало сингла, на то же самое,
ну это реально то же самое если мы учитываем шаг таймера. А таких подводных камней это озвереть просто.

Причём компиль видит с чём я сравниваю, вот что бесит, т.е. одно дело когда я делаю отсечение целочисленной
переменной и совсем другое когда так, типа это на плечах программиста. Очень каверзный баг.
Не мне 32 лишних бита не жалко на дабл, гигабайты памяти холёной, но итить, я бы сам долго трахался при банальном
написании этой проги если бы у меня был линукс.


Сообщение отредактировал DarkDemon - Среда, 03.04.2019, 17:16
 
haavДата: Среда, 03.04.2019, 19:23 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата DarkDemon ()
я бы сам долго трахался при банальном
написании этой проги если бы у меня был линукс.


Это тебе кажется Леха smile Я думаю, что ты точно так же привык бы к линуксу и без проблем бы писал. Да еще виндузятников всех бы подкалывал smile


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Среда, 03.04.2019, 21:24 | Сообщение # 11
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Цитата
Я думаю, что ты точно так же привык бы к линуксу и без проблем бы писал.


Пробовал и не раз, это бесполезно. Слишком там запарили мозги людям. Эта идеология абсолютно точно
мне не близка, я привык к простоте, интуитивности и понятности и углублению в вопрос там где сам хочешь
углубиться, а не там где тебя силком заставляют. Ну и багов там повидал столько, что о каких-то подколах
речи быть не может в принципе. Минт лёг при первом же запуске трёхкратной сменой шкуры, давно это было,
несколько лет назад, не помню точно, 17.1 вроде версия, но на тот период это был "свежак" и образцово
лучшая сборка линукса, которую все боготворили, баг был устойчив (после нескольких смен шкур зависало
всё намертво), не знаю пофиксили ли, будет забавно если нет.
Под виндой всё работало великолепно, железо было хорошее и надёжное.
Я тогда тестировал сборки линукса, ничего позитивного не нашёл, везде был гемор, драйверы какие надо
не поставить, постоянная возьня с пакетами, какими-то репозиториями и консолью, установщиков нет, качаешь
пакет он не подходит и т.д. тысячи вещей где можно застрять, офигеть и испепелить себе мозг. Повидал столько
бреда, например авто обновление ядра ложило на лопатки систему и сделать уже ничего было нельзя(с моим
уровнем знаний линукса естественно, а этих знаний было больше чем у рядового пользователя, который печатает
в офисе, смотрит фильмы и браузит инет) на каждой сборке свои правила, свои пакеты, всё своё, совместимости
и унификации - минимум, возникающую проблему обычно способен решить только сисадмин который 10+ лет
в теме и уже успел офигеть, все остальные тыкаются в гугле и одна инструкция  для одной сборки подходит,
для другой нет. При всём при этом забавная фишка с паролем, когда ставишь линукс, пароль просят но ты его
не задавал и не знаешь, плюс он ещё и невидимый. Если это верх интуитивности, то мне остаётся только пожать
плечами. И это всё что я написал примерно 1/30 всех проблем с которыми сталкивался, когда пользовался
линуксом, каждая проблема сопровождалась вылазкой в гугл часа на 2, потом я психовал и задавал вопрос на
музфоруме в разделе софта, там был админ который шарит и мог помочь. После нескольких попыток я оставил
это дело. В принципе 7-ки и XP мне хватит до того момента пока всё оборудование перестанет поддерживаться.
И то семёрка это ацкая лажа, я знаю сколько она реально жрёт, в MS работают хитрозадые товарищи
планировщик знает как скрыть горькую правду о себе, но она всё равно вылезает, например на тепмературе
нагрева проца. Странная штука при "нулевой" загруженности)))

Да и вообще о чём я говорю, тут новый компиль берёшь старое - ничего не работает, GL2D например.
СПО: нет документации и стандартизации - нет проблем, спасение утопающих дело рук самих утопающих.
С какой версии олососилось надо смотреть, код 2007 года, на переходном этапе там вангую что у всех
99% прог отвалилось, всё править озвереешь. Вот почему я оставил себе одну сборку FB, так жопа целее,
хотя бы моё всё работает. На QB такого никогда не было, там все версии совместимы по базовым вещам
и всего пара нюансов.

Уже как-то писал, не делю людей на лагерь винды, линукса и т.п. если бы появилась система, которая впитала
бы в себя лучшее и устранила худшее - я бы выбрал её, снёс бы к херам семёрку и жил бы не тужил.
Была интерсная статья кстати по поводу софта:
https://habr.com/ru/post/423889/
Автор красавчик, про это дерьмо уже давно глаголю.


Сообщение отредактировал DarkDemon - Среда, 03.04.2019, 21:37
 
haavДата: Четверг, 04.04.2019, 13:14 | Сообщение # 12
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Да, cтатья зачетная. Такие мысли у многих, но у корпораций своя логика. Я всегда считал и считаю , что ветер оттуда дует , по крайней мере в этой цепочке дерьма, они не на последних ролях.

Что касается линукса... да ты прав в том, что касаемо идеологии. Линукс такая система , которую надо своими руками допиливать под свой вкус. Но после напильников , это будет та система , которую ты хотел , а не та, что подсовывают виндозадые "с заботами о каждом пользователе".


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Четверг, 04.04.2019, 14:46 | Сообщение # 13
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Цитата haav ()
Линукс такая система , которую надо своими руками допиливать под свой вкус. Но после напильников , это будет та система , которую ты хотел , а не та, что подсовывают виндозадые "с заботами о каждом пользователе".


Согласен. MS уже вконец опупели.

Цитата haav ()
Я всегда считал и считаю , что ветер оттуда дует , по крайней мере в этой цепочке дерьма, они не на последних ролях.


На самом деле прогресса уже давно нет, нам подсовывают старое под видом нового, а чтобы иммитировать прогресс
искусственно засирают хорошее, чтобы потом убрать часть дерьма когда все взвоют и сообщить о небывалом прогрессе.
Это было отчётливо видно по ядрам CUDA. В определённый момент они внезапно стали в 3 раза слабее, об этом писали
в прессе.
 
Форум » Freebasic » Исходники » Пример "3D кубик в OpenGL"
  • Страница 1 из 1
  • 1
Поиск: