3D-моделирование: старт для начинающих
Человечество давно на пути из материального мира в цифровой, хайп вокруг метаверса лишь показал очевидность тренда. Неудивительно, что 3D-моделирование становится популярнее — должен же кто-то создавать объекты новой реальности! Но трёхмерное моделирование — не только про виртуальные миры, область его применения ещё шире и увлекательнее.
Ликбез по 3D-моделированию
Что это
3D-моделирование — раздел компьютерной графики, посвященный созданию трёхмерных визуальных объектов при помощи профильного ПО. Простыми словами, в специальных программах делаются объемные картинки.
Для чего нужно
- Индустрия развлечений. 3D-моделирование применяется в фильмах, для создания анимации и видеоигр. Ну и, конечно же, какое без этого обустройство метавселенных?
- Создание прототипов. Современную 3D-графику трудно отличить от фото, поэтому с её помощью можно создавать эффектные презентации проектов для клиентов, партнёров и инвесторов. Например, её используют для визуализации зданий и интерьеров, для моделирования результатов пластических операций.
- Производство. Детали, украшения и даже медицинские протезы — всё, что будет воплощено в реальном мире может быть смоделировано, а потом напечатано на 3D-принтере или произведено на другом устройстве.
Как принимать витамин D3? | Доктор Ирина Мироновна
3D-модель бионического протеза руки MAXBIONIC
Два метода моделирования и их суть
Подходы настолько отличаются, что специалист по моделированию персонажей для игр, может никогда не открывать ни одной САПР-программы (системы автоматизированного проектирования). Хотя речь всё о том же 3D-моделировании.
Полигональное моделирование
Суть метода в том, что модели создаются с помощью полигонов — поверхностей, задающихся точками. Точки можно двигать, тем самым формируя модель, ориентируясь на внешний вид и интуицию. Это в большей мере творческая работа, здесь зачастую нет привязки к реальным единицам измерения.
Пример низкополигональной модели на 220 полигонов
Процесс создание простой 3D-модели с помощью полигонального моделирования:
Метод зачастую используется, если моделируемый объект не выйдет за пределы экрана, то есть не будет воссоздан в реальном мире. Так, например, создаются игровые и мультипликационные персонажи.
Создавать высокоточные виртуальные объекты с помощью данного метода сложно, ведь процесс скорее напоминает лепку из пластилина, но на компьютере. Но его также можно использовать для проектирования вещей, для которых в производстве не важна высокая точность и соблюдение размеров.
Моделирование в САПРах
САПР или CAD (англ. Computer-Aided Design) — программа, где модели задаются формулами, а не полигонами. Это позволяет достигать точности до долей миллиметра, поэтому метод широко используется для проектирования моделей, которые не только выйдут за пределы экрана, но и пойдут в массовое производство. Например, для создания моделей деталей, которые будут отлиты на заводе, автомобилей, двигателей, зданий, мебели, самолётов.
Процесс моделирования выглядит так:
Если сравнивать этот метод с полигональным моделированием, то разница примерно как с растровой и векторной графикой. Даже предельно высокополигональная модель (с таким количеством рёбер, что самый мощный компьютер виснет при попытке её отобразить), будет иметь неровности при приближении, в САПРах же любая поверхность идеально гладкая.
Этот метод также хорош тем, что модели задаются с помощью параметров, поэтому в любой момент можно скорректировать необходимые показатели (например, поменять высоту объекта или диаметр отверстия) и перестроится вся модель. Но с его помощью создавать сложные органические модели крайне нецелесообразно — проектирование идеально гладкого игрового персонажа займёт неоправданно много времени.
Что нужно, чтобы начать
Главное — искренний интерес и вдохновлённость затеей. Самым первым шагом может быть даже скачивание приложения по 3D-моделированию на смартфон — просто чтобы понять, нравится ли вам создавать объемные фигурки на устройстве. На Android можно установить 3D Designer (рейтинг не очень, но что-то понять можно, сделав скидку на сыроватость), а на iOS пойдёт и более серьёзное САПР-приложение — Shapr: 3D modeling CAD.
Комментарий под видео, демонстрирующий правильный настрой и отсутствие возрастных преград
Знания и навыки
Для старта в полигональном моделировании не нужны никакие специфические знания, помимо умения пользоваться компьютером. Полезным, но не обязательным навыком для этапа скульптинга (способа моделирования, когда персонаж лепится как из глины) будет умение рисовать от руки. Для начала продуктивной работы в САПРах большим плюсом будет понимание топологии поверхностей, свойств материалов и технологии производства. Поэтому профильное образование и конструкторские навыки будут очень кстати.
Какой компьютер подойдет для 3D-моделирования
Выбор железа будет зависеть от сложности проектов, над которыми вы будете работать. Так высокополигональное моделирование и работа в САПРах потребует большей мощности компьютера.
Низко-, средне- и высокополигональная модели лица
Минимальные характеристики для 3D-моделирования без сильных тормозов с учётом требования большинства программ такие:
- Full HD экран 1920х1080.
- Процессор — 4 ядра от 3 GHz.
- Оперативная память — 8 Гб (помните, 4х4 быстрее, чем 2х8 Гб).
- Видеокарта — с поддержкой OpenGL 4.3 на 4 Гб памяти.
- Свободное место на диске — 50 Гб (здесь с запасом, но желательно иметь как можно больше свободного места, ведь много памяти будут занимать плагины, наборы материалов, текстур и сами проекты).
Разумеется, чем больше, тем лучше. Вот пример топовой сборки, чтобы всё летало на любых проектах:
- Процессор — AMD Ryzen 9 5950X. Он идеально подходит для 3D моделирования по количеству ядер (16) и потоков (32).
- Оперативная память — 32 Гб (Patriot Viper Steel — 2х16 Гб).
- Видеокарта — NVidia RTX 3080 Ti на 12 Гб.
- Материнская плата — MSI MPG B550 GAMING CARBON WIFI.
- Накопители — SSD Samsung 980 Pro 1 TB и HDD Seagate Backup Plus Hub
- Блок питания — Deepcool DQ850.
- Система охлаждения — MSI MAG CORELIQUID 360R.
- Корпус — Cooler Master MasterBox MB511 RGB.
Но и стоимость такой сборки соответствующая — около 3700 долларов.
Конечно, можно позволить себе отличную сборку, на которой будет приятно работать с большинством проектов, за минимум в 2 раза меньшую сумму. Например, она может выглядеть так:
- Процессор — AMD Ryzen 7 3700X.
- Оперативная память — 32 Гб (Corsair Vengeance LPX — 2х16 Гб).
- Видеокарта — GeForce RTX 2070.
- Материнская плата — GIGABYTE X570 GAMING X.
- Накопитель — SSD Samsung 970 PRO.
- Блок питания — Corsair CX550.
- Система охлаждения — AMD Wraith Prism.
- Корпус — Phanteks Full Tower Case ATX.
Главное, если хотите сэкономить, то не берите готовые сборки. Высока вероятность переплатить или взять в таком комплекте староватую деталь. Лучше попросите помощи у понимающего в железе знакомого, обратитесь в специализированную контору за индивидуальной сборкой, а лучше — разберитесь сами. Детально о нюансах и подводных камнях выбора железа для 3D-моделирования рассказывает Digy Zem на своём Youtube-канале:
И да, на ноутбуке тоже можно моделировать, если он соответствует минимальным требованиям программ.
Какой графический планшет подойдёт для 3D-моделирования
Для обычного 3D-моделирования хватит мыши с клавиатурой. Но если вы планируете заниматься скульптингом, то нужно вложить бюджет и на покупку планшета. Начинающему 3D-моделлеру хватит и WACOM Intuos S стоимостью около 7000 рублей.
А стоит ли оно того?
Согласно данным Statista, глобальный рынок дополненной реальности (AR), виртуальной реальности (VR) и смешанной реальности (MR) достигнет 30,7 млрд. долларов в 2021 году, а к 2024 году приблизится к 300 млрд. долларов. То есть за 4 года вырастет в 10 раз, что однозначно приведёт к увеличению востребованности специалистов по 3D-моделированию.
Проектирование виртуальных миров — реальная задача ближайшего будущего. Кроме того, 3D-моделлеры будут стабильно востребованы в промышленности, а количество сфер применения специальности только растёт. Поэтому, если вы в детстве мечтали создавать космические корабли, то вы к этому близки.
Если вернуться на Землю, то уже сейчас на HeadHunter по запросу «3D-моделирование» открыто 643 вакансии. В среднем зарплаты стартуют от 70 тысяч рублей и достигают 300 тысяч рублей, например, для должностей Lead 3D Artist и Motion Designer 2D/3D. Специалисты требуются в самых разных сферах и под самые разные задачи: от создания игровых персонажей и моделей ювелирных изделий в ZBRUSH, проектирования мебели в AutoCAD до моделирования результатов лечения в стоматологии, как дополнения к основной специальности врача.
Поэтому не редкость, что понимая потенциал отрасли, программисты перепрофилируются в 3D-моделлеров. Так что, если вы ощущаете тягу к работе с визуалом, то однозначно стоит попробовать себя в этой сфере.
С чего начать изучение 3D-моделирования
Всё предельно просто — скачать программы для моделирования и начать работу над интересными для себя проектами, которые пополнят портфолио.
Часто рекомендуют начинать с освоения работы в Blender, ведь он бесплатен, не займёт много памяти и по нему много туториалов. Но лучше всего скачать и «пощупать» побольше программ, и выбрать то, что больше всего понравится и подойдёт под ваши задачи. Определиться поможет статья «10 популярных программ для 3D-моделирования».
Когда вы определились с программой, можно приступать к детальному изучению интерфейсов, техник моделирования, текстурирования, в общем погружению в специальность с помощью всевозможных курсов, статей и книг. И не забывать, что просмотр видео о моделировании становится обучением только после применения материала на практике.
Если нет времени собирать знания по крупицам, то вас может заинтересовать Факультет 3D-моделирования и визуализации. За 12 месяцев вы поработаете во всех популярных программах, освоите базовые и профессиональные инструменты, а также сделаете 10 работ для портфолио и получите гарантию трудоустройства.
Источник: gb.ru
Просто о D3.js
70 тысяч звездочек на гитхабе и сотни интересных проектов. Кажется, что D3 это что-то большое и очень сложное, но это не так. Я расскажу об основах D3 и поделюсь опытом разработки инфографики Бюростат.
Что такое D3
D3 это не простая библиотека, где вызов функции с нужной конфигурацией строит график. D3 это набор инструментов для визуализации данных. Он состоит из нескольких десятков небольших модулей, каждый из которых решает свою задачу. Кроме модулей для построения различных фигур, внутри D3 есть модули для работы с элементами на странице (простой аналог jQuery), загрузкой данных (аналог fetch/$.ajax, заточенный под форматы csv, json, xml и другие), форматированием и масштабированием данных, математическими функциями и другим.
SVG
Визуализация в вебе, чаще всего, строится в векторном формате. Обычно в формате SVG. Он позволяет создавать простые фигуры и работать с ними: трансформировать, позиционировать и немного влиять через CSS. Простой пример:
Для построения простых фигур можно использовать теги rect, circle и еще несколько других.
Сложные фигуры строятся по координатам. Существует два варианта написания координат: абсолютный и относительный. В первом случае координаты считаются относительно всего графика, а во втором относительно последней точки. Весь путь записывается буквами и цифрами. Относительный вариант указывается буквой в нижнем регистре, абсолютный — в верхнем.
Начиная в точке 70 0, перемещаемся относительно этой точки на 0 пикселей по x и 30 по y. И еще раз. Начальная точка обозначается буквой M, следующая координата буквой l.
Вместо простых ломаных линий можно построить кривые. Например, кривую Безье можно построить так: C x1 y1, x2 y2, x y. Здесь x1,y и x,y начальная и конечная точки, а x2,y2 точка, через которую проходит кривая.
D3 поможет абстрагироваться от координат и строить полный путь, задумываясь только о данных.
Возможности d3
Данные
Самый простой пример, который можно написать на d3 это гистограмма. Поскольку все элементы в svg считаются от левого верхнего угла, столбики гистограммы рисуются сверху вниз
// Данные для визуализации в пикселях var data = [20, 100, 60, 40, 70] // Ширина столбика гистограммы var barWidth = 20 // Аналог document.querySelector(‘svg’) или $(‘svg’) d3.select(«svg») // Самая сложная для понимания часть. // D3 связывает еще не созданные элементы с данными. .selectAll(«rect») .data(data) .enter() // Код ниже выполнится 5 раз. Ровно столько у нас данных. // Добавляем прямоугольник тегом rect с нужной шириной, // высотой и координатами.
Код похож на jQuery. .append(«rect») .attr(«width», barWidth) .attr(«height», d => d) // Изначально все прямоугольники спозиционированы // абсолютно и находятся в координате 0,0 // Сдвигаем прямоугольники по оси x, на [barWidth * i] .attr(«x», (d, i) => barWidth * i)
Масштаб
Но, представим, что в качестве данных пришли даты. Их нужно трансформировать в координаты. Для этого понадобится модуль d3-scale.
var x = d3.scaleTime() // минимальное и максимальное значение х: 1 и 9 января 2017 года .domain([new Date(2017, 0, 1), new Date(2017, 0, 9)]) // ширина графика 1000 пикселей .range([0, 1000]) // Точка 5 января будет в координате 500 пикселей x(new Date(2017, 0, 5)) // 500
Координата y отображает цифры в пределе от 1 до 13 млн на ширине в 480 пикселей. Тогда точка 2 млн будет на координате 80
var y = d3.scaleLinear() .domain([1000000, 13000000]) .range([0, 480]); y(2000000); // 80
Модуль также позволяет высчитывать цвет относительно данных.
Подгрузка данных
d3.json, d3.json, d3.csv,… — аналог fetch или $.ajax с обработкой нужного формата данных.
d3.csv(‘data.csv’, (err, res) => < >)
Оси
Добавить отметки на осях позволяет модуль d3-axis. Буквально в две строчки.
g.append(«g») .call(d3.axisLeft(y))
События
Синтаксис D3 иногда похож на jQuery. Код ниже добавляет элемент li в список, который удаляется по клику на него.
d3.select(«ul») .append(«li») .on(‘click’, function (d) < d3.select(this) .remove() >)
Линия
D3 предоставляет некоторую абстракцию, которая помогает не думать над координатами.
var data = [ , ] // Масштабируем данные по x var x = d3.scaleTime() // d3.extent(data, d => d.date) возвратит массив // из максимального и минимального элементов .domain(d3.extent(data, d => d.date)) .range([0, width]) // Масштабируем данные по y var y = d3.scaleLinear() .domain(d3.extent(data, d => +d.value)) .range([height, 0]) // Объявляем функцию линию var line = d3.line() .x(d => x(d.date)) .y(d => y(d.value)) // Функция line сгенерирует последовательность координат path.attr(‘d’, line)
Другие графики
Чаще всего, сложная визуализация это набор простых фигур, текста и графиков, аккуратно спозиционированных на странице. Помимо простых линий в D3 есть достаточно инструментов для построения сложных графиков:
Бюростат
Инфографика состоит из трех уровней, в каждом из которых есть список имен, график и номера позиций. Номера позиций изначально скрыты и появляются по ховеру. Сверху находится ось с датами.
Сложности
Данные
Исходные данные хранились в эксель-файлах в открытом доступе. Их нужно было просто преобразовать в большой json-файл, высчитав позиции студента в нужный день. К сожалению, в данных был беспорядок. Небольшой список того, что нужно проверить в наборе данных:
- е и ё в разных местах
- несколько данных на один срок
- уменьшительно-ласкательные имена
- девушка вышла замуж и сменила фамилию
- разный формат заголовков
- случайное повторение людей
Кастомная линия
Линия в инфографике нестандартная: 15 пикселей на переход между датами, 15 пикселей прямая. В D3 изначально есть несколько вариантов кривых, их можно выбирать функцией curve.
var line = d3.line() .x(d => x(d.date)) .y(d => y(d.value)) .curve(d3.curveMonotoneX)
Нужной кривой среди дефолтных не оказалось. Но, к счастью, D3 позволяет создавать свои кастомные кривые. За основу я взял простую кривую и немного изменил.
function point(that, x, y) < // Если следующая точка выше текущей, // то кривая будет выпуклой, иначе вогнутой let concaveCenter = that._x1 — (that._x1 — that._x0) / 2 let convexCenter = that._x0 — (that._x0 — that._x1) / 2 let currentCenter = that._y1 >that._y0 ? convexCenter : concaveCenter // Кривая Безье о которой я писал выше. that._context.bezierCurveTo( concaveCenter, that._y0, currentCenter, that._y1, that._x1, that._y1 ) // 15 пикселей прямая that._context.lineTo(that._x1 + 15, that._y1) >
Выравнивание по центру
text-align:center в svg не работает, но существует аналог. Свойство text-anchor со значениями start, middle и end.
Прибитая к верху шапка
Даты должны быть прибиты к верху. Но обычный position:fixed не поможет, потому что блок с датами должен скроллиться по горизонтали. Решать задачу через js не стоит, потому что это будет тормозить. Есть способ решения через css. Достаточно запретить скролл страницы по вертикали и дать возможность скроллить вместо этого график.
z-index
В svg не работает свойство z-index. Z-index в svg рассчитывается из позиции элемента в коде. Чем позже элемент, тем выше он будет. В случае, если нужно вынести линию выше всех при ховере, придется пересортировать линии и вынести нужную наверх.
Но хуже всего, что этот метод в случае с линиями не поможет. Дело в том, что линия ховера определяется областью fill. А эта область строится между конечной и начальной точками. В итоге, если постоянно выносить линии наверх, то в графике получится бардак. Какая-нибудь линия обязательно перекроит другую.
Чтобы этого хауса в линиях не было, при ховер я выношу наверх не саму линию, а ее копию. После того, как ховер сместился на другую линию, предыдущую копию я удаляю.
Если мне нужно обработать клик по линии, то это нужно уже делать не на линии, а на копии.
Обводка у линии
stroke задает цвет линии, fill цвет заливки. Нормального способа сделать у линии обводку нет. outline, box-shadow, border не работают внутри svg. Самый простой способ сделать обводку — дублировать код. То есть подложить линию с цветом обводки под основную линию. Другой способ, через svg фильтры, не очень хорошо работает и не подходит, если обводку нужно сделать только сверху и снизу.
Ссылки
Рассказ дизайнера Миши Капанаги про Бюростат
Источник: habr.com
Введение в D3
D3.js (или просто D3) это JavaScript-библиотека для обработки и визуализации данных. Она предоставляет удобные утилиты для обработки и загрузки массивов данных и создания DOM-элементов. Эта заметка описывает работу с основными методами библиотеки, она подойдёт для изучения основ библиотеки и погружения в её логику и возможности.
Для понимания статьи пригодятся знания JS, HTML и CSS.
Текучий интерфейс (fluent interface)
D3 реализует подход, называемый fluent interface. При чтении кода он выглядит как цепочка методов. Каждый метод вызывается на объекте, который вернул предыдущий метод. Чтобы код было удобно читать, каждый вызов располагается на отдельной строчке:
d3.select(‘body’) // выбор в документе body .append(‘svg’) // добавление в body svg-контейнера .append(‘text’) // добавление в svg-контейнер элемента text .text(‘Click somewhere, please. ‘) // изменение текста в элементе text .attr(‘x’, 50) // задание координат элемента text .attr(‘y’, 50) .style(«fill»,»firebrick») // заливка текста цветом
Выборка
В D3, как и в других JS-библиотеках, работающих с DOM-элементами, взаимодействие с документом начинается с поиска элементов в документе и создания выборки — обёртки набора элементов. Она даёт доступ к методам библиотеки для модификации выбранных элементов.
Выборка (selection) в D3 создается с помощью методов d3.select() и d3.selectAll(). Для создания выборки D3 использует querySelector/querySelectorAll или Sizzle, если он подключён к странице (например, с jQuery).
d3.select(‘span’) // выбор первого span в документе d3.selectAll(‘span’) // выбор всех span в документе
Полученную выборку используют для работы с элементами и для создания выборки из потомков (subselection).
будет зеленым
будет красным эти будут жёлтыми
останется чёрным
d3.select(‘span’) // выбор первого span в документе .style(‘color’, ‘darkgreen’) // установка цвета d3.selectAll(‘p’) // выбор всех параграфов .selectAll(‘span’) // выбор всех span в этих параграфах. .style(‘color’, ‘goldenrod’) // установка цвета d3.select(‘p’) // выбор первого параграфа в документе .select(‘span’) // выбор первого span в этом параграфе .style(‘color’, ‘firebrick’) // установка цвета
Всегда помните, с какой выборкой вы сейчас работаете. Распространённые ошибки при работе с D3: вызов на элементе-потомке вместо родителя и попытка изменения свойств несуществующего (удаленного или ещё не созданного) элемента.
В примере уже используются операции над элементами (selection.style(name[, value])), дальше рассмотрим их более подробно.
Вычисление значений и функторы
- selection.classed(name, value) добавляет или удаляет класс name в зависимости от булевого значения value.
- selection.on(event, callback) используется для обработки событий, передавая название события event (например, «click») и функцию-обработчик callback. Функции-обработчики вызываются с текущим элементом в this, а также data и index в аргументах. Событие можно получить в переменной d3.event. Повторная установка обработчика заменит предыдущий.
var pressed = false var button = d3.select(‘button’) // выбор кнопки .on(‘click’, function (data, index) < // установка обработчика нажатия мыши button.classed(‘pressed’, pressed = !pressed) // в обработчике меняем значение переменной и вычисляем класс >)
Обратите внимание, что мы пользуемся сохранённой в переменную button выборкой: вызовы on (а так же classed, attr, style, property, html, text) возвращают выборку, на которой они вызваны, что типично для «текучих» интерфейсов.
- Если вы подадите значение, являющееся функцией, оно будет вызвано с параметрами data, index (см. ниже), а контекстом (объектом this) будет элемент, DOM-узел.
- Если вы подадите значение, не являющееся функцией, оно будет обёрнуто в «функтор» (функцию, всегда возвращающую переданное значение)
- Если вы не подадите значение, функция сработает как getter и вернёт значение, о котором идёт речь (например, selection.style(‘color’) вернёт цвет текста, если он установлен для элемента).
О последнем нюансе важно помнить, если вы строите цепочку вызовов (такой getter обычно должен быть последним элементом цепочки).
Важно понимать, что значения или функции используются один раз для каждого элемента в выборке, после чего D3 о них «забывает». Иными словами, изменения в наборе данных или события в документе не заставят D3 «повторно вычислить» значение, поэтому это поведение нужно задавать самостоятельно, как мы выше сделали с classed.
Обратите внимание на аргументы функции (data и index). Они имеют специальное значение: index — номер элемента в выборке, а data — заданный для него элемент данных. Присутствие этих параметров в каждой функции, вызываемой на выборке является одним из важнейших контрактов в D3. Это позволяет писать лаконичный код, вычисляющий состояния свойств элементов в зависимости от данных.
Типичная работа с выборкой
Рассмотрим популярные методы на более сложном примере, демонстрирующем работу с DOM-узлами документа через выборку:
var svg = d3.select(‘body’).append(‘svg’) svg .append(‘text’) .text(‘click somewhere’) .attr(‘x’, 50) .attr(‘y’, 50) var events = [] svg.on(‘click’, function () < events.push(d3.event) if (events.length >5) events.shift() var circles = svg.selectAll(‘circle’) .data(events, function (e) < return e.timeStamp >) .attr(‘fill’, ‘gray’) circles .enter() .append(‘circle’) .attr(‘cx’, function (d) < return d.x || d.pageX >) .attr(‘cy’, function (d) < return d.y || d.pageY >) .attr(‘fill’, ‘red’) .attr(‘r’, 10) circles .exit() .remove() >)
- Методы selection.html() и selection.text() задают или возвращают содержимое элементов в виде HTML или текста.
- Методы selection.style(), selection.attr() и selection.property() задают или возвращают CSS-свойства элемента, его аттрибуты и свойства. Чаще всего мы будем пользоваться style и attr, особенно при описании свойств новых элементов.
- Метод selection.remove() удаляет элементы текущей выборки.
- selection.append() добавляет потомка к каждому элементу текущей выборки.
- Переданные в selection.data() данные сохраняются в поле __data__ DOM-элемента, при вызове методов на выборке происходит их извлечение из элемента.
- Получить или записать данные в один элемент можно, используя selection.datum().
Связанные множества
В примере особое внимание стоит обратить на метод data(). В отличие от других методов он возвращает модифицированную выборку, хранящую помимо списка элементов соответствие данных элементам. В переводе статьи Thinking with Joins мы подробно рассказываем о методах enter() и exit() которые есть у такой выборки и возможностях которые они дают.
Анимация и настройка
Анимировать изменение свойств элемента в D3 легко, нужно вызвать метод selection.transition(). Этот метод возвращает выборку, которая постепенно изменяет текущие значения на новые, создавая анимационный эффект. Длительность анимации задаётся методом transition.duration().
Добавим анимацию при добавлении и удалении элементов в предыдущий пример:
var svg = d3.select(‘body’).append(‘svg’) svg .append(‘text’) .text(‘click here’) .attr(‘x’, 50) .attr(‘y’, 50) var events = [] svg.on(‘click’, function () < events.push(d3.event) if (events.length >5) events.shift() var circles = svg.selectAll(‘circle’) .data(events, function (e) < return e.timeStamp >) .attr(‘fill’, ‘gray’) circles .enter() .append(‘circle’) .attr(‘cx’, function (d) < return d.x || d.pageX >) .attr(‘cy’, function (d) < return d.y || d.pageY >) .attr(‘fill’, ‘red’) .attr(‘r’, 0) // Начальное значение .transition() .duration(1000) // Длительность перехода от начального значения к конечному .attr(‘r’, 10) // Конечное значение circles .exit() .transition() .attr(‘r’, 0) .remove() >)
В этой статье я рассказал о возможностях D3 по работе с выборками. Следующие заметки планирую посвятить утилитам для обработки и загрузки данных, рисованию наборов SVG-элементов и созданию интерактивных элементов визуализации.
Я преподаю D3 на курсе «Визуализация данных». Если вы хотите освоить этот инструмент и начать применять его в своей работе, приходите к нам. Ближайший курс пройдёт в Москве в эти выходные, запись и отзывы участников январского курса: http://brainwashing.pro/dataviz.
- Блог компании Лаборатория данных
- JavaScript
- Визуализация данных
Источник: habr.com
3D моделирование что это и для чего нужно?
Что такое 3D моделирование – это процесс формирование виртуальных моделей, позволяющий с максимальной точностью продемонстрировать размер, форму, внешний вид объекта и другие его характеристики. По своей сути это создание трехмерных изображений и графики при помощи компьютерных программ. Современная компьютерная графика позволяет воплощать очень реалистичные модели, кроме того создание 3D-объектов занимает меньше времени, чем их реализация. 3D технологии позволяют представить модель со всех ракурсов и устранить недостатки выявленные в процессе её создания.
3D МОДЕЛИРОВАНИЕ : ОБЩИЕ ПОНЯТИЯ
Визуализация объектов с помощью компьютерных программ позволяет лучше представить будущий проект в реальности. Такие модели производят глубокое впечатление, и дают возможность добиться потрясающих результатов. Моделирование с помощью 3D технологий отличное решение для многих промышленных, строительных, ювелирных предприятий, а в особенности дизайнерских студий и развлекательной индустрии. 3D моделирование, визуализация и анимация объектов занимают главное место в реализации многих бизнес-проектов.
ВИДЫ МОДЕЛИРОВАНИЯ
Моделирование представляет собой соединение разных наборов точек с геометрическими фигурами и линиями для создания моделей. Существует два его вида:
– воксельное, используется в основном в медицине в качестве сканеров или томографов;
– полигональное, универсально и используется во многих областях, с помощью него создаются модели для любых предназначений.
При выборе технологической составляющей 3D моделирования стоит ориентироваться на имеющееся программное обеспечение. Многообразие и характерные особенности компьютерных программ заслуживают отдельного внимания. Правильно выбранный функционал ПО поможет безошибочно выполнить любой проект. Например в 3D max моделировании трудно выполнить развертку и корректно наложить текстуру на объект, но вы с легкостью сможете найти инструменты для их выполнения в другой программе.
Проекты с большим уровнем сложности имеют разделение на визуализацию и моделирование, поэтому для данной работы необходимо иметь определенный объем навыков и знаний.
ПРОГРАММЫ ДЛЯ 3D МОДЕЛИРОВАНИЯ
На сегодняшний момент разработаны различные программы для 3D моделирования. Их список постоянно пополняется, ведь компании создающие данное ПО хотят охватить как можно большую аудиторию потребителей, поэтому с появлением новых потребностей к специфике программы, они создают новые приложения. Среди них существуют как платные, так и бесплатные программы для 3D моделирования. К лидерам первой категории относятся 3D max, Maya, AutoCad, Cinema 4D, Компас 3D, Rhinoceros, а ко второй стоит отнести Blender 3D моделирование, Wings3D и Google SketchUp. Рассмотрим более детально каждый из этих продуктов:
3D max – популярнейшая программ, является профессиональной и имеет полноценный функционал. Используется для создания мультипликационного монтажа, анимации и трехмерной графики. Имеет ряд инструментов для создания моделей различной сложности. С её помощью можно получить любой виртуальный объект с точностью до мелочей и в последствии применить к нему анимацию. Есть платная и бесплатная студенческая версии программы.
Maya – профессиональное ПО используемое кинематографом и разработчиками игр. Она имеет разнообразные ресурсы для получения качественных и реалистичных 3D- моделей.
AutoCad – создана для впечатляющего 2D и 3D моделирования и выпускается на 18 языках. Здесь проработанный и понятный даже новичку интерфейс. В ней можно воссоздать модель при помощи 2D инструментов, а в последствии дополнить её в трехмерном функционале. Также можно моделировать отдельные объекты и целые комплексы, а также создавать текстуры для игр.
Cinema 4D – универсальная программа разработанная для трехмерного моделирования и анимации. Имеет различный функционал и обладает простым интерфейсом, к тому же он имеет русский язык, что несомненно делает ее очень популярной среди русскоязычных потребителей.
Компас 3D – ПО для объемного моделирования. Она имеет математическое ядро и замечательно подходит для реализации инженерных проектов. Программа может не только построить модель, но и выполнит расчеты и анализ для дальнейшего её изготовления. Имеет поддержку русского языка.
Rhinoceros – используется для 3D моделирования в архитектуре, проектировании кораблей, в разработке дизайна для ювелирных организаций и автопрома, а также мультимедиа. Свою популярность она получила благодаря богатому функционалу и возможности импорта и экспорта файлов различного формата.
Blender – программа для 3D моделирования, рендеринга, анимации, монтажа и постобработки. Кроме имеющего функционала, она сможет поддерживать другие плагины, которые помогают увеличить её возможности. Имеет файл для начинающих обучение 3D моделированию.
Wings3D – самая простое ПО для трехмерного моделирования, в которой можно работать с несложными моделями. Минимальный и доступный интерфейс значительно облегчает работу начинающим специалистам. Кроме этого при помощи открытого кода программу можно модифицировать.
Google SketchUp – позволяет создавать и редактировать различные варианты моделей. При мощи данной программы к ним можно добавлять новые элементы и текстуры. Обладает широким набором инструментов для создания объектов различной сложности.
Представленный список программ является далеко не полным и при желании профессионально заниматься и получить необходимые уроки 3D моделирования вы можете самостоятельно подобрав подходящее ПО. Трехмерное моделирование – это поистине уникальная технология, за которой лежит будущее многих бизнес-проектов. Оно предоставляет всему человечеству потрясающие возможности воплощения в полной мере будущего объекта. Внедрение таких технологий ведет к экономии ресурсов, упрощению работ и расширению возможностей.
На данный момент очень популярным становится создание 3D-моделей при помощи 3D сканера, который способен воплотить до мельчайших тонкостей трехмерные модели существующих объектов и получить информацию об их характеристиках в цифровом виде на компьютере. Об этом поговорим в других статьях.
Источник: websoftex.ru
Блог
3D-моделирование — это по сути создание трехмерных компьютерных изображений и графики.
Для создания 3D-моделей используют такие программы, как The Brush, Autodesk Maya и 3ds Max и другие. Если же модели должны еще и двигаться, то их создателю также может понадобиться умение писать код.
Основной процесс моделирования представляет собой соединение наборов точек с линиями и полигональными фигурами для создания каркасных моделей.
3D-моделирование — занятие для вас?
Изучение 3D программ — занятие не из легких, поэтому прежде чем к нему приступить, решите для себя, действительно ли вы хотите и можете заниматься 3D-моделированием.
Одна из наиболее существенных черт, присущих профессионалам 3D-графики, — это креативность.
Подобно рисованию и анимации, сфера 3D-моделирования требует богатого воображения и нестандартного мышления для создания необычных персонажей и миров, которые будут выделяться среди остальных.
Работа 3D-моделиста также требует пристального внимания к деталям, терпеливости и усидчивости, т.к. каждая модель долго и тщательно прорабатывается, «полируется» и доводится до совершенства.
Как я уже написал выше, 3D-программы нельзя отнести к легким для изучения, к тому же обучение 3D-моделированию может оказаться для вас особенно трудным, если вы не дружите с компьютером и операционной системой и не умеете оперативно выполнять любые задачи.
3D-моделирование более всего подойдет тем, кто любит работать в команде. Работая в большой игровой студии, вам обязательно придется тесно сотрудничать с художниками, аниматорами и другими участниками проектов.
Поскольку индустрия видеоигр весьма требовательна и бескомпромиссна, вероятно, работа в ней не подойдет людям, которые не могут существовать в жестких временных рамках и проводить много времени на рабочем месте.
Как изучать 3D-моделирование?
Конечно, наиболее прямая дорога в индустрию видеоигр лежит через получения профильного образования в колледже или институте. Тем не менее, многие специалисты, работающие в этой сфере, обучались 3D моделированию самостоятельно или прошли краткосрочные курсы.
В серьезном учебном заведении или на курсах вам передадут не только основополагающие принципы 3D-моделирования, но и ясное представление о том, что для того чтобы преуспеть в этой профессии, вам необходимо выгодно выделяться из общей массы коллег.
При выборе курса также важно поинтересоваться, какие работы выпускник будет иметь в портфолио на выходе. Желательно чтобы непосредственно после окончания учебы их можно было показать потенциальным работодателям.
Карьера и области применения 3D-моделирования
Сегодня 3D-моделирование находит множество областей применения.
Медицинская промышленность использует подробные 3D-модели органов, в том числе снимки срезов из компьютерной томографии или МРТ-сканирования.
Архитекторы и инженеры также используют 3D-программы для демонстрации проектов зданий, ландшафтов, устройств, конструкций, транспортных средств и т. д.
Даже ученые начали использовать трехмерные геологические модели. Сейсмологи, например, используют их для прогнозирования событий внутри земной коры из-за смещения пластин, эрозии и т. д.
Несомненно, большинство людей проявляют сегодня интерес к 3D-моделированию благодаря двум крупнейшим индустриям развлечений.
Первой является кино и видео, в которых используются созданные на компьютере персонажи, объекты и пространства. Это могут быть как анимационные, так и обычные фильмы.
Другая отрасль — видеоигры. В большинстве современных игр используются 3D-модели и пространства для создания виртуальных миров, погружаясь в которые игроки не только играют, но и изучают ту или иную сферу деятельности.
Хотите понять, насколько вам интересна тема создания 3D-персонажей?
В ближайшее время в нашей Виртуальной школе графического дизайна начнется запись на новый онлайн-тренинг по созданию 3D игровых персонажей.
Источник: creativshik.com