Tuesday 4 October 2011

Векторная графика в Linux с помощью Inkscape

Некоторое время назад мне потребовалось оформлять плакат для выставки. У меня не возникло вопросов, в чём создавать плакат - разумеется, в векторном редакторе Inkscape! Однако мои молодые коллеги, с изумлением глядя на двухметровый плакат, предлагая самые безумные версии от Microsoft Paint до Word, под конец закидали меня вопросами о том, где бы такое сделать. Пост написан по результатам наших бурных обсуждений и моих скромных находок.


Векторная графика

Если очень кратко, то дело обстоит так: растровая графика оперирует с пикселями и их значениями, в то время как для векторной графики существуют линии, кривые и узлы. В растровой графике, например, чёрный прямоугольник будет задан множеством чёрных точек - пикселей. В векторной - прямоугольником со сторонами A и B, толщиной линии, и цветом линии и заливки. Разница будет ещё очевиднее, если вы захотите нарисовать изогнутую линию. В растровом виде это будет сделать трудно, зато в векторном - легче лёгкого: вам помогут кривые Безье, которые можно представить как гибкую линейку. Задаём точки и изгибы в каждом узле, и получаем кривые самых невообразимых видов.

Tuesday 12 April 2011

Как создавать ландшафты

Введение
 
Когда пишется графическая система трехмерной графики реального времени вначале вы должны решить, какие функции должна выполнять эта система, особенно, если эта система для игры. Далее вы должны подумать - "как избежать этого? ". Когда я познакомился с оригинальным алгоритмом вывода ландшафтов, я тут же отметил, что камера не требует сильных наклонов. Характер ландшафта, очевидно, позволяет ввести много упрощений в управление сценой, которые невозможны с более универсальной системой управления сцены. При визуализации ландшафта мы всегда знаем, что мы имеем дело с непрерывной поверхностью, которая простирается за экран во всех направлениях. В этой статье не содержит все, что нужно для создания полноценной трехмерной графической системы, всегда есть специфические случаи, с которыми приходится сталкиваться. В этой статье сосредоточимся только на ландшафтах.
 
Ограничения
 
Вот список всех ограничений, которые я счел приемлемым наложить на структуру уровней и работу камеры в графической системе. Конечно, это не все, но важно знать то, с чем Вы можете, или не может избежать неприятностей. Если Вы работаете в фирме на кого-то, сверьте этот список с вашим заданием.
 
-     Нет крутых склонов, так как данные для создания сцены включают в себя сетку  из равномерно расположенных точек называемых картой высот, это делает управление сценой невероятно простым.
-     Нет необходимости наклонять камеру.
-     Камера управляется пользователем через графическую систему, поэтому можно  избежать придвижения камеры слишком близко к ландшафту.
 

Sunday 20 March 2011

Создание взрыва в Maya

1) Для начала создадим новую сцену, а в ней камеру. На
imagePlane камеры кинем вот эту фотографию Скачать.



2) Создаем Полигональный план, увеличиваем его
соответственно нашему imagePlane-у (другими словами просто
ставим "Полигональный план" на его место и увеличиваем до
размеров imagePlane-а) И кладем на него уже скаченную нами
фотографию бензоколонки.



Monday 14 March 2011

Моделирование пивной крышечки

На IRC канале и форуме Blender-Украина подняли тему про моделирование пивных пробок. Был найден урок для макса и я решил его переделать для блендера. Самая хитрость — это разные способы выделения полигонов граней и вершин. Итак, начинаем...

Я решил сделать крышку с 20 зубчиками — для этого создаю цилиндр 20, 1, 0.4. Нижнюю точку удаляю. Делю ребра ножиком (K) два раза.


Поднимаем ряд вершин повыше, верхнюю окружность уменьшаем. Выделение ребер по кольцу Alt+ПКМ.


Sunday 6 March 2011

Видеоурок по созданию цветка в SolidWorks

К празднику 8 марта нашел отличный урок по рисованию 3d цветка. Учимся.

Доброго времени суток! В прошлом уроке мы с вами говорили о моделировании лепнины (архитектурной лепки) в solidworks. Я решил не останавливаться на достигнутом, и сделал еще один урок, в котором расскажу вам как моделировать еще один неотъемлемый элемент лепнины — цветок.

Thursday 3 March 2011

Программирование под Linux: SDL и OpenGL

По просьбе на форуме решил написать простенькую статью о программировании графики под linux. Собственно, оснавная часть графического (openGL) кода в разных ОС остаётся практически без изменений. Различаются только способы инициализации программы (точнее, окна). В windows собственно есть только winAPI и различные обёртки под него. В linux же есть две основные оконные библиотеки: gtk и qt4. Если вам интересно, вы можете найти в интернете способы инициализации окна под них. Я же опишу более простой способ: библиотека SDL.

SDL - это кроссплатформенная библиотека, предоставляющая доступ к видео, аудио, сетевому и другому оборудованию.
Нам SDL понадобится для простого создания окна, чтобы нам не пришлось заботится об установленных библиотеках:
мы скажем SDL "создай нам окошко", и оно создаст, независимо от того, какая графическая оболочка активна у пользователя:
QT или gtk. Мало того, установив эту библиотеку под windows, вы сможете практически без изменения использовать один и тот же
код инициализации в обоих системах.

Monday 28 February 2011

Создаем 3d модель тюбика зубной пасты

Часть 1. Моделирование.

Открываем 3d Studio Max.

Далее выбираем "вид сверху" (Top)

Рисуем линию (Shapes → Line) строго горизонтально (SHIFT), которая определяет длину тюбика.

У меня  получилось примерно 150 мм (Utilities → Measures)

Вид слева (Left)

Рисуется эллипс (Ellipse) 20,20

Добавляем Loft к линии (Geometry → Compound Objects → Loft) с помощью кнопки Get Shape и указываем на эллипс , появляется  объём.  В свойствах созданного объекта  (только через Modify!) открываем свиток Deformations → Scale (Деформации → Масштаб)

Friday 25 February 2011

Assembly 2010 ARTtech семинары

Лучшие по-моему мнению семинары с крупнейшего в мире lan-party Assembly 2010.
Этот компьютерный фестиваль проходит каждый год летом в Хельсинки.

Разработка игр для Windows Phone7.


Программирование на Qt.


Monday 21 February 2011

Книги по основам 3D графики

В одном из комментариев меня попросили указать на литературу по 3d графике для начинающих.
Вот что рекомендуют из русской литературы в твёрдой обложке.


Ален Торн
Direct X 9. Осваиваем 3D-пространство
DirectX 9 Graphics: THe Definitive Guide to Direct 3D
Серия: 3D-графика и анимация
Издательство: НТ Пресс, 2007 г.
Мягкая обложка, 288 стр.
ISBN 978-5-477-00397-6
Тираж: 2000 экз.
Формат: 70x100/16 (~167x236 мм)



К. Финни
3D-игры. Все о разработке (+ CD-ROM)
3DGame Programming All in One
Серия: Программисту
Издательство: Бином. Лаборатория знаний, 2007 г.
Твердый переплет, 976 стр.
ISBN 978-5-94774-664-8, 1-59200-136-X
Тираж: 2000 экз.
Формат: 70x100/16 (~167x236 мм)

Thursday 17 February 2011

Использование Direct3D совместно с Qt

Однажды, у меня появилась необходимость использования Direct3D совместно с Qt. После нескольких дней поисков в интернете, я нашел всего лишь какие-то обрывки информации. Полноценного описания механизма использования Direct3D не было нигде. В результате, после долгих изысканий я добился того, чего хотел:)

Под катом находится инструкция «сближения“ Direct3D и Qt, а так же код виджета, который можно использовать as is



При написании данной статьи использовались следующие средства:

  1. Qt 4.5.0
  2. VS2008 SP1
  3. DirectX SDK August 2008

Tuesday 15 February 2011

Начинаем изучение 3d графики

    Итак, с чего начать изучение работы с 3d графикой и объектами? По-моему мнению, лучше начинать с программы blender версии 2.5. Она проста в установке, почти нет никаких .Net framework-ов и прочего хлама от microsoft. К тому же имеет сравнительно малый размер по сравнению с такими монстрами, как Microsoft Blend.
    Управление в этой программе интуитивно понятно. Хотя и нужно некоторое время чтобы в нем разобраться. Работа начинается с показа вам 3д сцены. Вид со стороны камеры. Источник света расположен в углу. Все как в 3D max-е. Все как по учебнику и как нам рассказывали в теории. Ничего сложного.

Вот как выглядит сцена и объекты в blender-е.



А что же дальше? А дальше этими объектами можно управлять, двигать, морфить, и все это в автоматическом режиме через понятный интерфейс. Ну, что %username% готов создавать собственные видеоролики? Ну, ладно, ладно. До этого еще далеко. А пока все.
Качаем программу и изучаем. Без этого первого шага никак. Удачи!

Сайт программы: http://www.blender.org/

OpenGL в Linux

Цикл уроков по программированию OpenGL в Linux.

*примечание: в первом уроке не будем расматривать CodeBlocks и SDL, но подготовим все до следующих уроков.

Часть 0.1 — немного об Linux.



Linux, произносится «ли́нукс» (также GNU/Linux, произносится «гну ли́нукс» или «гну слэш ли́нукс»]) — общее название Unix-подобных операционных систем на основе одноимённого ядра и собранных для него библиотек и системных программ, разработанных в рамках проекта GNU.
Linux работает на PC-совместимых системах семейства Intel x86, а также на x86-64, PowerPC, ARM, Alpha AXP, Sun SPARC, Motorola 68000, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других.

В отличие от большинства других операционных систем, Linux не имеет единой « официальной » комплектации. Вместо этого Linux поставляется в большом количестве так называемых дистрибутивов, в которых ядро Linux соединяется с утилитами GNU и другими прикладными программами (например, X.org), делающими её полноценной многофункциональной операционной средой.

Наиболее известными дистрибутивами Linux являются Arch Linux, CentOS, Debian, Fedora, Gentoo, Mandriva, Mint, openSUSE, Red Hat, Slackware, Ubuntu.

Российские дистрибутивы — ALT Linux, ASPLinux, Calculate Linux, НауЛинукс, AgiliaLinux (ранее MOPSLinux) и Linux XP

Знакомимся с OpenGL

OpenGL


Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.

OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.

Именования


Скажем пару слов об именовании функций в OpenGL. Во-первых имена всех функций, предоставляемых непосредственно OpenGL, начинаются с приставки gl. Во-вторых функции, задающие некоторый параметр, характеризующийся набором чисел (например координату или цвет), имеют суффикс вида [число параметров + тип параметров + представление параметров].