Примерно так и сделал с помощью шейдера.
Прозрачность точки стола = dot(view, normal) — скалярное произведение (косинус угла) нормали и вектора взгляда. Нормали сглаженые (в точках где стыкаются плоскости, нормали этих плоскостей равны), что делает гладкий переход прозрачности.
Хех. Что если чат будет выключен по умолчанию, а если игрок хочет слышать гадости, то он может включить чат в настройках?
Просто иногда реально хочется похвалить противника за хороший удар, а сказать можешь только смайлом <палец вверх>.
Спасибо за отзыв!
Да я знаю об этой проблеме, много людей пишут.
Я хочу в ближайшем времени убрать ближнюю стенку стола (не знаю еще как). Пока можно воспользоваться кнопочкой с глазом слева чтоб поменять точку обзора.
Мне уже делали замечание по этому поводу, я это писал без плохой мысли.
Я думаю людям, играющим кс, было бы интересно побегать в игре по знакомым им местам. А в школу ходили все.
Поскольку я уже дома, то могу посмотреть как я это сделал (давно это было). На отдельную статью пока что не хватает времени.
Стол это простой куб, 6 граней, на который наложена текстура с прозрачными частями — лузы. На альфа канал текстуры накладывается текстура шум, т.е. в шейдер передаются 2 текстуры. Также в шейдер передается смещение текстуры шума, которое обновляется с каждый кадром. На самом деле текстура шума используется дважды, условно: смещение * 1 — смещение * 2 (движение в разные стороны).
Анимация отскока это квадратик с полупрозрачной текстурой кольца, который с каждым кадром увеличивается и становится более прозрачным.
Ray tracing просит физический движок предсказать где окажется следующее столкновение если задать шару такое направление полета. Дальше рисуется лазер (axis alligned billboard, квадратик всегда направленный перпендикулярно камере, каждый кадр пересчитывается его матрица), и «муравьи» (point billboard).
Но там также модераторы банят, если на игрока пожалуются. Плюс в игре есть возможность не слушать конкретного игрока.
Стоп слова мне не очень нравятся, к примеру слово «оскорблять» содержит мат, в некоторых играх такое слово полностью или частично закрашивается.
Для начала будет просто со смайликами.
Может знающие люди поскажут — если у игроков будет возможность свободно отправлять любой текст друг другу, скажем небольшие сообщения по 50 символов, 5 раз в минуту. Без модерации, но у другого игрока есть возможность отключить чат. Есть ли запреты скажем у гугла на такое?
Спасибо!
Насчет более хаброориентированного рассказа: я продолжаю работу над игрой, и свободного времени совсем мало.
Плюс, я не уверен что внутренности моей игры будет хорошим примером. Я изобретал колесо, когда стоило посмотреть что делают другие.
Не обошелся :)
У меня есть класс камера который держит всю математику в себе, а снаружи выглядит как камера.переместить(10, 20, 0).
И да с матрицами там есть немно гемора, но методом проб и ошибок таки можно заставить их работать :)
Думаю так считать проще. Чтоб «наложить» объект на экран, его вершины перемножаются на 3 матрицы по очереди:
1 Матрица модели, которая держит информацию о положении объекта относительно начала координат.
2 Матрица мира, все объекты перемножаются на эту матрицу. Таким образом мы двигаем мир относительно камеры (это то о чем вы спрашивали).
3 Матрица проекции — что-то типо пареметров линзы камеры, угол обзора и тд.
Вот здесь лучше объясняют, с картинками: opengl-tutorial.blogspot.com/p/3.html (Матрицы Модели, Вида и Проекции)
Прозрачность точки стола = dot(view, normal) — скалярное произведение (косинус угла) нормали и вектора взгляда. Нормали сглаженые (в точках где стыкаются плоскости, нормали этих плоскостей равны), что делает гладкий переход прозрачности.
Просто иногда реально хочется похвалить противника за хороший удар, а сказать можешь только смайлом <палец вверх>.
Да я знаю об этой проблеме, много людей пишут.
Я хочу в ближайшем времени убрать ближнюю стенку стола (не знаю еще как). Пока можно воспользоваться кнопочкой с глазом слева чтоб поменять точку обзора.
Я уже очень рад что люди оставляют позитивные отзывы, сижу довольный :)
Я думаю людям, играющим кс, было бы интересно побегать в игре по знакомым им местам. А в школу ходили все.
Стол это простой куб, 6 граней, на который наложена текстура с прозрачными частями — лузы. На альфа канал текстуры накладывается текстура шум, т.е. в шейдер передаются 2 текстуры. Также в шейдер передается смещение текстуры шума, которое обновляется с каждый кадром. На самом деле текстура шума используется дважды, условно: смещение * 1 — смещение * 2 (движение в разные стороны).
Анимация отскока это квадратик с полупрозрачной текстурой кольца, который с каждым кадром увеличивается и становится более прозрачным.
Ray tracing просит физический движок предсказать где окажется следующее столкновение если задать шару такое направление полета. Дальше рисуется лазер (axis alligned billboard, квадратик всегда направленный перпендикулярно камере, каждый кадр пересчитывается его матрица), и «муравьи» (point billboard).
nehe.gamedev.net/article/billboarding_how_to/18011
Стоп слова мне не очень нравятся, к примеру слово «оскорблять» содержит мат, в некоторых играх такое слово полностью или частично закрашивается.
Может знающие люди поскажут — если у игроков будет возможность свободно отправлять любой текст друг другу, скажем небольшие сообщения по 50 символов, 5 раз в минуту. Без модерации, но у другого игрока есть возможность отключить чат. Есть ли запреты скажем у гугла на такое?
play.google.com/store/apps/details?id=com.xeon13.starpool
Насчет более хаброориентированного рассказа: я продолжаю работу над игрой, и свободного времени совсем мало.
Плюс, я не уверен что внутренности моей игры будет хорошим примером. Я изобретал колесо, когда стоило посмотреть что делают другие.
Ну и плюс я не указывал линку на игру, не хочу быть слишком навязчивым.
У меня есть класс камера который держит всю математику в себе, а снаружи выглядит как камера.переместить(10, 20, 0).
И да с матрицами там есть немно гемора, но методом проб и ошибок таки можно заставить их работать :)
1 Матрица модели, которая держит информацию о положении объекта относительно начала координат.
2 Матрица мира, все объекты перемножаются на эту матрицу. Таким образом мы двигаем мир относительно камеры (это то о чем вы спрашивали).
3 Матрица проекции — что-то типо пареметров линзы камеры, угол обзора и тд.
Вот здесь лучше объясняют, с картинками: opengl-tutorial.blogspot.com/p/3.html (Матрицы Модели, Вида и Проекции)