Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
q3bers:materials [31.08.2009 12:29] GT-Agressor |
q3bers:materials [06.07.2020 03:50] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Оригинальные материалы (.shader) из Quake 3 не совсем подходят для Q3Bers, так как последнему требуется прямо задать какой стейдж (слой) материала должен быть освещаемым. | ||
- | |||
- | Пример материала: | ||
- | |||
- | textures/ | ||
- | { | ||
- | { | ||
- | map textures/ | ||
- | tcmod scroll 0 1 | ||
- | tcMod turb 0 .25 0 5.6 | ||
- | tcmod scale 1.5 1.5 | ||
- | | ||
- | | ||
- | } | ||
- | { | ||
- | map textures/ | ||
- | | ||
- | | ||
- | } | ||
- | { | ||
- | map $lightmap | ||
- | | ||
- | | ||
- | } | ||
- | } | ||
- | |||
- | Данный материал состоит из трех стейджей. Оснновная текстура - blocks17g_ow.tga, | ||
- | |||
- | Для того, чтобы Q3Bers понимал, | ||
- | |||
- | Пример: | ||
- | |||
- | textures/ | ||
- | { | ||
- | { | ||
- | map textures/ | ||
- | tcmod scroll 0 1 | ||
- | tcMod turb 0 .25 0 5.6 | ||
- | tcmod scale 1.5 1.5 | ||
- | blendFunc GL_ONE GL_ZERO | ||
- | } | ||
- | { | ||
- | map textures/ | ||
- | blendFunc blend | ||
- | lightstage | ||
- | } | ||
- | { | ||
- | map $lightmap | ||
- | blendFunc filter | ||
- | } | ||
- | } | ||
- | |||
- | Также здесь намеренно убраны строки rgbGen identity, которые не нужны вообще. | ||
- | |||
- | Правила: | ||
- | |||
- | - Научиться визуально на лету определять какой стейдж является освещаемым. Если непонятно, | ||
- | |||
- | * Элемент ненумерованного списка | ||
- | * Если первый стейдж не имеет бленда и не $lightmap - то вписываем lightStage. | ||
- | * Если первый стейдж блендится, | ||
- | * Если alphaFunc GE128 (или другой параметр) - это значит дырявая текстура, | ||
- | * Если первый lightStage-стейдж (не обязательно первый, | ||
- | |||
- | В шейдерах террайнов в TeamArena есть засада: | ||
- | |||
- | стейджи 0 и 1 должны: | ||
- | |||
- | * иметь одинаковый rgbGen | ||
- | * оба стейджа должны быть lightStage или не-lightStage | ||
- | * blendFunc стейджа0 = нет или (GL_ONE GL_ZERO) | ||
- | * blendFunc стейджа1 = blend | ||
- | |||