Comments 10
Попытки неподдерживаемых кустарных переводов живых спецификаций в большинстве случаев — это абсолютное зло. Не обижайтесь, но, на мой взгляд, было бы куда интереснее почитать о практических кейсах и подводных камнях (раз уж автор позиционирует себя, как специалист, с личным опытом использования glTF в Facebook, Oculus, UE и Microsoft).
Здесь я старался объединить мои знания о практической реализации и несколько документаций, поэтому, с большего, данные статьи выглядят как перевод, хотя это не совсем так. Некоторых «лингвистических уродцев» я решил не переводить как раз из-за того, что в обиходе понятнее использовать именно их, а к примеру слово «сетка», в отличии от «меша», под которым обычно подразумевает «полигональный меш/сетку», может трактоваться не однозначно.
К практическим случая можно и нужно переходить, но мне кажется рано это делать без рассказа об основах данного формата. К сожалению я не нашёл на территори ру нета такой информации и решил исправить данное упущение, ведь вещь действительно стоящая.
Тут хороший пример — документация и интерфейсы самолетов, которые принципиально никогда не переводят с английского (если мы говорим о гигантах вроде Boeing, Airbus, Bombardier, Embraer).
В IT-сфере проблемы переводов документации упираются во-первых в трудности с поддержкой (ситуация «спека поменялась, а перевод актуализировать некому»), а во-вторых в тот факт, что большая часть описанного практического опыта чаще всего лежит в англоязычном пласте информации. Как следствие, специалистам проще оперировать английской терминологией и переводы выглядят чужеродно и искуственно.
В целом я двумя руками «за» переводы статей с практическим опытом и резко против кустарных неподдерживаемых переводов спецификаций и документации.
Но это все мое imho, конечно. А в чем, с вашей точки зрения, необходимость перевода документации того же three.js?
Roughness или «шероховатость». Данный атрибут отображает насколько “шероховата” поверхность, тем самым воздействуя на рассеяние света от поверхности. Измеряется от 0 до 1, где 0 — идеально плоская, а 1 — полностью шероховатая поверхность, которая отражает лишь небольшое количество света.
Тут в конце ошибка. Roughness — это не количество отражаемого света, а именно рассеивание (как вы написали выше). Это значит, что roughness со значением 1 максимально сильно рассеивает свет так что на поверхности не видно никаких бликов. На количество рассеиваемого света влияет baseColorFactor/baseColorTexture в паре с metallicFactor
Пример со значениями roughness, слева направо: 0, 0.5, 1.
Как мне понять какие примитивы связаны с костью скелета?
Кости не имеют ссылок на меши. Вот я нашел кость ноги (upperleg). Это нода, на которую есть ссылка в joints в скине (допустим он у нас один).
Я хочу изменить положение ноги, допустим поднять - если я меняю это положение, то у меня изменится положение скелета. Если я не обновлю inverseBindMatrix, то у меня получается что-то странное. Если меняю - то у меня модель остается как прежде, а скелет уже по-новому.
А мне надо что бы и скелет и примитивы были изменены. Что бы я сохранил модель, загрузил в каком-нибудь стороннем приложении и оно было как надо.
Просто если я хочу развернуть модель - я прохожусь по всем мешам и примитивас, а так же по joints-нодам в скине, одинаково меняю - и у меня вся модель поворачивается. но как повернуть только одну часть (руку, ногу, голову и т.д.) не очень понятно
Основы формата GLTF и GLB, часть 2