All posts by l-proger

Softrender: update

Посидел немного над софтрендером и таки привёл его в юзабельный вид )

0. НАКОНЕЦ-ТО руки дошли сделать frustum clipping! 🙂  Теперь всё рендерится абсолютно корректно.  Клиппинг производится в 4D clip space по 7 плоскостям.
1. Пофиксены различные баги
2. Проект перенесён в IDE QtCreator и портирован под линукс, в котором и идёт разработка.
3. Дописан класс окна под линукс и класс таймера.
4. Добавлена простая система ввода (2 класса)
5. Добавлена поддержка индексированной геометрии  (собсно ради кеша и памяти)
6. Добавлен вершинный кеш в пайплайн растеризатора!Теперь если вершина лежит в кеше, то оттуда она и берётся и не трансформируется снова и снова ) Красота.
7. Добавлен альфа-тест и туман, введён FFP режим билда (когда шейдерные фичи блокируются и включаются FFP, ещё добавил Ambient освещение  (включение, цвет).
8. Пофиксил семплинг текстур и прикрутил его в FFP режим.

Ну и перенёс разработку на Bitbucket.org ! Под Mercurial.  Очень радует своей отличной работой, всё клёво.  Репозиторий общедоступен, но я не оставлю здесь на него ссылку, т.к. там сейчас дичайший говнокод и смотреть его нет смысла, как и юзать, ибо там ещё и FPS пока никакущий.

0
0

Software rendering:continued

Один друг попросил допилить мой софтварный 3D рендерер на С++ чтобы написать на нём игру.  Собсно в свободное время сейчас этим и занимаюсь. Ну наконец-то я прикрутил клипинг полигонов моим растеризатором по фрустуму в Clipping Space-е.  Всё работает шикарно )  Давно там есть шейдеры, но другу они как-то оказались наоборот не нужны. Вркучиваю и подобие FFP : )

Давно не занимался софтрендерами, оч радует пока )

0
0

Проект #2

Для начала хочу ещё раз немного поиграться с нейронными сетями. Пока более детально изучаю работу мозга, в частности строение неокортекса. Хочу реализовать что-то сложнее простого многослойного перцептрона как в прошлый раз, осталось придумать реальное применение и собственно написать для него НС.
0
0

Проект

После долгих раздумий остановился на одном варианте.

Всё уже решено – выбран проект, который будет мною реализовываться на моём же движке.
Это будет почти “RPG”, онлайн, возможно в будущем ММО даже. Но не сначала.

Но это не совсем игра, это будет симулятор! Симулятор того, чего человечество ещё не совершало.  Надеюсь, это будет настолько же эпично, насколько оно сейчас в моих планах.

Информации о проекте в ближайшее время поступать от меня не будет, тема, сеттинг и т.п.  -временно в тайне.

0
0

gumstix и секс мозга при буте с NFS

Недавно занялся разработкой одного интересного драйвера под  gumstix-ы и первое, что мне понадобилось – собсно, загрузить сам gumstix,  точнее загрузить в него linux )

№;%:?*()(:%%:;№;:?*(?)(*;№:№;(_(№*;:;”(№_”(*):?;%№!!!!!!!!!!!!
Нет никакой нормальной поддержки по нему, туториалы все кривые, проблемы вообще никак не описаны, ничерта не понятно 😀  Наталкиваюсь на проблему, гуглю – она у _многих_ и _ни одного_ ответа )  Поэтому все проблемы, которые решил _сам_ – буду описывать здесь, в этом посте, дабы те, кто занят этим же, смогли нагуглить решение без геморроя.

(список буду обновлять по возможностям)

1.  Бут девайса по сети! (gumstix network booting)

Такой режим загрузки необходим при активном девелопинге под gumstix, особенно если это драйвер (простые проги можно собирать прямо на самом gumstix-е).  Собрал драйвер, закинул в rootfs, нажал reset на gumstix-е и чотко же, он мгновенно подтягивает пропатченный линукс.
Проблемы:

а. Девайс грузится, однако доходит до определённого момента:

Starting Network connection manager daemon: NetworkManager.
nfs: server 192.168.xxx.xxx not responding, still trying
Собсно, nfs сервер и не должен тут отвечать! Почему? Ды первая строка и объясняет – запускается  NetworkManager и перенастраивает сеть (а изначально настройки задаются в параметрах окружения загрузчика uBoot)! После чего nfs благополучно отваливается.  Для того, чтобы просто запустить линукс, можно сделать такой хак, какой я додумал (да, я не линуксоид и мне сложновато было допереть где тут что):

идём в рутовую файловую систему gumstix-а в папку /etc/init.d/ и открываем файл для редактирования   NetworkNamager.  В самом начале файла дописываем exit 0 


Таким образом  NetworkNamager не сможет запуститься и даст вам возможность загрузить наконец linux.  Дальше уже можно прям из под линукса настроить как надо NetworkManager ) 

0
0

Оно взлетело!

Вот )  Теперь никакого фейка больше нет – он выпилен.  Реально граф компилируется в 2 шейдера (вершинный и фрагментный), собирается материал и всё это применяется на объект в предпросмотре в реальном времени.

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

Теперь надо уже добавлять функционал узлов и радоваться новому редактору!  Ах да, и сделать ему нормальный интерфейс (этот же – просто тестовый, не более).

Медленно, но верно…

0
0

Пилю движок дальше.

То времени нет, то нет времени!  Писец.  Теперь практически некогда заниматься движком ( А если и находится время, то уже ничего тогда не хочется ))

Но потихоньку таки пилю движок дальше, а точнее GUI   D:

Ввёл понятия “свойства” и “аттрибуты” в движок, переписал чать GUI, кторая работала мягко говоря отвратно, добавил класс PropertyGrid(!), которому и посвящается сей пост.

PropertyGrid в зачаточном состоянии, но уже работает.  Хоть как-то….  Добавил его и понятие “редакторов свойств”.   Теперь при клике на свойство текстурной ноды  открывается диалог открытия файлов (свой собственный, который умеет просматривать мою виртуальную файловую систему), можно выбрать файл и текстура в текстурной ноде мгновенно  перезагрузится (и теперь появился вывод текстур внутри нод графа).  Пилю дальше…

0
0