87

Godot Engine - отличный способ реализовать сбор ресурсов в игре

Доброго времени! Пока весь мир занят паникой, я всё ещё пытаюсь привлечь внимание людей к интересному, лёгкому в освоении и весьма функциональному игровому движку Godot Engine!

В данном материале разбираю механику, позволяющую организовать сбор ресурсов в игре.


Визуально это выглядит так:

Godot Engine - отличный способ реализовать сбор ресурсов в игре Godot Engine, Gamedev, Программирование, 3D, Гифка, Видео

Ну и, тем, кто заинтересовался, полноценный урок:

Если в процессе возникнут какие-либо вопросы, буду рад на них ответить!


PS: Пост опубликован специально для сообщества "Лига Разработчиков Видеоигр"

Дубликаты не найдены

Лига Разработчиков Видеоигр

3.9K постов18.3K подписчика

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

-Уважайте чужой труд и используйте конструктивную критику

-Не употребляйте мат без необходимости

-Не занимайтесь саморекламой, пишите качественные и интересные посты


СТОИТ ПУБЛИКОВАТЬ:

-Пост о Вашей игре, желательно - с историей разработки и описанием полученного опыта

-Обучающие посты, туториалы

-Интервью с именитыми разработчиками

-Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
-Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ НУЖНО ПУБЛИКОВАТЬ:

-Только гифки/арты/скриншоты из игры. Такие материалы могут сопровождать рассказ об игре или обучающий туториал, но не должны являться основой поста

-Посты, единственная цель которых - набор команды для разработки игры по вашей  гениальной идее

-Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

-Публиковать бессодержательный пост с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

-Выдавать чужой труд за свой

Подобные посты будут удалены, а авторы таких постов будут внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

-Пост должен быть содержательным и интересным для пользователей

-Ссылка должна размещаться непосредственно в начале или конце поста и только один раз.

-Cсылка размещается в формате: "Страница игры в Steam: URL"

Подробнее
+3

Ооочень скептически отношусь к идее реализации своего движка в 2020 году.

Для UnrealEngine4 есть в маркете не очень дорогой плагин, дающий примерно то же самое. Плюс вся мощь UE4, а не вот эта костыльная штука.

раскрыть ветку 31
+7
Насколько я понял, что юнити, что унрил крайне крутые движки, но для 99% инди игр они слишком глобальны. Я сейчас учу юнити, там движок только весит около 10 гиг. При том что игра, которую я хочу делать это сраненький 2д платформер с простой музыкой и минимумом механик. В итоге это все выглядит как попытка забить гвоздь микроскопом.
раскрыть ветку 30
+1

Сто лет уже собираюсь начать что-то пилить на годоте, но как всегда "руки не доходят" (угу, а до очередного сериальчика зато доходят).

+1
Ух ты почти как в зельде )))
0
Лучше учите Юнити. Может позже найдёте работу
раскрыть ветку 1
0

увы но ты прав

0
О, сканер, привет зай)
раскрыть ветку 1
0

-__-      кто ты?

0

Погуглил Ютуб. Чота все игры на этом двигле ужасны. Он вообще поддерживает например terrain? А травку? Хардваре инстансинг там есть, чтоб лесные массивы рисовать? А водичку как? Ну хотябы на уровне FarCry 1 или  HL2.  Хотелось бы запилить простенькую игруху типа леталки на вертолетике от 1-3 литса.

раскрыть ветку 1
+1

Главное чтобы на корованы набигать можно было)

0

Рубить? Мне кажется это всё же пилить надо назвать, а вот эти пеньки потом можно рубить.

раскрыть ветку 2
+1

Дерево можно и спилить, и срубить, так же как и бревно - его можно и распилить на чурки, и разрубить на них же.

раскрыть ветку 1
-3

кому нужен годот, если есть анрил и юнити?

-6
А что за игрушка на гифке? Уж больно красиво реализовано
Нифига не грузит сейчас, не могу ни погуглить ничего, ни видео посмотреть, подскажите пожалуйста, под какие платформы подходит?
ещё комментарий
-4
Создание чего-то на GoDot на данный момент тупо не имеет смысла. Есть более продвинутые и удобные движки с поддержкой самых современных технологий. Я говорю про Unity, UE4 и на крайняк CryEngine.
Так же я могу сказать что испытываю отвращение к GDScript.
раскрыть ветку 4
+3

Все проекты, созданные на Годо, можно бесплатно реализовать, ни копейки/цента не отчисляя разработчикам движка или компании-владельцу. В этом, я считаю, большой плюс Годо. Да и монополия - это плохо)

раскрыть ветку 3
-7

интересно, но вот этот объектный подход совсем мне не нравится, где на каждый чих надо объект создавать. Когда я этим занимался у меня игрок состоял из одного объект и никаких камер к голове не надо было болтами ему прикручивать все было внутри одного скрипта. А такие редакторы будто специально заставляют делать все по своему а не так как я хочу

раскрыть ветку 13
+2

Объектный подход имеет, конечно, много серьезных недостатков. Но на вашем понимании архитектурных шаблонов я бы советовал не выебываться и писать по методичке. Ну или почитайте про Ecs, там, конечно, еще более пиздецовая раздробленность всего и вся, но есть предпосылки на популяризацию подхода)

+1
все было внутри одного скрипта.

И это самый хреновый подход к разработке...

раскрыть ветку 11
ещё комментарии
Похожие посты
34

Дневник разработки игры на Godot Engine || devlog#01

Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Дневник разработки игры на Godot Engine || devlog#01 Инди, Gamedev, Pixel Art, Godot Engine, Видео, Длиннопост
Показать полностью 6
35

Rabbit Hole - последние новости разработки

115

Unreal Engine 4. Бесплатные паки на Февраль 2021 года

Unreal Engine 4. Бесплатные паки на Февраль 2021 года Unreal Engine 4, Бесплатно, Gamedev, 3D, Компьютерная графика, Длиннопост
Unreal Engine 4. Бесплатные паки на Февраль 2021 года Unreal Engine 4, Бесплатно, Gamedev, 3D, Компьютерная графика, Длиннопост
Unreal Engine 4. Бесплатные паки на Февраль 2021 года Unreal Engine 4, Бесплатно, Gamedev, 3D, Компьютерная графика, Длиннопост
Unreal Engine 4. Бесплатные паки на Февраль 2021 года Unreal Engine 4, Бесплатно, Gamedev, 3D, Компьютерная графика, Длиннопост
Unreal Engine 4. Бесплатные паки на Февраль 2021 года Unreal Engine 4, Бесплатно, Gamedev, 3D, Компьютерная графика, Длиннопост
Показать полностью 3
65

Создание интерактивного снега с помощью Godot

Создание интерактивного снега с помощью Godot Gamedev, Godot, Godot Engine, Гифка, Видео
55

Unferat (пост 5)

Unferat (пост 5) Unity3d, Игры, Gamedev, Компьютерные игры, Колдовство, Steam, Программирование, 3D, Фэнтези, Гифка, Длиннопост
Unferat (пост 5) Unity3d, Игры, Gamedev, Компьютерные игры, Колдовство, Steam, Программирование, 3D, Фэнтези, Гифка, Длиннопост
Unferat (пост 5) Unity3d, Игры, Gamedev, Компьютерные игры, Колдовство, Steam, Программирование, 3D, Фэнтези, Гифка, Длиннопост
Unferat (пост 5) Unity3d, Игры, Gamedev, Компьютерные игры, Колдовство, Steam, Программирование, 3D, Фэнтези, Гифка, Длиннопост
Показать полностью 3
36

Былина о том, как мы с другом игру пилим. Теперь у AWAKENING появилась страница в Steam

Былина о том, как мы с другом игру пилим. Теперь у AWAKENING появилась страница в Steam Steam, Unity, Разработка, Программирование, 3D, Игры, Компьютерные игры, Ужасы, Gamedev, Мистика, Survival Horror, Инди-Хоррор, Хобби, Indiedev, Реальная история из жизни, Мотивация, Видео, Длиннопост
Былина о том, как мы с другом игру пилим. Теперь у AWAKENING появилась страница в Steam Steam, Unity, Разработка, Программирование, 3D, Игры, Компьютерные игры, Ужасы, Gamedev, Мистика, Survival Horror, Инди-Хоррор, Хобби, Indiedev, Реальная история из жизни, Мотивация, Видео, Длиннопост
Былина о том, как мы с другом игру пилим. Теперь у AWAKENING появилась страница в Steam Steam, Unity, Разработка, Программирование, 3D, Игры, Компьютерные игры, Ужасы, Gamedev, Мистика, Survival Horror, Инди-Хоррор, Хобби, Indiedev, Реальная история из жизни, Мотивация, Видео, Длиннопост
Былина о том, как мы с другом игру пилим. Теперь у AWAKENING появилась страница в Steam Steam, Unity, Разработка, Программирование, 3D, Игры, Компьютерные игры, Ужасы, Gamedev, Мистика, Survival Horror, Инди-Хоррор, Хобби, Indiedev, Реальная история из жизни, Мотивация, Видео, Длиннопост
Былина о том, как мы с другом игру пилим. Теперь у AWAKENING появилась страница в Steam Steam, Unity, Разработка, Программирование, 3D, Игры, Компьютерные игры, Ужасы, Gamedev, Мистика, Survival Horror, Инди-Хоррор, Хобби, Indiedev, Реальная история из жизни, Мотивация, Видео, Длиннопост
Показать полностью 5
41

"Ритуал" персонажный синематик

"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
"Ритуал" персонажный синематик Викинги, Cinematic, Создание персонажа, 3D, 3D графика, Тату, Heilung, Nordic, Игры, Gamedev, Unreal Engine 4, Quixel Megascans, Видео, Длиннопост
Показать полностью 8
147

Минусы онлайн-курсов для программистов (в геймдеве и не только)

Показать полностью
77

Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г

Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост
Unreal Engine 4. Бесплатные паки на Ноябрь 2020 г Unreal Engine 4, Бесплатно, Картинки, 3D, Компьютерная графика, Gamedev, Длиннопост

Удачных творческих поисков и хорошего дня!
Во имя клавиатуры, мыши и интерактивных технологий!
Показать полностью 6
102

Генератор землеподобных  планет на Godot

Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Генератор землеподобных  планет на Godot Gamedev, Godot Engine, Гифка, Длиннопост
Показать полностью 8
446

Сова - эффективный менеджер. Сезон 5 №29: "Эффективный движок для некстген игр" + новая игра на ПК

Сова - эффективный менеджер. Сезон 5 №29: "Эффективный движок для некстген игр" + новая игра на ПК Сова - эффективный менеджер, Xander Toons, Комиксы, Юмор, Gamedev, Игры, Программирование, Длиннопост
Сова - эффективный менеджер. Сезон 5 №29: "Эффективный движок для некстген игр" + новая игра на ПК Сова - эффективный менеджер, Xander Toons, Комиксы, Юмор, Gamedev, Игры, Программирование, Длиннопост
Сова - эффективный менеджер. Сезон 5 №29: "Эффективный движок для некстген игр" + новая игра на ПК Сова - эффективный менеджер, Xander Toons, Комиксы, Юмор, Gamedev, Игры, Программирование, Длиннопост
Показать полностью 2
52

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Показать полностью 17 8
38

Blueprints и C++ в Unreal Engine: плюсы и минусы

Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост
Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост
Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост
Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост
Показать полностью 3
25

Godot 3: Локализация игры на разных языках. Управление переводами.

174

Рисуем в 3d на c++ поверхность, заданную формулой

Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
dX[0] = tv[1]*dY[2] - tv[2]*dY[1];
dX[1] = tv[2]*dY[0] - tv[0]*dY[2];
dX[2] = tv[0]*dY[1] - tv[1]*dY[0];
dX[0] /= max_x;
dX[1] /= max_x;
dX[2] /= max_x;
dY[0] /= max_x;
dY[1] /= max_x;
dY[2] /= max_x;
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
for (int y = 0; y <= max_y; ++y) {
for (int x = 0; x <= max_x; ++x) {
tv[0] = dZ[0]+x*dX[0]+y*dY[0];
tv[1] = dZ[1]+x*dX[1]+y*dY[1];
tv[2] = dZ[2]+x*dX[2]+y*dY[2];
// tv – вектор, показывающий направление луча из точки [x,y] экрана
// ...
};
};
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
ddX[3] = {0,0,0}; // единичный вектор, который направлен вдоль оси X нашей поверхности
ddY[3] = {0,0,0}; // единичный вектор, который направлен вдоль оси Y нашей поверхности
ddZ[3] = {0,0,0}; // единичный вектор, который направлен вдоль оси Z нашей поверхности
ddX[0] = point2[0] - point[0];
ddX[1] = point2[1] - point[1];
ddX[2] = point2[2] - point[2];
len = sqrt(ddX[0]*ddX[0]+ddX[1]*ddX[1]+ddX[2] *ddX[2]) ;
ddX[0]/=len;
ddX[1]/=len;
ddX[2]/=len;
ddY[0] = ddX[1]*ddZ[2] - ddX[2]*ddZ[1];
ddY[1] = ddX[2]*ddZ[0] - ddX[0]*ddZ[2];
ddY[2] = ddX[0]*ddZ[1] - ddX[1]*ddZ[0];
spoint[0] = point[0] - z * ddZ[0];
spoint[1] = point[1] - z * ddZ[1];
spoint[2] = point[2] - z * ddZ[2];
n[0] = -ddZ[0];
n[1] = -ddZ[1];
n[2] = -ddZ[2];
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
float MulVecSc(float *Vec1, float *Vec2){
return Vec1[0]*Vec2[0] + Vec1[1]*Vec2[1] + Vec1[2]*Vec2[2];
};
vp[0] = point[0] - tp[0];
vp[1] = point[1] - tp[1];
vp[2] = point[2] - tp[2];
p = MulVecSc(n,tv);
h = MulVecSc(n,vp);
t = - h/p;
float ddY[3] = {point2[0],point2[1],point2[2]};
float ddX[3] = {0,0,0};
float ddZ[3] = {n[0],n[1],n[2]};
tmMulVec(n,ddY,ddX);
// 6 плоскостей. Ищем самый поздний "вход" и самый ранний "выход"
// Плоскость 1
spoint[0] = point[0] + x * ddX[0];
spoint[1] = point[1] + x * ddX[1];
spoint[2] = point[2] + x * ddX[2];
vp[0] = tp[0]-spoint[0];
vp[1] = tp[1]-spoint[1];
vp[2] = tp[2]-spoint[2];
n[0] = ddX[0];
n[1] = ddX[1];
n[2] = ddX[2];
p = tmMulVecSc(lv_n,tv);
t = - tmMulVecSc(lv_n,lv_vp)/p;
if(p>0.0f){ // выход
if(t<t_out)
t_out = t;
}else{ // вход
if(t>t_in)
t_in = t;
};
// Плоскость 2
spoint[0] = point[0] - x * ddX[0];
spoint[1] = point[1] - x * ddX[1];
spoint[2] = point[2] - x * ddX[2];
vp[0] = tp[0]-spoint[0];
vp[1] = tp[1]-spoint[1];
vp[2] = tp[2]-spoint[2];
n[0] = -ddX[0];
n[1] = -ddX[1];
n[2] = -ddX[2];
p = tmMulVecSc(lv_n,tv);
t = - tmMulVecSc(lv_n,lv_vp)/p;
if(p>0.0f){ // выход
if(t<t_out)
t_out = t;
}else{ // вход
if(t>t_in)
t_in = t;
};
// Плоскость 3
// ...
// Плоскость 4
// …
// Плоскость 5
// …
// Плоскость 6
// ...
if(t_in<t_out&&t_out>0){
// есть пересечение
};
Так. Теперь мы знаем, что в промежутке от t_in до t_out мы внутри параллелепипеда.
Дальше, как и планировали, будем проверять каждую точку с неким шагом h на то, находится она выше или ниже поверхности в локальных координатах.
Что такое локальные координаты?
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
vtp[0] = p[0]-point[0];
vtp[1] = p[1]-point[1];
vtp[2] = p[2]-point[2];
x = MulVecSc(ddX,vtp);
y = MulVecSc(ddY,vtp);
z = MulVecSc(ddZ,vtp);
F = F_xy; // тут у нас определение значения функции, описывающей плоскость. Его мы рассмотрим позже, в 3й части.
if(z<F){ // определяем, находимся мы в точке входа «над» или «под» поверхностью
in = true;
}else{
in = false;
};
for(t = t_in+h;t<=t_out;t+=h){
pt[0] = tp[0] + tv[0]*t;
pt[1] = tp[1] + tv[1]*t;
pt[2] = tp[2] + tv[2]*t;
vtp[0] = point[0]-pt[0];
vtp[1] = point[1]-pt[1];
vtp[2] = point[2]-pt[2];
x = -tmMulVecSc(ddX,vtp);
y = -tmMulVecSc(ddY,vtp);
z = -tmMulVecSc(ddZ,vtp);
F = F_xy;
if(z<F){ // сейчас внутри
if(!in){ // были снаружи
break;
};// были снаружи
}else{ // сейчас снаружи
if(in){ //были внутри
break;
};//были внутри
}; // внутри/снаружи
}; // for t_in ... t_out
if(t>=t_out){
break; // никакого пересечения не было
};
// на данный момент t – это расстояние от точки tp до точки пересечения
// фактически точка на расстоянии t уже после пересечения с плоскостью, поэтому
// в качестве точки пересечения берем t-h
t-=h
collision_pt[0] = tp[0] + tv[0]*t;
collision_pt[1] = tp[1] + tv[1]*t;
collision_pt[2] = tp[2] + tv[2]*t;
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
#define F_xy cos((x*x+y*y)/20.0)/(1+(x*x+y*y)/100.0)
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
#define F_x ((sin((x*x+y*y)/20.0)*x/10.0)*(1+(x*x+y*y)/100.0)-(x/50.0)*cos((x*x+y*y)/20.0))/((1+(x*x+y*y)/100.0)*(1+(x*x+y*y)/100.0))
#define F_y ((sin((x*x+y*y)/20.0)*y/10.0)*(1+(x*x+y*y)/100.0)-(y/50.0)*cos((x*x+y*y)/20.0))/((1+(x*x+y*y)/100.0)*(1+(x*x+y*y)/100.0))
#define F_z 1.0
float Fx = F_x;
float Fy = F_y;
float Fz = F_z;
collision_normal[0] = ddX[0]*Fx+ddY[0]*Fy+ddZ[0]*Fz;
collision_normal[1] = ddX[1]*Fx+ddY[1]*Fy+ddZ[1]*Fz;
collision_normal[2] = ddX[2]*Fx+ddY[2]*Fy+ddZ[2]*Fz;
Shade = 255.0f * MulVecSc(collision_normal,tv);
if(Shade < 0)
Shade = -Shade;
r = Shade * rgb[0];
g = Shade * rgb[1];
b = Shade * rgb[2];
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
#define F_xy 0.3*(sin(x)*cos(y/2.0)+cos(x/2.5)*sin(y/1.5))
#define F_x -0.3*(cos(x)*cos(y/2.0)-sin(x/2.5)*sin(y/1.5))
#define F_y -0.3*(-sin(x)*sin(y/2.0)+cos(x/2.5)*cos(y/1.5))
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Рисуем в 3d на c++ поверхность, заданную формулой C++, Программирование, 3D, Визуализация, Рендер, Геометрия, Алгебра, Вектор, Длиннопост
Показать полностью 15
80

Визуальный редактор скриптов в Godot Engine

Визуальный редактор скриптов в Godot Engine Godot Engine, Unreal Engine, Gamedev
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: