Форум » Текстурирование » шардеры для текстур... » Ответить

шардеры для текстур...

*ZeRо*: в основном здесь будет представлено то что было уже написано в других темах...просто я это все в одну кучу соберу)) от Думера : [quote]пример простейшего шейдера с прозрачностью с альфа каналом:[quote] textures/test3red/test3red { qer_editorimage textures/test3red/test3red.tga surfaceparm alphashadow // врубаем прозрачность surfaceparm nomarks // необязательно но желательноj { map textures/test3red/test3red.tga // грузим нашу TGA-шку alphaFunc GE128 // опеределяем как будет работать наш альфа-канал depthWrite } [/quote] Именно значение GE128 определяет что черные участки альфа-канала будут прозрачными. У alphaFunc возможны три варианта: alphaFunc GT0 - непрозрачно все. alphaFunc LT128 - белое прозрачно, черное нет. alphaFunc GE128 - обратно LT128. Есть ещё blendfunc, с помощью которой можно сделать градации прозрачности, но там позамороченней. Хотя.. если юзать редактор шейдеров, то не особо сложно. [/quote] пример как делать декали спс Амон: [quote]если надо снег какой-нить нарисовать, рисуешь на черном фоне его, потом к нему пишешь шадер примерно следуюшего содержания: textures/mytexture { surfaceparm nonsolid //этот параметр делает текстурку неосязаемой { map textures/mytexture.tga blendfunc GL_ONE GL_ONE //делаем текстуру полупрозрачной } } после этой операции текстура станет прозрачной в темных местах (чем темнее, тек прозрачнее). на карту ставится следующим способом - создаешь браш с нужными размерами, жмешь curve => simple patch mesh, появляется плоская кривая, растфгиваешь её, подгоняешь на ней текстуры как надо. если надо нарисовать плакат или нечто в этом духе - скрипт такой же, только надо добавить после "surfaceparm nonsolid" строчку "cull twosided" и убрать "blendfunc GL_ONE GL_ONE", теперь картинка будет непрозрачной и двухсторонней. если надо намалевать нечто другое, например, трещину в стене или кровь - рисуешь на белом фоне, потом жмешь ctrl+i, invert colors то бишь, после этого получается на черном фоне белая трещина, ну или кровища голубая. скрипт пишется к таким вещам так: textures/mytexture { surfaceparm trans //хз что это surfaceparm nomarks //чтобы на текстуре не оставалось следов от выстрелов cull none sort 10 //последние две тоже хз nopicmip // чтобы текстура не размазывалась, если играют при низких настройках { clampmap textures/mytexture.tga blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR // это делает текстуру прозрачной, а потом инвертирует цвета } } в игре трещина будет уже снова черной, кровь красной, итд [/quote]

Ответов - 0



полная версия страницы