Знайомство з робототехническим конструктором ТРИК: зворотний маятник

Вступ і постановка завдання


Що спільного між жіночими грудьми і іграшковою залізницею? Правильно, і те, і те призначено для дітей, а грають з ними папи. Кілька днів тому я обзавівся роботехническим конструктором ТРИК. Комплект досить суворий, розробники стверджують, що він хороший для швидкого прототипування і для навчання, а саме (само-)навчання мене в даний момент і цікавить.

Що зараз широко доступно на ринку для робототехнічних ігор? Саморобний виготовлення плат під кожен проект не розглядаємо. Лего, розпи, ардуїнов. Лего прекрасний, але, на жаль, дуже і дуже сильно обмежений. Розпи і ардуины непогано розширюються, але досить незручні і швидко перетворюються в рассыпуху різних карток-шильдиків-макеток. Ось тут і виходять на ринок пітерські хлопці зі своїм конструктором ТРИК.

Отже, моє завдання зрозуміти, наскільки це доступно широкому загалу (мені). Я ніколи не відвідував лекцій ні з теоретичної кібернетики, ні з теорії управління. Закон Ома я вивчив рівно настільки, щоб зрозуміти, що розетку лизати не варто, і паяльник не є моїм другом. Але як кожен нормальний (дорослий) дитина грати я люблю, і тому зацікавився цією темою.


Читати далі →

Короткий курс комп'ютерної графіки, адендум: GLSL

Чергова вступна стаття для початківців програмувати графіком реального часу

У мене колись виникла завдання (швидко) візуалізувати молекули. Наприклад, молекула може бути представлена як набір сфер кшталт ось цього:

Конкретно цей вірус складається з приблизно трьох мільйонів атомів. Ви можете завантажити його модель на чудовому сайті rcsb.org.

Це відмінний топік для навчання шейдерам!

Читати далі →

Короткий курс комп'ютерної графіки: пишемо спрощений OpenGL своїми руками, стаття 4в з 6

Зміст основного курсу


Поліпшення коду


Спілкування поза хабра
Якщо у вас є питання, і ви не хочете задавати їх у коментарях, або просто не маєте можливості писати в коментарі, приєднуйтесь до jabber-конференції xmpp: 3d@conference.sudouser.ru

Новий растеризатор і корекція перспективних спотворень
Тема сьогоднішнього розмови — це корекція спотворень інтерполяції, подивіться на різницю текстурування на підлозі:

Я спеціально прибрав з рендера все, що стосується освітлення, нормалей і іншого, залишив тільки текстуру. Спасибі MrShoor, я був ледачий і не робив цієї корекції, але в підсумку заморочился, завдяки його пинку. Зі старою версією растеризатора це було клопітно, з новою це досить просто.

Тому почнемо з того, як працює новий растеризатор, а для цього нам потрібно вміти працювати з барицентрическими координатами.


Читати далі →

Короткий курс комп'ютерної графіки: пишемо спрощений OpenGL своїми руками, стаття 4б з 6

Зміст курсу


Сьогодні ми закінчуємо з лікнепом з геометрії, в наступний раз веселощі з шейдерами!
Щоб не було зовсім нудно, от вам тонування Гуро:

Я прибрав текстури, щоб було видніше. Тонування Гуро дуже проста: добрий дядечко-моделер дав нам нормальні вектора до кожної вершини об'єкта, вони зберігаються в рядках vn x y z файлу .obj. Ми вважаємо інтенсивність освітлення для кожної вершини трикутника і просто интерполируем інтенсивність всередині. Рівно як ми робили для глибини z або для текстурних координат uv!

До речі, якби дядько-моделер був не таким добрим, то ми могли б порахувати нормалі до вершини як середнє нормалей граней, прилеглих до цієї вершини.

Поточний код, який згенерував цю картинку, перебуває тут.


Читати далі →

Короткий курс комп'ютерної графіки: пишемо спрощений OpenGL своїми руками, стаття 4a з 6

Зміст курсу


Побудова перспективного спотворення
Четверта стаття буде розбита на дві, перша частина говорить про побудову перспективного викривлення, друга про те, як рухати камеру і що з цього випливає.Завдання на сьогодні навчитися генерувати ось такі картнки:



Читати далі →