#сниппет #threejs #js #webgl #deviceorientation
Так как на эту задачу было потрачено больше 5-ти минут то положу сюда сниппет по тому, как правильно забирать данные с гироскопа (тут нет части с тем, как правильно забирать разрешения на ios) Но по разрешениям:
1) DeviceOrientationEvent не работает без https
2) DeviceOrientationEvent не работает в iframe
3) DeviceOrientationEvent можно запросить только по действию пользователя, типа клика на кнопку
Пересчёт кватерниона ориентации устройства:
Так как на эту задачу было потрачено больше 5-ти минут то положу сюда сниппет по тому, как правильно забирать данные с гироскопа (тут нет части с тем, как правильно забирать разрешения на ios) Но по разрешениям:
1) DeviceOrientationEvent не работает без https
2) DeviceOrientationEvent не работает в iframe
3) DeviceOrientationEvent можно запросить только по действию пользователя, типа клика на кнопку
Пересчёт кватерниона ориентации устройства:
function getQuaternion( alpha, beta, gamma ) {
let degtorad = Math.PI / 180;
let _x = beta ? beta * degtorad : 0;
let _y = gamma ? gamma * degtorad : 0;
let _z = alpha ? alpha * degtorad : 0;
let cX = Math.cos( _x/2 );
let cY = Math.cos( _y/2 );
let cZ = Math.cos( _z/2 );
let sX = Math.sin( _x/2 );
let sY = Math.sin( _y/2 );
let sZ = Math.sin( _z/2 );
let w = cX * cY * cZ - sX * sY * sZ;
let x = sX * cY * cZ - cX * sY * sZ;
let y = cX * sY * cZ + sX * cY * sZ;
let z = cX * cY * sZ + sX * sY * cZ;
return [ w, x, y, z ];
}
Применение в three.js:window.addEventListener('deviceorientation',(event) => {
let threeQuaternion = new Matrix3();
let quat = getQuaternion(event.alpha, event.beta, event.gamma);
threeQuaternion.w = quat[0];
threeQuaternion.x = quat[1];
threeQuaternion.y = quat[2];
threeQuaternion.z = quat[3];
this.camera.setRotationFromQuaternion(threeQuaternion);
this.camera.rotation.x -= Math.PI / 2;
});
Важно добавить к повороту по X пи пополам (90 градусов в радианах), так как по умолчанию ориентация устройства (по крайней мере на ios) будет смотреть вперёд, когда камера телефона смотрит внизThis media is not supported in your browser
VIEW IN TELEGRAM
А нужно это для подобного управления в браузере :)
Дешёвый эффект объёма
На чём на чём, а на визуализации данных я за последние годы собаку съел, и на оптимизациях для подобных задач. Да, Unity применяет не только для игр, а для достаточно большого спектра бизнес задач. Например визуализация трёхмерных графов. И когда задача отобразить 10, 100, 1000 объектов, то всё довольно просто. Но что если объектов 100к? Обычные Unlit шейдеры будут давать плоскую картинку и эффект объёма будет теряться
На самом деле одно из забавных наблюдений на тему объёма и его восприятия. По сути — светотень это обычный градиент (вот открытие). Но какой эффект может дать такой же плавный градиент в зависимости от формы 3д объекта? Эффект френеля. Это очень забавный чит, но эффект френеля с очень простой математикой заставляет объекты выглядеть объёмно. И вот уже мы можем отрисовать сотни тысяч кубиков, сфер и т.п. Чего часто достаточно для той же визуализации трёхмерного графа
o.fresnel = _FresnelBias + _FresnelScale * pow(1 + dot(i, v.normal), -_FresnelPower);
И вот наш объект уже обладает объёмом. Да, это не честная светотень, но с точки зрения восприятия данных (да и некоторых других случаев и этого достаточно) :)
На чём на чём, а на визуализации данных я за последние годы собаку съел, и на оптимизациях для подобных задач. Да, Unity применяет не только для игр, а для достаточно большого спектра бизнес задач. Например визуализация трёхмерных графов. И когда задача отобразить 10, 100, 1000 объектов, то всё довольно просто. Но что если объектов 100к? Обычные Unlit шейдеры будут давать плоскую картинку и эффект объёма будет теряться
На самом деле одно из забавных наблюдений на тему объёма и его восприятия. По сути — светотень это обычный градиент (вот открытие). Но какой эффект может дать такой же плавный градиент в зависимости от формы 3д объекта? Эффект френеля. Это очень забавный чит, но эффект френеля с очень простой математикой заставляет объекты выглядеть объёмно. И вот уже мы можем отрисовать сотни тысяч кубиков, сфер и т.п. Чего часто достаточно для той же визуализации трёхмерного графа
o.fresnel = _FresnelBias + _FresnelScale * pow(1 + dot(i, v.normal), -_FresnelPower);
И вот наш объект уже обладает объёмом. Да, это не честная светотень, но с точки зрения восприятия данных (да и некоторых других случаев и этого достаточно) :)
🔥4
VertexColorUnlit.shader
1.8 KB
#shader #unity #freshnel
Полный код шейдера с возможностью покраски через цвет вершин (вдруг кому пригодится)
Полный код шейдера с возможностью покраски через цвет вершин (вдруг кому пригодится)
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
В целом с помощью правильных шейдеров на примитивах можно делать всякую разную красоту :)
👍3🔥1
5 лет на вольных хлебах
Как я подумал, интересно будет ещё периодически писать про работу. А то тут будет слишком много кода. Итак, я ушёл с последней официальной работы порядка 5 лет назад. Хотя и до этого я успел побывать инди разработчиком, что тоже забавный опыт. Поиск издательства. Построение продакшена разработки игры с абсолютно нулевым пониманием, как это делается. В текущей точке это кажется какой-то безумной авантюрой, но до сих пор визуал игры которую мы тогда делали греет мне душу (скину ниже картиночку)
Два года я провёл на фрилансе, потом открыл свою студию и закрыл в последствии, сейчас я занимаюсь чем-то вроде продюсирования (самый простой аналог — кино индустрия). Чтож, можно написать что-то про самый первый этап — фриланс, и дать несколько небольших советов, кому интересно. Ну и плюс можно написать про плюсы и минусы с сугубо моей точки зрения)
Первое довольно банальный совет — сначала стоит побывать в офисе, причём какое-то ощутимое время (хотя бы год), причём лучше в крупной компании. Я вышел в фриланс с 2 годами опыта работы за плечами. От крупных студий до стартапов. И в разы проще работается, когда ты понимаешь процессы, и как они строятся. Их можно конечно выработать самостоятельно, но проще поучиться у опытных :)
Второй самый важный совет. Ваши контакты должны быть везде. И их нужно всегда указывать. Меня находили по гитхабу, аккаунтам на фриланс биржам и многим другим источникам, так как у меня везде указаны контакты. Совет звучит банально, но тем не менее многие почему-то про это забывают :)
Правда хотя за всю карьеру на фрилансе я брал всего парочку заказов с бирж, но в целом лучше и там завести аккаунты максимально подробно описать профиль, так как даже там меня находили.
Третий совет, разберитесь базово в документообороте. Нет ничего сложного в оформлении самозанятого (теперь) или даже оформлении ИП (просто сейчас смысла мало). Но желательно уметь работать с документами на базовом уровне. Хороший заказчик всё объяснит и покажет, но на самом деле так далеко не всегда. В плане налогов всё в целом довольно просто, так как любой банк сейчас всё считает за вас. А скажем так, на больших и интересных проектах никто не работает без договоров :)
В целом у фриланса много и плюсов, и минусов. Я никогда не понимал до конца проблему с дисциплиной, так как когда сделаешь Х и тебе заплатят денюшку, есть довольно простой мотиватор работать быстрее. В этом плане тут мотивация в разы проще, чем на той же работе) Может потом ещё по ряду аспектов чуть подробнее напишу, если кому-то интересно :) А, ну и да, Unity фриланса достаточно много и он есть. Правда в основном не игровой, а ориентированный на другие индустрии :)
Как я подумал, интересно будет ещё периодически писать про работу. А то тут будет слишком много кода. Итак, я ушёл с последней официальной работы порядка 5 лет назад. Хотя и до этого я успел побывать инди разработчиком, что тоже забавный опыт. Поиск издательства. Построение продакшена разработки игры с абсолютно нулевым пониманием, как это делается. В текущей точке это кажется какой-то безумной авантюрой, но до сих пор визуал игры которую мы тогда делали греет мне душу (скину ниже картиночку)
Два года я провёл на фрилансе, потом открыл свою студию и закрыл в последствии, сейчас я занимаюсь чем-то вроде продюсирования (самый простой аналог — кино индустрия). Чтож, можно написать что-то про самый первый этап — фриланс, и дать несколько небольших советов, кому интересно. Ну и плюс можно написать про плюсы и минусы с сугубо моей точки зрения)
Первое довольно банальный совет — сначала стоит побывать в офисе, причём какое-то ощутимое время (хотя бы год), причём лучше в крупной компании. Я вышел в фриланс с 2 годами опыта работы за плечами. От крупных студий до стартапов. И в разы проще работается, когда ты понимаешь процессы, и как они строятся. Их можно конечно выработать самостоятельно, но проще поучиться у опытных :)
Второй самый важный совет. Ваши контакты должны быть везде. И их нужно всегда указывать. Меня находили по гитхабу, аккаунтам на фриланс биржам и многим другим источникам, так как у меня везде указаны контакты. Совет звучит банально, но тем не менее многие почему-то про это забывают :)
Правда хотя за всю карьеру на фрилансе я брал всего парочку заказов с бирж, но в целом лучше и там завести аккаунты максимально подробно описать профиль, так как даже там меня находили.
Третий совет, разберитесь базово в документообороте. Нет ничего сложного в оформлении самозанятого (теперь) или даже оформлении ИП (просто сейчас смысла мало). Но желательно уметь работать с документами на базовом уровне. Хороший заказчик всё объяснит и покажет, но на самом деле так далеко не всегда. В плане налогов всё в целом довольно просто, так как любой банк сейчас всё считает за вас. А скажем так, на больших и интересных проектах никто не работает без договоров :)
В целом у фриланса много и плюсов, и минусов. Я никогда не понимал до конца проблему с дисциплиной, так как когда сделаешь Х и тебе заплатят денюшку, есть довольно простой мотиватор работать быстрее. В этом плане тут мотивация в разы проще, чем на той же работе) Может потом ещё по ряду аспектов чуть подробнее напишу, если кому-то интересно :) А, ну и да, Unity фриланса достаточно много и он есть. Правда в основном не игровой, а ориентированный на другие индустрии :)
👍6
Ваша игра должна работать в терминале
Когда-то давно я выработал для себя базовую проверку хорошего разделения представления и логики. Игра должна работать в терминале. И тогда действительно логика отделена от представления. Когда от визуала ничего не зависит, то логику можно перенести куда угодно. На сервер закрыв REST API или GRPC и т.п.
Но что же делать со снарядами и заклинаниями, которые летят куда-то? Они так же должны быть логическими. Для простоты восприятия разделим всё на 2 шага. Процессинг и постпроцесс. На шаге процессинга у нас отрабатывает физика, объекты как-то перемещаются (в контексте юнити трансформы) и т.п. А не стадии пост процессинга к ним уже подтягивается графика. Условно так работает к примеру Nvidia Flex. Есть слой симуляции который состоит из условно кучи шариков, и слой отрисовки, который по положениям этих шариков в каждом кадре отрисовывает финальную картинку :) Так что сначала мы на логическом слое определяем где у нас снаряд, а потом передаём эти данные в визуализацию :)
Когда-то давно я выработал для себя базовую проверку хорошего разделения представления и логики. Игра должна работать в терминале. И тогда действительно логика отделена от представления. Когда от визуала ничего не зависит, то логику можно перенести куда угодно. На сервер закрыв REST API или GRPC и т.п.
Но что же делать со снарядами и заклинаниями, которые летят куда-то? Они так же должны быть логическими. Для простоты восприятия разделим всё на 2 шага. Процессинг и постпроцесс. На шаге процессинга у нас отрабатывает физика, объекты как-то перемещаются (в контексте юнити трансформы) и т.п. А не стадии пост процессинга к ним уже подтягивается графика. Условно так работает к примеру Nvidia Flex. Есть слой симуляции который состоит из условно кучи шариков, и слой отрисовки, который по положениям этих шариков в каждом кадре отрисовывает финальную картинку :) Так что сначала мы на логическом слое определяем где у нас снаряд, а потом передаём эти данные в визуализацию :)
🔥1
Григорий Дядиченко
Ваша игра должна работать в терминале Когда-то давно я выработал для себя базовую проверку хорошего разделения представления и логики. Игра должна работать в терминале. И тогда действительно логика отделена от представления. Когда от визуала ничего не зависит…
Скажем этот подход очень сильно помогал, когда я разрабатывал механику невесомости в VR и в целом VR проекты с руками пользователя. У нас есть пользователь и руки. Так как руки мы отслеживаем, а виртуальные стены не останавливают реальную руку, то тут сразу приходит в голову одна механика. Отталкиваться от стен в невесомости. Пусть стены не жёсткие, но когда мы упираемся в них мы отталкиваемся. И тут есть нюанс, что визуально проходящая рука сквозь стену не смотрится. Поэтому как это работало?
Есть виртуальная стена, виртуальная рука и позиция реальной руки. Когда реальная рука заходит за стену, виртуальная остаётся перед стеной и упирается в неё по правилу проекции между локтём и кистью на стену. А вектор выталкивающей силы рассчитывается по расстоянию между виртуальной и реальной рукой. И получается достаточно забавная механика. И выглядит хорошо, и ощущается прикольно. Но если в этом случае логику и представление не разделить, то очевидно что рука будет просто проваливаться в стену и ощущаться это будет странно :)
Есть виртуальная стена, виртуальная рука и позиция реальной руки. Когда реальная рука заходит за стену, виртуальная остаётся перед стеной и упирается в неё по правилу проекции между локтём и кистью на стену. А вектор выталкивающей силы рассчитывается по расстоянию между виртуальной и реальной рукой. И получается достаточно забавная механика. И выглядит хорошо, и ощущается прикольно. Но если в этом случае логику и представление не разделить, то очевидно что рука будет просто проваливаться в стену и ощущаться это будет странно :)
Niantic купил 8wall https://nianticlabs.com/blog/welcome-8thwall/
Для тех кто не в курсе :) 8 стена — это практически единственное приличное Web AR SDK поддерживающее отслеживание устройства в пространстве в вебе. Которое правда стоит космических денег. В целом я даже рад этой новости, в особенности тому что восьмую стену купила компания, которая занимается продажей своего AR SDK https://lightship.dev/
Почему? Была такая замечательная компания, как IKinema которую купил Apple. А у IKinema в свою очередь был классный продукт за 400 фунтов если я не ошибаюсь под названием IKinema Orion. Который позволял делать самый дешёвый full body motion capture https://www.youtube.com/watch?v=Khoer5DpQkE То есть при желании его могли себе позволить даже небольшие студии, так как сетап там стоил не так дорого. Но после покупке айкинемы эплом теперь на рынке просто нет их продуктов, что печально
А как бы я не относился к 8wall, больше продуктов на рынке — лучше. И надеюсь 8 стена никуда не пропадёт :)
Я ещё советую сходить на сайт и посмотреть демку. Они её очень круто сделали :)
Для тех кто не в курсе :) 8 стена — это практически единственное приличное Web AR SDK поддерживающее отслеживание устройства в пространстве в вебе. Которое правда стоит космических денег. В целом я даже рад этой новости, в особенности тому что восьмую стену купила компания, которая занимается продажей своего AR SDK https://lightship.dev/
Почему? Была такая замечательная компания, как IKinema которую купил Apple. А у IKinema в свою очередь был классный продукт за 400 фунтов если я не ошибаюсь под названием IKinema Orion. Который позволял делать самый дешёвый full body motion capture https://www.youtube.com/watch?v=Khoer5DpQkE То есть при желании его могли себе позволить даже небольшие студии, так как сетап там стоил не так дорого. Но после покупке айкинемы эплом теперь на рынке просто нет их продуктов, что печально
А как бы я не относился к 8wall, больше продуктов на рынке — лучше. И надеюсь 8 стена никуда не пропадёт :)
Я ещё советую сходить на сайт и посмотреть демку. Они её очень круто сделали :)
Nianticlabs
Welcoming WebAR Development Platform 8th Wall To Niantic
Как похорошела налоговая
В этом году ввели новые правила по получению электронной подписи. Если коротко, чтобы подписывать документы удалённо теперь нужно оформлять ЭЦП в налоговой. И мне кажется, что многие вещи недостаточно хвалят :)
Сначала я расстроился, так как раньше типа в квалифицированный центр отправил запрос и тебе за пару недель сделали. А налоговая и любой поход в неё всегда был приключением под названием "минус день с нервами". И сейчас я прям удивился. 20 минут и всё готово, подпись на 15 месяцев, которую можно обновлять удалённо через личный кабинет. И никуда не надо ездить. Конечно может так только в Москве, но налоговая стала такой же классной, как московские МФЦ, что не может не радовать. Все на позитиве, всё подсказали, и не ждёшь неделю (я думал, что уже на этой неделе я никакие документы электронно не подпишу) А подпись готовится правда 20 минут, потом приходишь домой, и если настроен электронный документооборот, то просто вставляешь флешку в комп и вуаля — It's Alive! Причём эта электронная подпись теперь универсальная, и подходит не только для подписи всяких договоров, но и много для чего ещё. Ну кайф же :) Не скажу, что все проблемы с налоговой решились, но это приятно порадовало :)
Ну и да, я конечно как параноик эту флешку-токен купил заранее, но в целом прям в налоговой есть вендинговый аппарат их продающий :) Осталось для полного счастья чтобы привели в порядок совершенно ужасный КриптоПро :)
В этом году ввели новые правила по получению электронной подписи. Если коротко, чтобы подписывать документы удалённо теперь нужно оформлять ЭЦП в налоговой. И мне кажется, что многие вещи недостаточно хвалят :)
Сначала я расстроился, так как раньше типа в квалифицированный центр отправил запрос и тебе за пару недель сделали. А налоговая и любой поход в неё всегда был приключением под названием "минус день с нервами". И сейчас я прям удивился. 20 минут и всё готово, подпись на 15 месяцев, которую можно обновлять удалённо через личный кабинет. И никуда не надо ездить. Конечно может так только в Москве, но налоговая стала такой же классной, как московские МФЦ, что не может не радовать. Все на позитиве, всё подсказали, и не ждёшь неделю (я думал, что уже на этой неделе я никакие документы электронно не подпишу) А подпись готовится правда 20 минут, потом приходишь домой, и если настроен электронный документооборот, то просто вставляешь флешку в комп и вуаля — It's Alive! Причём эта электронная подпись теперь универсальная, и подходит не только для подписи всяких договоров, но и много для чего ещё. Ну кайф же :) Не скажу, что все проблемы с налоговой решились, но это приятно порадовало :)
Ну и да, я конечно как параноик эту флешку-токен купил заранее, но в целом прям в налоговой есть вендинговый аппарат их продающий :) Осталось для полного счастья чтобы привели в порядок совершенно ужасный КриптоПро :)
👍4
Это нормально чего-то не знать и чем приколен фриланс
Большой бич современной разработки — это синдром самозванца. Появляется он по логичным причинам. Вот вы несколько лет в разработке, и вам платят действительно много денег, рост обычно очень быстрый. Думаю ни для кого не секрет (да простит меня HR) в целом в современном рынке выгодно хотя бы раз в год менять работу. Если вы не попали на работу мечты, то раз в год меняя работу вы будете в расти в разы быстрее, чем сидя на одном месте. На одном и том же месте вам почти никогда не дадут такого же повышения, как при смене места работы (речь конечно же про разработчиков)
Но многих на данном пути косит — неуверенность в себе. Так вот, как человек сделавший больше 50 коммерческих проектов разных масштабов расскажу вам страшную тайну. Ни один разработчик не знает всё, даже в рамках своей технологии. И не то, чтобы всего, даже всех нюансов в том, чем он занимается на работе каждый день. К этому надо стремиться, но сейчас программирование это глубокая и сложная область, которая постоянно меняется и следить вообще за всем просто невозможно. Даже создатели языков не знают всё про свои языки. То же юнити разрабатывается огромной командой, поэтому досконального знания как работает каждый отдельный модуль нет у самих разработчиков
Печально да? Да нет, у этого всего есть огромный плюс. Технологии не нужно знать досконально чтобы решать бизнес задачи. Учиться надо постоянно (хотя я бы больше рекомендовал учиться в ширь, а не вглубь, в этом больше пользы) Просто потому что гуру разработки это не тот, кто знает всё, а тот кто умеет быстро учить новое и разбираться в том, с чем он никогда не сталкивался. В этом плане мне повезло попасть в аутсорс с горящими сроками. Да одно время я пахал как лошадь, но благодаря этому у меня очень широкий технологический кругозор, что и позволяет мне себя считать техническим директором. И не только технологический :)
Но тут я выше говорил про деньги. Есть ещё одна ремарочка про фриланс. Есть одна небольшая, но тем не менее фундаментальная проблема любой работы разработчиком по найму. Это как бы логичное следствие из условий задачи, то что на работе неизбежно продаётся чисто своё личное время. А на фрилансе есть возможность продавать программы, что круто. Тут правда лучше бы разбираться в юридических тонкостях и аспектах этого дела. Но тем не менее тут как в старой шутке про завод :)
Приезжает мастер чинить конвеер и говорит: "Починка 5500р". Ему говорят "Ок". Он дёргает один рубильник и всё работает. Очевидный вопрос "За что 5500?". "Ну 500р за то, что я приехал, а 5000р за то что я знал какой рычаг дёрнуть" :)
Проблема офисной работы в рамках одной компании, что в этом случае такой опыт не продать. Человек с большим опытом обладает высокой эффективностью в спектре проектов, так как знает как их решить от и до. Но при этом в рамках одной компании это не тот вид задач, который возникает :) Поэтому фриланс и такая прикольная штука для разработчиков, особенно опытных. Никто в здравом уме не продаёт "чужой код" нарушая права, так как это неправильно и по шапке за такое можно получить. Но личный опыт никуда не девается, и никто не запрещает его продавать, когда делается множество проектов для разных компаний. Но главное широкий спектр проектов позволяет закрывать в разы больше дырок в знаниях
Большой бич современной разработки — это синдром самозванца. Появляется он по логичным причинам. Вот вы несколько лет в разработке, и вам платят действительно много денег, рост обычно очень быстрый. Думаю ни для кого не секрет (да простит меня HR) в целом в современном рынке выгодно хотя бы раз в год менять работу. Если вы не попали на работу мечты, то раз в год меняя работу вы будете в расти в разы быстрее, чем сидя на одном месте. На одном и том же месте вам почти никогда не дадут такого же повышения, как при смене места работы (речь конечно же про разработчиков)
Но многих на данном пути косит — неуверенность в себе. Так вот, как человек сделавший больше 50 коммерческих проектов разных масштабов расскажу вам страшную тайну. Ни один разработчик не знает всё, даже в рамках своей технологии. И не то, чтобы всего, даже всех нюансов в том, чем он занимается на работе каждый день. К этому надо стремиться, но сейчас программирование это глубокая и сложная область, которая постоянно меняется и следить вообще за всем просто невозможно. Даже создатели языков не знают всё про свои языки. То же юнити разрабатывается огромной командой, поэтому досконального знания как работает каждый отдельный модуль нет у самих разработчиков
Печально да? Да нет, у этого всего есть огромный плюс. Технологии не нужно знать досконально чтобы решать бизнес задачи. Учиться надо постоянно (хотя я бы больше рекомендовал учиться в ширь, а не вглубь, в этом больше пользы) Просто потому что гуру разработки это не тот, кто знает всё, а тот кто умеет быстро учить новое и разбираться в том, с чем он никогда не сталкивался. В этом плане мне повезло попасть в аутсорс с горящими сроками. Да одно время я пахал как лошадь, но благодаря этому у меня очень широкий технологический кругозор, что и позволяет мне себя считать техническим директором. И не только технологический :)
Но тут я выше говорил про деньги. Есть ещё одна ремарочка про фриланс. Есть одна небольшая, но тем не менее фундаментальная проблема любой работы разработчиком по найму. Это как бы логичное следствие из условий задачи, то что на работе неизбежно продаётся чисто своё личное время. А на фрилансе есть возможность продавать программы, что круто. Тут правда лучше бы разбираться в юридических тонкостях и аспектах этого дела. Но тем не менее тут как в старой шутке про завод :)
Приезжает мастер чинить конвеер и говорит: "Починка 5500р". Ему говорят "Ок". Он дёргает один рубильник и всё работает. Очевидный вопрос "За что 5500?". "Ну 500р за то, что я приехал, а 5000р за то что я знал какой рычаг дёрнуть" :)
Проблема офисной работы в рамках одной компании, что в этом случае такой опыт не продать. Человек с большим опытом обладает высокой эффективностью в спектре проектов, так как знает как их решить от и до. Но при этом в рамках одной компании это не тот вид задач, который возникает :) Поэтому фриланс и такая прикольная штука для разработчиков, особенно опытных. Никто в здравом уме не продаёт "чужой код" нарушая права, так как это неправильно и по шапке за такое можно получить. Но личный опыт никуда не девается, и никто не запрещает его продавать, когда делается множество проектов для разных компаний. Но главное широкий спектр проектов позволяет закрывать в разы больше дырок в знаниях
👍4
Для грамотной работы с графикой в целом лучше понимать хотя бы на поверхностном уровне информацию из арт дисциплин. И одна из самых интересных вещей — это цвет. Она то и с технической части достаточно любопытна (цветовые пространства и т.п.) Нашёл вот интересный урок по теории цвета https://youtu.be/NH1TLyiJVHU
YouTube
Основы цветовой теории
Boosty: https://boosty.to/cgfish
Телеграм: https://news.1rj.ru/str/cgfishchannel
Группа вконтакте: https://vk.com/cgfish
В этом видео мы рассмотрим основы цветовой теории. Они универсальны и подойдут для любого направления в изобразительном искусстве: живопись, графика…
Телеграм: https://news.1rj.ru/str/cgfishchannel
Группа вконтакте: https://vk.com/cgfish
В этом видео мы рассмотрим основы цветовой теории. Они универсальны и подойдут для любого направления в изобразительном искусстве: живопись, графика…
🔥1
Проблема профессионалов
Некоторые знают, что я пишу статьи на хабр. И я это и раньше знал, но со статьями это становится очевидно. Профессионалы недооценивают сложность знаний, которыми они обладают. Дело в том, что меня часто обвиняли в том, что мои статьи "слишком простые". Но они специально такие, так как я считаю, что мало кто пытается объяснить что-то новичкам понятно. Это похоже на "Джон, мы потеряли 15 страниц математических выкладок" "Так и напишем. Очевидно" :)
С точки зрения профессионала многие вещи кажутся элементарными, и смысл о них говорить? Помню я когда-то хотел написать простенький локальный мультиплеер. И p2p, Nat звучало очень сложными словами. Так как для того, чтобы понять как это сделать нужно обладать терминологией и знать всего лишь одно определение STUN сервер. Да что тут говорить вообще, самая популярная статья на хабре за всё время из моих, это по сути документация Unity Event System переписанная русским языком с примерами https://habr.com/ru/post/359106/ :)
И тут возникает другая проблема, то что новички начинаются бояться спрашивать "очевидные вещи". Что уже другая проблема и мешает нормальному процессу обучения специалиста. Хотя чего-то не знать это абсолютно нормально даже для супер профессионала
Некоторые знают, что я пишу статьи на хабр. И я это и раньше знал, но со статьями это становится очевидно. Профессионалы недооценивают сложность знаний, которыми они обладают. Дело в том, что меня часто обвиняли в том, что мои статьи "слишком простые". Но они специально такие, так как я считаю, что мало кто пытается объяснить что-то новичкам понятно. Это похоже на "Джон, мы потеряли 15 страниц математических выкладок" "Так и напишем. Очевидно" :)
С точки зрения профессионала многие вещи кажутся элементарными, и смысл о них говорить? Помню я когда-то хотел написать простенький локальный мультиплеер. И p2p, Nat звучало очень сложными словами. Так как для того, чтобы понять как это сделать нужно обладать терминологией и знать всего лишь одно определение STUN сервер. Да что тут говорить вообще, самая популярная статья на хабре за всё время из моих, это по сути документация Unity Event System переписанная русским языком с примерами https://habr.com/ru/post/359106/ :)
И тут возникает другая проблема, то что новички начинаются бояться спрашивать "очевидные вещи". Что уже другая проблема и мешает нормальному процессу обучения специалиста. Хотя чего-то не знать это абсолютно нормально даже для супер профессионала
Хабр
Работа с EventSystem в Unity. Базовые вещи в работе с UI
Всем привет! Давно ничего не писал, но сейчас захотелось рассказать про очень удобную штуку, о которой многие не знают. Это Event System в Unity. Многие, для задач в которых EventSystem очень...
🔥2
Опасности опенсорса
Это весьма любопытно, но многие недооценивают опасности опираться на облачные репозитории. Вот сегодня меня удивили юнити, что у них по сути нет своего репозитория с версиями нужных им пакетов https://forum.unity.com/threads/unity-hub-3-1-release-overview.1253823/
В чём суть. Один из контрибьюторов одного из опенсорс пакетов node-ipc внёс в него по сути вредоносную функциональность. Unity Hub использует этот пакет и по сути доставил всем пользователям хаба вредоносное ПО позволяющее писать файлы в системе, что очень опасно. Думаю сейчас у всех этот пакет должен просто попасть в чёрный список, но интересно вот что. Это показательный пример почему тех директора должны объяснять бизнесу «зачем нам своя копия необходимых нам библиотек и свои репозитории». Так как представим у вас завтра релиз, вы обновили хаб (зачем-то) и потеряли все данные. Пусть даже у любого здравого человека сейчас есть бекапы, это трата времени и нервов в итак не самый спокойный день. А если это не хаб, а скажем серверное ПО, то это просто доставка угрозы в ваше облако без смс и переплат
Поэтому к такому нельзя относиться легкомысленно, и лучше всегда иметь ввиду. Опенсорс конечно прекрасен, но он не серебряная пуля и таит в себе неочевидные опасности, если работать с ним бездумно. Но юнити конечно иногда поражают. Многие крупные компании которые я знаю имеют свои клоны репозиториев далеко за долго последних событий, чтобы не создавать себе и пользователям подобные проблемы
Это весьма любопытно, но многие недооценивают опасности опираться на облачные репозитории. Вот сегодня меня удивили юнити, что у них по сути нет своего репозитория с версиями нужных им пакетов https://forum.unity.com/threads/unity-hub-3-1-release-overview.1253823/
В чём суть. Один из контрибьюторов одного из опенсорс пакетов node-ipc внёс в него по сути вредоносную функциональность. Unity Hub использует этот пакет и по сути доставил всем пользователям хаба вредоносное ПО позволяющее писать файлы в системе, что очень опасно. Думаю сейчас у всех этот пакет должен просто попасть в чёрный список, но интересно вот что. Это показательный пример почему тех директора должны объяснять бизнесу «зачем нам своя копия необходимых нам библиотек и свои репозитории». Так как представим у вас завтра релиз, вы обновили хаб (зачем-то) и потеряли все данные. Пусть даже у любого здравого человека сейчас есть бекапы, это трата времени и нервов в итак не самый спокойный день. А если это не хаб, а скажем серверное ПО, то это просто доставка угрозы в ваше облако без смс и переплат
Поэтому к такому нельзя относиться легкомысленно, и лучше всегда иметь ввиду. Опенсорс конечно прекрасен, но он не серебряная пуля и таит в себе неочевидные опасности, если работать с ним бездумно. Но юнити конечно иногда поражают. Многие крупные компании которые я знаю имеют свои клоны репозиториев далеко за долго последних событий, чтобы не создавать себе и пользователям подобные проблемы
👍4
Григорий Дядиченко pinned «Опасности опенсорса Это весьма любопытно, но многие недооценивают опасности опираться на облачные репозитории. Вот сегодня меня удивили юнити, что у них по сути нет своего репозитория с версиями нужных им пакетов https://forum.unity.com/threads/unity-hub…»
Жаль, но видимо Project Tiny всё
Кто не в курсе у юнити был такой замечательный проект, как Project Tiny. Он идеологически должен был позволять делать маленькие легковесные игры, playable ads и т.п. Всё по красоте на DOTS с ECS. Если вы хоть раз связывались с Unity WebGL то вы в курсе насколько он прожорливый и тяжеловестный. Когда-то для совсем небольшого проекта я делал простенькую веб админку (в те времена веб технологии я ещё не знал, поэтому такой экстравагантный выбор) И простенькая админка с парой кнопок и простым UI заставляло мой тогдашний макбук про взлетать. Помимо скорости загрузки, так как только позже я узнал, что в веб гл вообще все ресурсы (кроме базового UI) выносить в ассет бандлы, иначе грузится оно просто вечность)
Хотя официальных заявлений на эту тему я так и не нашёл, но видимо Unity забили на Project Tiny, что очень жаль. Концепт был довольно интересный. Делать легковесный веб на юнити — кайф же. Но в последних версиях Unity его уже даже нет в превью пакетах https://docs.unity3d.com/Packages/com.unity.tiny@0.16/manual/index.html
Чтож, придётся делать веб игры на three или babylon js. Хотя конечно сейчас когда я уже пару недель разбираюсь с pixi и three можно сказать одно. Давно я не писал столько кода, всё же на сколько визуальный редактор и компонентная систему упрощает процесс разработки
Кто не в курсе у юнити был такой замечательный проект, как Project Tiny. Он идеологически должен был позволять делать маленькие легковесные игры, playable ads и т.п. Всё по красоте на DOTS с ECS. Если вы хоть раз связывались с Unity WebGL то вы в курсе насколько он прожорливый и тяжеловестный. Когда-то для совсем небольшого проекта я делал простенькую веб админку (в те времена веб технологии я ещё не знал, поэтому такой экстравагантный выбор) И простенькая админка с парой кнопок и простым UI заставляло мой тогдашний макбук про взлетать. Помимо скорости загрузки, так как только позже я узнал, что в веб гл вообще все ресурсы (кроме базового UI) выносить в ассет бандлы, иначе грузится оно просто вечность)
Хотя официальных заявлений на эту тему я так и не нашёл, но видимо Unity забили на Project Tiny, что очень жаль. Концепт был довольно интересный. Делать легковесный веб на юнити — кайф же. Но в последних версиях Unity его уже даже нет в превью пакетах https://docs.unity3d.com/Packages/com.unity.tiny@0.16/manual/index.html
Чтож, придётся делать веб игры на three или babylon js. Хотя конечно сейчас когда я уже пару недель разбираюсь с pixi и three можно сказать одно. Давно я не писал столько кода, всё же на сколько визуальный редактор и компонентная систему упрощает процесс разработки
👍3
Решил ещё на всякий подключить Дзен, вдруг кому-то там читать будет удобнее :) https://zen.yandex.ru/id/6235ce8fe9c353590fd97c06
Плюс любопытная штука, что яндекс сделал бота, который автоматически переносит посты из телеграма в дзен. Посмотрим, как оно работает. Пока сам дзен работает довольно странно по UX с точки зрения автора :) Но если бот сам всё будет переносить, то почему бы и нет :)
Плюс любопытная штука, что яндекс сделал бота, который автоматически переносит посты из телеграма в дзен. Посмотрим, как оно работает. Пока сам дзен работает довольно странно по UX с точки зрения автора :) Но если бот сам всё будет переносить, то почему бы и нет :)
Дзен
Григорий Дядиченко
Личный блог про AR/VR, компьютерную графику и т.п.
Статьи на хабре: https://habr.com/ru/users/DyadichenkoGA/posts/
Github: https://github.com/Nox7atra
Телеграмм: https://news.1rj.ru/str/nox7atra
Статьи на хабре: https://habr.com/ru/users/DyadichenkoGA/posts/
Github: https://github.com/Nox7atra
Телеграмм: https://news.1rj.ru/str/nox7atra
Полезная и интересная статья про текстуры и виды текстурных карт. В особенности для начинающих https://dtf.ru/gamedev/1113705-plotnost-tekseley-i-nemnogo-teorii-tekstur-ot-entoni-o-donnella?from=rss
DTF
Статья удалена — Gamedev на DTF
Этот материал был удалён по просьбе автора.
🔥1