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 6121
BK – Page 2 – Игра в Написание Игры

Posts by BK:

Глава 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 Кликните на левую картинку чтобы загрузить свою. Эта картинка – уже в Вашем […]

Глава 30. Манипуляции группой вертексов

Здесь я зочу добавить золоченые принты на пачке. Для этого понадобится по ходу изменять (подправлять) размеры и позиции проекций. Новый root01.txt будет такой: 1. Скопируем этот код в Текстовый редактор и сохраним его (overwrite) to/as C:\CPP\a997modeler\dt\models\misc\marlboro01\root01.txt Обратите внимание: В тагах “a” теперь есть новые параметры/properties: whl (измененный размер) и pxyz (позиция прекции). “x” в размерах/координатах означает использовать […]

Глава 29. Chroma key

Chroma keying, понятно, это способ считать какой-то конкретный цвет прозрачным. В нашем случае – зеленый: Конечно, после загрузки изображения, перед тем как сделать из него текстуру, мы можем легко просканировать его на предмет зеленых пикселей, и установить их Альфа-каналы в ноль. Правда, когда GL rasterizer выбирает tUV координаты рядом с зеленой зоной, результирующий пиксель на […]

Глава 28. Загрузчик моделей / Model Loader

Наша следующая задача – вынести (убрать) построение модели за пределы TheGame класса. Нам нужно создать какой-то текстовый описатель (text descriptor) модели, XML формат кажется вполне подходящим. Мы будем держать описания моделей за пределами экзешника, в каталоге /dt. Еще нам понадобится класс, который будет их загружать, читать, обрабатывать и строить соответствующие 3D модели в памяти. У […]

Глава 27. Группы шейдеров

Здесь я хочу добавить “reflection” (отражение) и “over mask” (трафарет) шейдеры, каждый из которых удвоит количество шейдер-программ. Соответственно, нужна функция, которая сможет загрузить группу шейдеров в 1 присест (например – Phong или flat для разных форматов данных). Также понадобится функция, которая выберет конкретный номер шейдера в зависимости от Материала (например – flat, ucolor, без текстур). […]

Глава 26. Рендер в и чтение из GL текстуры

Здесь я хочу сгенерировать белый шум посложнее: с более крупными точками и с размывкой между ними. Задача разбивается на следующие шаги: Создать простое черно-белое изображение (как в предыдущей главе) Сгенерировать из него GL текстуру Сделать ее renderable (связать ее с render buffer-ом) Направить GL рендер в новый render buffer Нарендрить туда случайных черно-белых больших точек […]

Глава 25. Запись BMP и TGA файлов

Для последующего использования я хотел сгенерировать несколько картинок с “белым шумом” и сохранить их в каком-то узнаваемом формате. Чтобы не перегружать проект лишними библиотеками, решил написать собственную маленькую функцию. Ради простоты – без компрессии и только с одним форматом пикселя – RGBA. Подойдут 2 варианта: BMP и TGA. BMP – пораспространенней, TGA – попроще. Правда, […]

Глава 24. Синхронизация

Сейчас на обоих моих платформах (Android и PC) кубик делает 1 оборот примерно за 4 секунды. Это 360 кадров (скорость вращения установлена на 1 градус за кадр). Это значит 360/4=90 кадров в секунду (frames per second, FPS). Понятно, что на других устройствах эта цифра может быть другой. Кроме того, на скорость могут влиять фоновые процессы […]