Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the antispam-bee domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ruwritingagame/public_html/wp-includes/functions.php on line 6131
Cross-platform 3D – Игра в Написание Игры

Глава 39. Сложные формы (с GitHub-ом)

Следующий шаг – это заменить модели на что-то более актуальное чем просто квадратики. Например, на это: Я выбрал именно эту модель за ее изысканно гнутые формы. Если чо, это 1935 Deusenberg SSJ Speedster, масштаб 1:64. Для этого понадобится расширить функционал ModelBuilder-а и ModelLoader-а. Также понадобятся новые XML таги в дескрипторах чтобы этот функционал задействовать. Здесь […]

Глава 38. Иерархичные модели

Теперь можно подумать и о более сложных моделях, состоящих из нескольких элементов с индивидуальным поведением. Например – машина, где корпус был бы корневым элементом, а колеса – дочерними. Для обоих (корпус и колесо) понадобятся собственные отдельные дескрипторы и классы, обсуживающие их поведение. 1. В Windows File Explorer-е откроем наш корневой (CPP) каталог, сделаем копию a997modeler […]

Глава 37.2. GitHub

Для уверенности, что мы с Вами точно на одной странице, давайте ссинхронизируем наши проекты. Полный текущий репозиторий Проекта можно сгрузить с https://github.com/bkantemir/_wg37 Windows solution, x86: _wg37-main\a997modeler\p_windows\p_windows.sln Android solution, ARM64: _wg37-main\a997modeler\p_android\p_android.sln Важные изменения: Чтобы отвязать проект от каталога C:\CPP, все пути в настройках проекта переведены в относительную форму. Как ..\..\engine вместо C:\CPP\engine. Чтобы облегчить репозиторий, из […]

Глава 37. Оптимизация мешей

Модель полностью готова, но остался еще 1 вопрос: Сейчас модель состоит из 316 вертексов и 144 треугольников (432 индекса), что не так уж и много по сравнению с 3D редакторами. Но все-таки, откуда СТОЛЬКО-то?? Ну, сама коробка например: 6 сторон, по 4 вертекса каждая = 24 вертекса 12 ребер, по 4 вертекса каждое = 48 […]

Глава 36. “Стеклянный” эффект

Модель почти готова. Не хватает только: Слюдяной пленки и Акцизной марки Тут нам даже не придется писать новых шейдеров. Для пленки мы возьмем наш “зеркальный” шейдер (как для позолоченных принтов) с белым шумом в качестве главной текстуры (uTex0) и “странслируем” ее в полупрозрачную 8×1 текстуру glass01.bmp (uTex3), имитирующую стеклянное отражение. Это просто белая прозрачная текстура […]

Глава 35. “Проволочный” шейдер

Здесь я собираюсь добавить золотую ленточку (пломбу). Это будет линия, последовательность точек вместо обычного набора треугольников. Для этого потребуются: Набор новых тагов в ModelLoader Новая переменная lineWidth в классе Material В DrawJob будет нужно перекалибровывать lineWidth в зависимости от дистанции Дополнительный функционал в шейдерах И, конечно, новый model descriptor 1. Скопируем нижеследующий код в Текстовый […]

Глава 34. “Тюнинг” Материала

Мы ВСЕ ЕЩЕ пытаемся “нарисовать” стык (щель) между пачкой и крышкой как небольшую normal map приложенную к части существующей текстурированной поверхности. На данный момент у нас есть вырезанные фрагменты с их “родными” собственными Материалами. В предыдущей главе мы просто заменили их на зеленый Phong. На самом же деле нам нужны родные Material-ы, только с добавленной normal map. […]

Глава 33. Пересечение полигонов

На всякий случай: мы все еще пытаемся “нарисовать” стык (щель) между пачкой и крышкой, как небольшую normal map приложенную к части существующей текстурированной поверхности. Как-то так: В предыдущей главе мы смогли пометить и переместить “marked vertices/triangles group“. Теперь нам надо выбрать одну (в этом примере – “box_right”), клонировать ее, развернуть и сдвинуть лицом к нам: Затем – […]

Глава 32. “Помеченные” группы вертексов

Теперь я хочу “нарисовать” стык (щель) между пачкой и крышкой, как normal map приложенную к части существующей поверхности, НЕ ко всей поверхности, и НЕ к VirtualShape как мы делали раньше. Это потребует нескольких новых концепций. Windows 1. Запускаем VS, открываем C:\CPP\a997modeler\p_windows\p_windows.sln. Первая из новых концепций – помеченные группы вертексов/треугольников, чтобы потом мы могли обратиться к какой-то […]

Глава 31. Карты нормалей / Normal maps

Теперь хочу сделать герб и надпись “Marlboro” на лицевой стороне тиснеными. Для этого понадобятся Карты нормалей / Normal Maps. Это голубые изображения справа: Чтобы их сгенерировать, я воспользовался сайтом NormalMap-Online. Настройки по умолчанию – для DirectX. Для OpenGL – отметьте Invert R Кликните на левую картинку чтобы загрузить свою. Эта картинка – уже в Вашем […]