Прошу перечислить, кому не сложно, команды для улучшения качества текстур, я конечно понимаю, что чаще всего просят команды для ухудшения качества тек
команды которые влияют на текстуры

0 Пользователей и 1 Гость просматривают эту тему.
![]() |
Похожие Темы |
---|
Форум Natus Vincere
Загрузка и создание текстур
Перед тем как начать использовать наши текстуры нам требуется их загрузить в наше приложение. Текстурные изображения могут храниться в безграничном количестве форматов, в каждом из которых своя структура и упорядоченность данных, так как же мы передадим наше изображение в приложение? Одним из решений является использование удобного нам формата, к примеру .PNG и написать собственную систему загрузки изображений в большой массив байт. Хоть написание собственного загрузчика изображений не представляет собой неподъемную работу, все-таки это довольно утомительно, тем более если вы захотите использовать много форматов файлов.
Другим решением является использование готовой библиотеки для загрузки изображений, которая бы поддерживала множество различных популярных форматов и делала много тяжелой работы за нас. К примеру SOIL.
SOIL
SOIL расшифровывается как Simple OpenGL Image Library, поддерживает большинство популярных форматов изображений, легка в использовании и может быть скачана отсюда. Также как и большинство других библиотек вам придется сгенерировать файл .lib самостоятельно. Вы можете использовать один из их проектов, располагающихся в папке /projects (не волнуйтесь, если версия их проектов будет ниже версии вашей VS. Просто сконвертируйте их в новую версию, это должно работать в большинстве случаев) для создания на его основе собственного. Также добавьте содержимое папки src в свою папку include. Также не забудьте добавить SOIL.lib в настройки своего линковщика и добавить #include <SOIL.h> в начале вашего кода.
Для текущей текстурной секции мы будем использовать изображение деревянного контейнера. Для загрузки изображения через SOIL мы используем функцию SOIL_load_image:
int width, height;unsigned char* image = SOIL_load_image(“container.jpg”, &width, &height, 0, SOIL_LOAD_RGB);
Первый аргумент функции — это местоположение файла изображения. Второй и третий аргументы — это указатели на int в которые будут помещены размеры изображения: ширина и высота. Они нам понадобятся для генерации текстуры. Четвертый аргумент — это количество каналов изображения, но мы оставим там просто 0. Последний аргумент сообщает SOIL как ему загружать изображение: нам нужна только RGB информация изображения. Результат будет храниться в большом массиве байт.
Генерация текстуры
Также как и на любой другой объект в OpenGL, на текстуры ссылаются идентификаторы. Давайте создадим один:
GLuint texture;glGenTextures(1, &texture);
Функция glGenTextures принимает в качестве первого аргумента количество текстур для генерации, а в качестве второго аргумента — массив GLuint в котором будут храниться идентификаторы этих текстур (в нашем случае это один GLuint). Также как любой другой объект мы привяжем его для того, чтобы функции, использующие текстуры, знали какую текстуру использовать.
glBindTexture(GL_TEXTURE_2D, texture);
После привязки текстуры мы можем начать генерировать данные текстуры используя предварительно загруженное изображение. Текстуры генерируются с помощью glTexImage2D:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);glGenerateMipmap(GL_TEXTURE_2D);
У этой функции довольно много аргументов, поэтому давайте по порядку:
- Первый аргумент описывает текстурную цель. Установив значение GL_TEXTURE_2D мы сообщили функции, что наша текстура привязана к этой цели (чтобы другие цели GL_TEXTURE_1D и GL_TEXTURE_3D не будут задействованы).
- Второй аргумент описывает уровень мипмапа для которого мы хотим сгенерировать текстуру, если вдруг мы хотим самостоятельно сгенерировать мипмапы. Поскольку мы оставим генерацию мипмапов на OpenGL мы передадим 0.
- Третий аргумент сообщает OpenGL в каком формате мы хотим хранить текстуру. Поскольку наше изображение имеет только RGB значения то и в текстуры мы также будем хранить только RGB значения.
- Четвертый и пятый аргументы задают ширину и высоту результирующей текстуры. Мы получили эти значения ранее во время загрузки изображения.
- Шестой аргумент всегда должен быть 0. (Аргумент устарел).
- Седьмой и восьмой аргументы описывают формат и тип данных исходного изображения. Мы загружали RGB значения и хранили их в байтах (char) так что мы передаем эти значения.
- Последний аргумент — это сами данные изображения.
После вызова glTexImage2D текущая привязанная текстура будет иметь привязанное к ней изображение. Правда текстура будет иметь только базовое изображение и если мы захотим использовать мипмапы, то нам придется таким же образом задавать изображение просто инкрементируя значение уровня мипмапов. Ну или мы можем просто вызвать glGenerateMipmap после генерации текстуры. Эта функция автоматически сгенерирует все требуемые мипмапы для текущей привязанной текстуры.
После окончания генерации текстуры и мипмапов хорошей практикой является освобождение участка памяти, выделенного под загруженное изображение, и отвязка объекта текстуры.
SOIL_free_image_data(image);glBindTexture(GL_TEXTURE_2D, 0);
Весь процесс генерации текстуры выглядит примерно так:
GLuint texture;glGenTextures(1, &texture);glBindTexture(GL_TEXTURE_2D, texture);// Устанавливаем настройки фильтрации и преобразований (на текущей текстуре)…// Загружаем и генерируем текстуруint width, height;unsigned char* image = SOIL_load_image(“container.jpg”, &width, &height, 0, SOIL_LOAD_RGB); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);glGenerateMipmap(GL_TEXTURE_2D);SOIL_free_image_data(image);glBindTexture(GL_TEXTURE_2D, 0);
Применение текстур
Для последующих глав мы будем использовать четырехугольник отрисованный с помощью *glDrawElements из последней части урока про Hello Triangle. Нам надо сообщить OpenGL как сэмплировать текстуру, поэтому мы обновим вершинные данные, добавив в них текстурные координаты:
GLfloat vertices[] = { // Позиции // Цвета // Текстурные координаты 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // Верхний правый 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // Нижний правый -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // Нижний левый -0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // Верхний левый};
После добавления дополнительных атрибутов нам снова придется оповестить OpenGL о нашем новом формате:.
glVertexAttribPointer(2, 2, GL_FLOAT,GL_FALSE, 8 * sizeof(GLfloat), (GLvoid*)(6 * sizeof(GLfloat)));glEnableVertexAttribArray(2);
Заметьте, что мы также скорректировали значение шага прошлых двух атрибутов под 8 * sizeof(GLfloat).
Затем нам потребуется изменить вершинный шейдер для того, чтобы он принимал текстурные координаты в качестве атрибута а затем передавал их фрагментному шейдеру:
#version 330 corelayout (location = 0) in vec3 position;layout (location = 1) in vec3 color;layout (location = 2) in vec2 texCoord;out vec3 ourColor;out vec2 TexCoord;void main(){ gl_Position = vec4(position, 1.0f); ourColor = color; TexCoord = texCoord;}
Фрагментный шейдер также должен принимать TexCoord в качестве входной переменной.
Фрагментный шейдер также должен иметь доступ к текстурному объекту, но как мы передадим его во фрагментный шейдер? GLSL имеет встроенный тип данных для текстурных объектов, называемый sampler у которого в качестве окончания тип текстуры, тоесть sampler1D, sampler3D и, в нашем случае, sampler2D. Мы можем добавить текстуру фрагментному шейдеру просто объявив uniform smpler2D к которому мы позже передадим текстуру.
#version 330 corein vec3 ourColor;in vec2 TexCoord;out vec4 color;uniform sampler2D ourTexture;void main(){ color = texture(ourTexture, TexCoord);}
Для сэмплирования цвета текстуры мы используем встроенную в GLSL функцию texture которая в качестве первого аргумента принимает текстурный sampler, а в качестве второго аргумента текстурные координаты. Функция texture затем сэмплирует значение цвета, используя текстурные параметры, которые мы задали ранее. Результатом работы этого фрагментного шейдера будет (фильтрованный) цвет текстуры на (интерполированноый) текстурной координате.
Осталось только привязать текстуру перед вызовом glDrawElements и она автоматически будет передана сэмплеру фрагментного шейдера:
glBindTexture(GL_TEXTURE_2D, texture);glBindVertexArray(VAO);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glBindVertexArray(0);
Если вы все сделали верно то получите следующее изображение:
Если ваш четырехугольник полностью черный или белый значит вы где-то ошиблись. Проверьте шейдерные логи и сравните ваш код с исходным.
Для получения более цветастого эффекта мы можем смешать результирующий цвет текстуры с вершинным цветом. Для смешивания мы просто умножим цвета во фрагментном шейдере.
Color = texture(ourTexture, TexCoord) * vec4(ourColor, 1.0f);
У вас должно получиться нечто такое?
Текстурный блок
Возможно вы задаетесь вопросом: “Почему sampler2D переменная является uniform, если мы ей так и не присвоили никакое значение с помощью glUniform?”. С помощью glUniform1i мы можем присвоить значение метоположения текстурному сэмплеру для возможности использования нескольких текстур в одном фрагментном шейдере. Местоположение текстуры чаще называется текстурным блоком. Текстурный блок по умолчанию — 0, который означает текущий активный текстурный блок для того, чтобы нам не требовалось указывать местоположение в прошлой секции.
Основная цель текстурных блоков это обеспечение возможности использования более чем 1 текстуры в нашем шейдере. Передавая текстурные блоки сэмплеру мы можем привязывать несколько текстур за один раз до тех пор, пока мы активируем соотносящиеся текстурные блоки. Также как и glBindTexture мы можем активировать текстуры с помощью glActivateTexture передавая туда текстурный блок, который мы хотим использовать:
glActiveTexture(GL_TEXTURE0); // Активируем текстурный блок перед привязкой текстурыglBindTexture(GL_TEXTURE_2D, texture);
После активации текстурного блока, последующий вызов glBindTexture привяжет эту текстуру к активному текстурному блоку. Блок GL_TEXTURE0 всегда активирован по-умолчанию, так что нам не требовалось активировать текстурные блоки в прошлом примере.
OpenGL поддерживает как минимум 16 текстурных блоков, которые вы можете получить через GL_TEXTURE0 — GL_TEXTURE15. Они объявлены по-порядку, поэтому вы также можете получить их следующим образом: GL_TEXTURE8 = GL_TEXTURE0 + 8. Это удобно, если вам приходится итерировать через текстурные блоки.
В любом случае нам все еще требуется изменить фрагментный шейдер для принятия другого сэмплера:
#version 330 core…uniform sampler2D ourTexture1;uniform sampler2D ourTexture2;void main(){ color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2, TexCoord), 0.2);}
Финальный результат — это комбинация двух текстур. В GLSL встроена функция mix которая принимает два значения на вход и интерполирует их на основе третьего значения. Если третье значение 0.0 то эта функция вернет первый аргумент, если 1.0 то второй. Значение в 0.2 вернет 80% первого входного цвета и 20% второго входного цвета.
Теперь нам надо загрузить и создать другую текстуру; вы уже знакомы со следующими шагами. Удостоверьтесь, что вы создали еще один объект текстуры, загрузили изображение и сгенерировали финальную текстуру с помощью glTexImage2D. Для второй текстуры мы используем изображение лица во время изучения этих уроков.
Для того, чтобы использовать вторую текстуру (и первую) нам надо будет немного изменить процедуру отрисовки, привязкой обеих текстур к соответствующим текстурным блокам и указанием к какому сэмплеру относится какой текстурный блок:
glActiveTexture(GL_TEXTURE0);glBindTexture(GL_TEXTURE_2D, texture1);glUniform1i(glGetUniformLocation(ourShader.Program, “ourTexture1”), 0);glActiveTexture(GL_TEXTURE1);glBindTexture(GL_TEXTURE_2D, texture2);glUniform1i(glGetUniformLocation(ourShader.Program, “ourTexture2”), 1);glBindVertexArray(VAO);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glBindVertexArray(0);
Заметьте, что использовали glUniform1i для того, чтобы установить позицию текстурного блока в uniform sampler. Устанавливая их через glUniform1i мы будем уверены, что uniform sampler соотносится с правильным текстурным блоком. В результате вы должны будете получить следующий результат:
Вероятно вы заметили, что текстура перевернута вверх ногами! Это произошло, поскольку OpenGL представляет координату 0.0 по оси Y снизу изображения, но изображения зачастую имеют координату 0.0 сверху по оси Y. Некоторые библиотеки для загрузки изображений, типа Devil имеют настройки для инвертирования Y оси во время загрузки. SOIL такой настройки лишен. У SOIL есть функция SOIL_load_OGL_texture, которая загружает текстуру и генерирует текстуру с флагом SOIL_FLAG_INVERT_Y, который решает нашу проблему. Тем не менее эта функция использует вызовы, недоступные в современной версии OpenGL, поэтому нам придется остановиться на использовании SOIL_load_image и самостоятельной загрузкой текстуры.
Для исправления этой небольшой недоработки у нас есть 2 пути:
- Мы можем изменить текстурные координаты в вершинных данных и перевернуть Y ось (вычесть Y координату из 1)
- Мы можем изменить вершинный шейдер для переворачивания Y координаты, заменив формулу задачи TexCoord на TexCoord = vec2(texCoord.x, 1.0f — texCoord.y);..
Приведенные решения — это маленькие хаки, которые позволяют перевернуть изображение. Эти способы работают в большинстве случаев, но результат всегда будет зависеть от формата и типа выбираемой текстуры, так что лучшее решение проблемы — решать ее на этапе загрузки изображения, приводя ее в формат, понятный OpenGL.
Как только вы измените вершинные данные или перевернете Y ось в вершинном шейдере вы получите следующий результат:
Если вы увидели счастливый контейнер, то вы все сделали правильно. Вы можете сравнить свой код с исходным, а также вершинный и фрагментный шейдеры.
Упражнения
Для лучшего усвоения материала прежде чем приступать к следующему уроку взгляните на следующие упражнения.
- Добейтесь того, чтобы только вершинный шейдер был перевернут, с помощью изменения фрагментного шейдера. Решение
- Поэкспериментируйте с другим методам натягивания текстур, изменяя текстурные координаты в пределах от 0.0f до 2.0f вместо 0.0f до 1.0f. Проверьте, сможете ли вы отобразить 4 улыбающихся рожицы на одном контейнере. Решение, Результат
- Попробуйте отобразить только центральные пиксели текстуры на четырехугольнике так, чтобы единичные пиксели были видны при изменении текстурных координат. Попробуйте установить режим фильтрации GL_NEAREST для того, чтобы было видно пиксели более четко. Решение.
- Используйте uniform переменную в качестве 3 параметра функции mix для изменения коэффициента смешивания двух текстур на лету. Используйте кнопки вверх и вниз для регулирования смешивания. Решение, Фрагментный шейдер
Контроль (управление)
Команда | Значение |
+forward | Движение вперед |
+back | Движение назад |
+moveleft | Шаг влево |
+moveright | Шаг вправо |
+movedown | Двигать игрока вниз |
+moveup | Двигать игрока вверх |
+left | Повернуться налево |
+right | Повернуться направо |
+jump | Прыжок |
+duck | Присесть |
+use | Использовать предмет или оружие (пример:”use weapon_hegrenade”) |
+attack | Атаковать (стрелять, резать ножом, кидать гранаты) |
+attack2 | Альтернативная стрельба / дополнительная функция оружия |
+reload | Перезарядка |
+klook | Включение клавиатуры для обзора |
+lookdown | Смотреть вниз |
+lookup | Смотреть вверх |
+speed | Вынуждает игрока ходить, если включено “always run” или вынуждает игрока бегать, если “always run” – выключено. |
+showscores | Показ очков игрока и его пинг |
+strafe | Используя клавиши поворотов позволяет смещаться в соответствующих направлениях. |
bind | Назначает клавишу команде или alias’у |
unbind | Снять назначение с клавиши |
unbindall | Убрать назначения со всех клавиш |
alias | Для выполнения нескольких задач при нажатию одной кнопки |
slot1-10 | Выбирает оружие группы 1-10 |
cancelselect | Отменить |
changeteam | Отображает меню смены команды игрока |
centerview | Центрует вид изображения игрока |
changeclass | Отображает меню смены класса игрока |
messagemode | Сказать всем игрокам |
messagemode2 | Сказать игрокам своей команды |
radio1-3 | Первая-третья группа радиокоманд |
toggleconsole | Открыть/закрыть консоль |
chooseteam | Выбор команды, за которую хотите играть |
+showscores | Показ статистики |
drop | Выбросить текущее оружие |
nightvision | Включить/выключить очки ночного видения |
impulse 201 | Нарисовать логотип |
impulse 100 | Включить/выключить фонарик |
invprev | Переключиться на предыдущее оружие |
invnext | Переключиться на следующее оружие |
invlast | Переключиться на последнее оружие |
kill | Умереть |
buy | Включить меню покупки |
buyammo1 | приобрести пули для основного оружия |
buyammo2 | Приобрести пули для пистолета |
buyequip | Купить дополнительное снаряжение |
+voicerecord | Говорить в чат |
+commandmenu | Показать встроенное VGUI меню |
showbriefing | Показать брифинг к карте |
snapshot | Сделать скриншот |
screenshot | Берет текущее изображение на экране и сохраняет в каталоге игры |
cl_anglespeedkey | Устанавливает скорость изменения угла вида, при повороте |
cl_backspeed | Устанавливает скорость движения игрока назад (число не может быть больше, чем разрешено на конкретном сервере) |
cl_forwardspeed | Установка скорости движения игрока вперед |
cl_sidespeed | Установка скорости движения игрока в бок |
cl_movespeedkey | Установка скорости передвижения |
cl_upspeed | Скорость подъема игрока (например, на лестнице) |
cl_yawspeed | Устанавливает скорость поворота (не может быть больше, чем на сервере) |
messagemode | Показывает сообщение всем другим игрокам на сервере |
messagemode2 | Показывает сообщение только игрокам своей команды |
say | Послать сообщение всем другим игрокам на сервере |
say_team | Послать только игрокам своей команды |
setinfo ah | В режиме подсказки, игроку в ходе игры выдаются сообщения (например, что нужно делать, чтобы спасти заложника) |
setinfo dm | Выводить краткую информацию по карте, при ее загрузке |
setinfo ghosts | Показывать призраков в режиме обсервера |
setinfo _pw | Ввод пароля для доступа к админке под AMX |
setinfo vgui_menus | Визуальное меню при скупке |
setinfo _vgui_menu | То же, что и вышенаписанное |
con_color | Цвет текста (консоли) |
sv_aim | Вкл / выкл автонаведение оптических прицелов (1/0) |
cl_timeout | Время, через которое неактивный клиет будет кикнут с сервера |
cl_dynamiccrosshair | Вкл / выкл динамический прицел (при беге и любых передвижениях) (1/0) |
cl_lw | Все эффекты и действия, связанные с оружием, просчитываются на стороне клиента (2) |
cl_lc | Компенсация лагов на стороне сервера (1) |
rate | Устанавливает скорость потока клиента |
cl_cmdrate | Количество пакетов в секунду от клиента к серверу |
cl_updaterate | Количество пакетов в секунду которое вы получите от сервера |
ex_interp | Интерполяция фигуры в секунду времени (lan – 0.01 / inet – 0.1) |
Аудио
Команда | Значение |
hisound | Включает режим качества звука: 1=22kHz, 0=11kHz |
nosound | Выключает (1) или включает звук (0) |
s_2dvolume | Максимальная громкость 2d звука (0-1) |
s_a3d | Поддержка A3D |
s_automax_distance | Устанавливает дистанцию для максимальной громкости |
s_automin_distance | Устанавливает дистанцию для минимальной громкости |
s_buffersize | Устанавливает размер буфера в байтах |
s_disable_a3d | Выключает a3d |
s_distance | Чем больше значение, тем ближе все слышно |
s_eax | Поддержка EAX |
s_enable_a3d | Включает a3d |
s_geometry | Геометрическое разбиение (только для a3d 2.0) |
s_max_distance | Максимальная дистанция, когда игрок еще слышит звуки |
s_min_distance | Минимальная дистанция, когда игрок начинается слышать звуки |
s_numpolys | Количество полигонов, обрабатываемых в a3d |
s_occfactor | Проницаемость материала, то есть насколько материал заглушает звук (0-1) |
s_refdelay | Минимальная дистанция между источником и ближайшим отражением |
s_verbwet | Контролирует “сухость” звуков. |
speak | Если в параметре указаны некоторые ключевые слова, то вы их услышите, например speak hello |
stopsound | Прекращает проигрывать текущий звук |
ambient_fade | Устанавливает дистанцию, на которой будет слышен звук, вшитый в карту (например музыка на cs_arabstreets) |
ambient_level | Устанавливает громкость для встроенных звуков (смотрите выше) |
_snd_mixahead | Устанавливает величину опережения звука,устраняет эффект “опаздывания” у звуковых карт (0.1) |
displaysoundlist | Включить / выключить показ всех загруженных звуков |
play | Проиграть .wav файл |
volume | Устанавливает громкость звука в игре |
bgmbuffer | Устанавливает размер буфера для аудио диска (4096) |
bgmvolume | Включить / выключить звук |
Речь (микрофон)
Команда | Значение |
voice_loopback | Подбор оптимальной громкости и расстояния от рта до микрофона (1) (Как вы услышите себя в наушниках, также вас услышат другие.) |
voice_scale x | Данная команда устанавливает громкость голоса всех игроков, в том числе и вашего |
voice_overdrive N | Понижает все звуки (стрельба и т.д.) в N раз, когда кто-то говорит. Оптимальное значение от 2 до 4 |
voice_overdrivefadetime x.xxx | Время снижения звуков (см. предыдущую команду). Оптимально 0.4 |
voice_maxgain x | Сглаживает голоса, тех кто говорит. Пробуйте от 1 до 5. Поэкспериментируйте в онлайне |
voice_avggain x | Сглаживание голосовой волны (удаление шума). Рекомендуется 0.5 – 0.1 |
voice_fadeouttime x.xxx | Устанавливает время затухания вашего голоса в секундах. Оптимальное значение около 0.1 |
Мышь
Команда | Значение |
+mlook | Допускает поднимать прицел вверх, вниз |
m_filter | Разрешение на сглаживание мыши |
m_forward | Устанавливает множитель чувствительности скорости движения вперед |
m_pitch | Устанавливает чувствительность мыши при движении вверх и вниз, отрицательное значение даст invert |
m_side | Задает скорость стрейфа мыши |
m_yaw | Задает коэффициент чувствительности мыши при движении влево, вправо |
sensitivity | Чувствительность мыши |
zoom_sensitivity_ratio | Чувствительность мыши при зуме |
lookspring | Включает автоматическое центрирование вида при активированном “mlook” |
lookstrafe | Включает режим смещения при движении при активированном “mlook” |
Интерфейс
Команда | Значение |
adjust_crosshair | Меняет цвета прицела |
bottomcolor | Задает “нижний” цвет у модели игрока |
drawradar | Включить радар |
hideradar | Выключить радар |
force_centerview | Фиксирует взгляд игрока прямо вперед |
graphheight | Задает ширину графика r_netgraph |
graphhigh | Задает максимальные лимит, который показывает график |
hud_centerid | Отображает имя игрока в центре (1) или внизу (0) |
hud_deathnotice_time | Задает время, в течение которого будут показываться фраги вверху экрана в секундах |
hud_fastswitch | Позволяет быстро менять оружие |
hud_saytext_time | Устанавливает время отображения чата на экране |
net_graph | Отображает FPS и параметры соединения |
net_graphpos | Задает позицию информационного окна на экране |
net_graphwidth | Ширина окна. |
r_decals | Лимит деталей, которые видны на карте |
r_drawviewmodel | Позволяет скрыть модель оружия |
r_netgraph | Отображает информацию о соединении (1) или информацию о посылке сетевых пакетов (2) |
r_shadows | Тень игроков |
scr_centertime | Задает время, в течение которого сообщения сервера остаются на экране |
scr_conspeed | Устанавливает скорость открытия консоли |
scr_printspeed | Скорость печати сообщений на экране |
sizedown | Уменьшает разрешение, повышая при этом FPS |
sizeup | Увеличивает разрешение, понижая при этом FPS |
topcolor | Задает “верхний” цвет для модельки игрока |
viewframe | Автивирует wireframe режим (для OpenGL) |
cl_observercrosshair | Включает прицел в режиме обсервера (свободный обзор и режиме камеры) |
cl_showfps | Отображает FPS в левом верхнем углу |
cl_shownet | Отображает параметры сетевых пакетов |
cl_slist | Задает количество серверов, которые видно при использовании команды slist |
cl_solid_players | Показывает модели в режиме “солид”. |
cl_waterdist | Расстояние в воде |
cl_adaptive | Отображает время, процент потерянных пакетов, средний лаг, скорость передачи/приема потока и количество кадров в секунду (FPS) |
cl_himodels | Активирует режим высокого качества моделей игроков |
cl_messages | Отображает сообщения сервера |
cl_bob | Задает, насколько сильно колеблется изображение у игрока при беге |
cl_bobcycle | Задает частоту колеблется изображение у игрока при беге |
cl_pitchdown | Задает максимальный угол просмотра вниз (89) |
cl_pitchspeed | Скорость изменения угла просмотра (225) |
cl_pitchup | Задает максимальный угол просмотра вверх (89) |
cl_righthand | Смена руки |
clear | Очистить сообщения в консоли |
clearlist | Очистить список серверов |
clientport | Задать порт на клиенте для соединения с сервером |
force_centerview | Фиксирует взгляд игрока строго вперед |
vid_config_x | Задает разрешение экрана по горизонтали |
vid_config_y | Задает разрешение экрана по вертикали |
vid_d3d | Активирует поддержку Direct3D |
vid_describemode | Отображение установки видеорежима |
vid_mode | Установка видеорежим |
vid_stretch_by_2 | Активировать растяжку видео (для чресстрочных разверток) |
viewsize | Задает видимый размер |
cl_hidefrags | Не показывать фраги/смерти игроков (кроме вас) в таблице счета |
cl_weather 1 | Включить/выключить погоду |
Видео
Команда | Значение |
gl_playermip | Эффективность визуальной видимости игрока |
gl_picmip | То же самое, что и выше |
gl_max_size | Лимит максимального размера текстуры (меньше значение – размытые текстуры) |
gl_texturemode | Задает режим визуализации [type]: gl_nearest_mipmap_nearest, gl_linear_mipmap_nearest (эти параметры касаются билинейной фильтрации) и gl_nearest_mipmap_linear, gl_linear_mipmap_linear (эти параметры касаются трилинейной фильтрации) |
gl_polyoffset | Смещение декалей относительно поверхности |
gl_cull | Активирует режим визуализации только видимых объектов |
gl_dither | Режим сглаживания |
gamma | Установка гаммы |
lightgamma | Установка гаммы освещения |
brightness | Установка яркости |
gl_ztrick | Для карт 3DFx необходимо поставить 1 для ускорения |
gl_zmax | Задает максимальный размер Z-буффера |
gl_alphamin | Видимость прозрачных текстур |
gl_monolights | При значении 1 карта становится светлой |
violence_ablood | Отображение крови/мяса |
violence_agibs | Отображение крови/мяса |
violence_hblood | Отображение крови/мяса |
violence_hgibs | Отображение крови/мяса |
r_drawentities | При значении 0 не видно объектов, в том числе и игроков |
r_dynamic | Включает / выключает фонарик и динамическое освещение |
r_shadows | Тени предметов и игроков |
r_mmx | Включает поддержку инструкций ММХ |
r_decals | Количество декалей в игре |
fastsprites | Качество дыма |
max_shells | Количество одновременно видимых гильз |
max_smokepuffs | Количество одновременно видимых дымков от пуль, при попадание в стены |
_vid_default_mode | Задает видеорежим по умолчанию (разрешение экрана) |
_vid_default_mode_win | Задает оконный видеорежим по умолчанию (разрешение экрана) |
_windowed_mouse | Использование мыши в оконном режиме |
gl_overbright | Режим максимальной яркости |
gl_round_down | Задает величину округления (чем больше число, тем быстрее визуализация, но хуже качество) |
gl_smoothmodels | Режим сглаживания моделей |
gl_spriteblend | Задает уровень детализации моделей игроков |
Подключение
Команда | Значение |
allowupload | Закачка/загрузка на сервер деталей и моделей (Вкл / выкл) |
cmdlist | Отображает список команд |
cvarlist | Отображает список переменных |
connect | Подключается к сереру по айпи |
disconnect | Выйти с сервера |
echo | Выводит текст в консоли |
enableconsole | Включение / отключение консоли |
exec | Запускает конфиг |
fullinfo | Отображает информацию о пользователе |
fullserverinfo | Отображает информацию о сервере |
getcertificate | Получает сертификат от WON |
getsv | Отображает IP каждого сервака и общее число серверов |
hideconsole | Закрыть консоль |
motd | Совет Дня и motd.txt файла на сервере |
pingsv | Проверка пинга да сервера |
quit | Быстрый выход из игры |
reconnect | Перезайти на текущий сервер |
retry | Повторно зайти на данный сервер |
serverinfo | Отображает информацию о сервере |
toggleconsole | Открыть/закрыть консоль |
wait | Задает паузу в скрипте, бинде и т.д. (приблизительно 1/20 – 1/25 секунды) |
Демо
Команда | Значение |
appenddemo | Записать демо и сохранить его под определенным именем |
listdemo | Отображение информации о демо |
playvol | Устанавливает громкость звука при проигрывании демки от 0 до 10 |
record | Начинает запись демки и сохраняет ее под определенным названием |
setdemoinfo info | Добавляет к демо информацию, например, название |
startdemos demo1, demo2 … | Проигрывает демки в заданном порядке, когда заканчивается последняя, начинает проигрывать все демки сначала |
demos | Выполняет цикл записанных демок, указанных в startdemos |
stop | Останавливает запись демо |
stopdemo | Останавливает воспроизведение демо |
swapdemo | Меняет позиции сегментов в демке |
timedemo | Воспроизводит демку с максимальным значением fps и показывает средний fps |
playdemo | Воспроизвести демку на обычной скорости |
viewdemo | Воспроизвести демку с возможностью выбора скорости |
startmovie name fps | Делает заданное количество снимков в секунду (bmp формат) |
endmovie | Прекратить делать снимки |
dem_speed | Скорость воспроизведения демки (1) |
dem_jump | Промотка демки, время в секундах, вперед, при отрицательном значении – назад |
dem_pause | Приостановка воспроизмедения демки |
Прочее
Команда | Значение |
cmd name | Изменить имя серверу |
crosshair | Установить / убрать прицел |
default_fov | Задает область обзора в градусах по умолчанию (меньшая величина угла – меньшая область будет видна) |
discard | Выбросить неиспользуемые боеприпасы |
disconnect | Выйти с сервера |
exit | Закрыть игру и выйти в windows |
fullserverinfo | Отображает информацию о сервере |
info | Отображает информацию об игроке |
menuselect | Выбор предмета в соответствующем меню |
model | Позволяет сменить текущую модель игрока |
name | Сменить свой ник |
nosound | Вкл./выкл. звук |
pause | Пауза |
quit | Закрыть игру и выйти в windows |
reconnect | Переподсоединиться к текущему серверу |
shortname | Показывает короткое имя клиента |
sizedown | Уменьшает размер экрана и увеличивает fps |
sizeup | Увеличивает размер экрана и уменьшает fps |
skin | Устанавливает скин модели игрока |
spectator | Устанавливает скин модели |
timerefresh | Отобразить средний fps в окружающей обстановке игрока |
user | Отобразить цвет модели, имя, внешний вид для указанного игрока |
+ip xxx.xxx.xxx.xxx | Указать айпи адрес |
version | Версия игры |
developer | Включает режим вывода дополнительных параметров на экран |
listmaps | Список доступных карт для смены уровня на сервере |
fps_max | Максимальное число FPS, при developer 1 будет больше 100 |
fps_modem | Максимальное число FPS клиента LANModem |
В завершении хочется пожелать вам настроить ваш клиент C S 1.6 с помощью этих консольных команд таким образом, чтобы играть было максимально комфортно и приятно.
Материал опубликован 20.06.2019. Любое копирование без нашего ведома строго запрещено!