Всадники Кальрадии

Модификации => Обмен опытом (в помощь мододелу) => Тема начата: Mark7 от 20 Декабря, 2011, 12:38

Название: Шейдеры - HLSL
Отправлено: Mark7 от 20 Декабря, 2011, 12:38
Здравствуйте. Короче решил проконсультироваться (а вдруг есть те кто уже хоть немного разбирается.  =/).
Короче вопрос таков. Вот к примеру я добавляю нужный мне код с операциями как и Vertex shader  так и Pixel Shader.

float4x4 World;
float4x4 View;
float4x4 Projection;
float4x4 WorldInverseTranspose;
 
float4 TintColor = float4(1, 1, 1, 1);
float3 CameraPosition;
...
........................
Ну и так далее.

В конце естественно я добавляю technique.
technique reflection
{
    pass P0
    {
        VertexShader = compile vs_2_0 VertexShaderFunction();
        PixelShader = compile ps_2_0 PixelShaderFunction();
    }
}

Компиляция проходит успешно, но если я его не за декларирую то его естественно в опене не найдёт. Декларация должна проходить теоретически так:
DEFINE_TECHNIQUES(reflection, VertexShaderFunction, PixelShaderFunction)
Но при этом кидает Ошибки...


Может я что то пропустил или забыл? Код вроде как правильный я проверял.  =/
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 21 Декабря, 2011, 18:18
Проблема решена! :)
 Тема пусть останется для тех кто интересуется шейдерами...
Название: Re: Шейдеры - HLSL
Отправлено: Spak от 16 Января, 2012, 20:59
Очевидно ты единственный продвинутый на наших широтах, мог бы поделиться опытом) В ролике с флагом меня смутил коммент автора относительно того что ничего стороннего не использовалось, что сбило с толку. Фишка с вертексными шейдерами мега крута, хотя наверное несёт последствия в виде доп.нагрузки на мибовский движок. Жду мода с "живой" травой или чем-то вроде, дабы глянуть как это в реале сказывается на производительности. В перспективе хочу капнуть тему глубже, но пока нет времени ограничился сбором информации по теме:

Общая информация (http://www.rudata.ru/wiki/%D0%A8%D0%B5%D0%B9%D0%B4%D0%B5%D1%80_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%29#.D0.92.D0.B5.D1.80.D1.88.D0.B8.D0.BD.D0.BD.D1.8B.D0.B5_.D1.88.D0.B5.D0.B9.D0.B4.D0.B5.D1.80.D1.8B)

Тематические топики на forums.taleworlds.com:

[Tutorial]Basics of Materials for artists (http://forums.taleworlds.com/index.php/topic,129204.msg3113552.html#msg3113552)

Информативный пост mtarni о добавлении нового шейдера и т.п. (http://forums.taleworlds.com/index.php/topic,177923.msg4295030.html#msg4295030)

Руководства по созданию шейдеров:
Effects and HLSL Tutorials  (http://rbwhitaker.wikidot.com/hlsl-tutorials)
Fur Effects - Teddys, Cats, Hair (шейдеры для волос, меха и т.п.) (http://www.xbdev.net/directx3dx/specialX/Fur/index.php)
Shader Tutorial - Make Your Own (MnB) (http://mbx.streetofeyes.com/index.php?topic=367.0)

ЗЫ

Новые шейдеры создаются путём редактирования имеющихся в ресурсах. Исходники можно скачать с оффсайта по ссылке в посте mtarni. Очевидно что вертексные шейдеры на directx 7 работать не будут (не уверен в актуальности, но всё же). Посредством шейдеров можно сделать траву, флаги, узоры на поверхностях и т.д.

Поскольку на Всадниках совсем глухо по шейдерам, думаю любая инфа может оказаться полезной. 
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 17 Января, 2012, 15:35
Spak (http://rusmnb.ru/index.php?action=profile;u=6502), Насчёт шейдеров из ОИМ, кода я не видел но скорее всего они добавляют их как отдельные шейдеры но на базе уже созданных, а потом просто в БРФ обозначают объекты которые будет их использовать в том числе и растительность. Хотя без просмотра кода ничего нельзя сказать.
Насчёт нагрузки движка, это 100 пудов но не известно на сколько.

Хорошо что ты заинтересовался вопросом :) (теперь есть хоть ктото на ВК)
Полезная инфа ту что ты скинул.
Но нужно быть осторожным при создание шейдеров, ни все шейдеры HLSL совместимы с мибом.
Например, один из путей создания шейдеров для миба. Нам нужно брать уже сушествующие. Например:

VS_OUTPUT_FONT_X vs_main_no_shadow(float4 vPosition : POSITION, float3 vNormal : NORMAL, float2 tc : TEXCOORD0, float4 vColor : COLOR0, float4 vLightColor : COLOR1)
{
VS_OUTPUT_FONT_X Out;

Out.Pos = mul(matWorldViewProj, vPosition);

float4 vWorldPos = (float4)mul(matWorld,vPosition);
float3 vWorldN = normalize(mul((float3x3)matWorld, vNormal)); //normal in world space
float3 P = mul(matWorldView, vPosition); //position in view space

Out.Tex0 = tc;

float4 diffuse_light = vAmbientColor + vLightColor;
diffuse_light += saturate(dot(vWorldN, -vSkyLightDir)) * vSkyLightColor;
diffuse_light += saturate(dot(vWorldN, -vSunDir)) * vSunColor;
Out.Color = (vMaterialColor * vColor * diffuse_light);

//apply fog
float d = length(P);

Out.Fog = get_fog_amount_new(d, vWorldPos.z);

return Out;
}

PS_OUTPUT ps_main_no_shadow(VS_OUTPUT_FONT_X In)
{
PS_OUTPUT Output;
float4 tex_col = tex2D(MeshTextureSampler, In.Tex0);
INPUT_TEX_GAMMA(tex_col.rgb);
Output.RGBColor =  In.Color * tex_col;
OUTPUT_GAMMA(Output.RGBColor.rgb);
return Output;
}
technique diffuse_no_shadow
{
pass P0
{
VertexShader = compile vs_2_0 vs_main_no_shadow();
PixelShader = compile ps_2_0 ps_main_no_shadow();
}
}

И заменять названия на свои. И на базе его писать уже что то своё.
Вы также  можете использовать CubicTextureSampler как образец текстуры материала, cubemap.
float4 cubeColor = texCUBE(CubicTextureSampler, direction);

Второй путь это просто изменять параметры уже существующих.

Короче позже я напишу как правильно внедрять шейдер в игру. :)
В данный момент меня интересует Parallax Mapping (http://graphics.cs.brown.edu/games/SteepParallax/index.html). Добавить я его смог но чтото он у меня криво работает.
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 21 Января, 2012, 16:36
Вот получилось, создать паралакс для миба... Вот как в игре.  :)
Название: Re: Шейдеры - HLSL
Отправлено: Dargor от 21 Января, 2012, 17:21
Я так понял, что последний скрин без параллакса, а предпоследний с ним (2 и 3 без, 1 с ним).  Да?   
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 21 Января, 2012, 17:28
Первых четыре с параллаксом, просто на втором его не сильно заметно. =/
 А последний без.
Название: Re: Шейдеры - HLSL
Отправлено: Unknown от 21 Января, 2012, 18:05
http://forum.boolean.name/showthread.php?t=8564&page=4 (http://forum.boolean.name/showthread.php?t=8564&page=4) - тут люди вроде как сделали учебник по шейдерам для начинающих. ссылка на этой странице.
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 21 Января, 2012, 18:50
[url]http://forum.boolean.name/showthread.php?t=8564&page=4[/url] ([url]http://forum.boolean.name/showthread.php?t=8564&page=4[/url]) - тут люди вроде как сделали учебник по шейдерам для начинающих. ссылка на этой странице.


Это движок Xors3D, мм вроде как он на С++ пишется а не на HLSL. =/
 

Добавлено: 21 Января, 2012, 19:52

Увеличил эффект в двойне так что выпуклость увеличилась. А то мне показалось что маловато. =/

http://youtu.be/mjkpbBilgN8 (http://youtu.be/mjkpbBilgN8)
Название: Re: Шейдеры - HLSL
Отправлено: Unknown от 22 Января, 2012, 14:17
Это движок Xors3D, мм вроде как он на С++ пишется а не на HLSL.

с десятой страницы учебника:
Цитировать (выделенное)
Xors3D использует HLSL в качестве языка шейдеров. Выражаясь более точно –
используется  надстройка  над  стандартными  шейдерами,  позволяющая  создавать
файлы эффектов, комбинирующих множество вершинных и пиксельных шейдеров,
и  предоставляющих  на основе  них  ряд техник, с  которыми  может  быть  отрисован
объект. Так в одном файле может быть реализован bump-mapping для всех видов ис-
точников  света (направленных,  прожекторных,  точечных),  и  переключатся  в  игре
всего одним вызовом.
Дальше я не глядел... Тут сказано, что надстройка, но всё равно должны даваться примеры самостоятельного написания... Наверно =/
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 22 Января, 2012, 14:30
Мм интересно, посмотрю что за чудо такое. Спасибо Ункловн. :)
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 01 Августа, 2012, 19:54
Сделал шейдер
при компиляции:

Microsoft (R) Direct3D Shader Compiler 9.27.952.3012
Copyright (C) Microsoft Corporation 2002-2009. All rights reserved.

F:\Module_Shaders\mb.fx(5429,11): error X4510: maximum ps_2_0 sampler register i
ndex (16) exceeded
F:\Module_Shaders\mb.fx(5541,23): ID3DXEffectCompiler::CompileEffect: There was
an error compiling expression
ID3DXEffectCompiler: Compilation failed

compilation failed; no code produced
Microsoft (R) Direct3D Shader Compiler 9.27.952.3012
Copyright (C) Microsoft Corporation 2002-2009. All rights reserved.

F:\Module_Shaders\mb.fx(5429,11): error X4510: maximum ps_2_0 sampler register i
ndex (16) exceeded
F:\Module_Shaders\mb.fx(5541,23): ID3DXEffectCompiler::CompileEffect: There was
an error compiling expression
ID3DXEffectCompiler: Compilation failed

compilation failed; no code produced
Script processing has ended.
Press any key to exit. . .

В чем и где ошибка и как её исправить??? :cry: :cry: :cry: :cry: :cry: :cry:
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 09 Августа, 2012, 18:17
Janycz (http://rusmnb.ru/index.php?action=profile;u=20234), просто копировать шейдеры из инета не пойдёт, в мнб используеться своя спецыфика которую ты должен вычислять смотря на уже созданные шейдеры... ;)
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 15 Августа, 2012, 13:04
Баловался с водой, пока что не вышло то чего я ожидал но работаю над этим...  =/

(http://www.image-share.com/upload/1665/292.jpg)
Название: Re: Шейдеры - HLSL
Отправлено: HunterWolf от 27 Ноября, 2012, 09:39
Немного полезной инфы с TW:
 
'Ctrl+F' still reloads mb.fx and postfx.fx. I've been using it in the newest version.
Nice work, mate.
As I've told you, Rendermonkey is probably easier to translate from. Keep us informed about how it goes!


Yeah being the eediot I am I thought cg and hlsl were two different shader languages, turns out they are syntactically identical, (have avoided so many cg tutorials/resources lol).

Those links you sent me helped, namely this one, [url]http://www.catalinzima.com/tutorials/crash-course-in-hlsl/[/url] ([url]http://www.catalinzima.com/tutorials/crash-course-in-hlsl/[/url])
But I actually found nvidias cg tutorial  here [url]http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter02.html[/url] ([url]http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter02.html[/url])
And Cg Toolkit's manual downloadable here (mostly for explanation of syntax) super helpful [url]https://developer.nvidia.com/cg-toolkit-download[/url] ([url]https://developer.nvidia.com/cg-toolkit-download[/url])

Oh, and I gotta ask, is it normal that it takes about 1-2 minutes for the shaders to compile? running decent comp here x3370@3ghz
I made a modified hlsl language style for Notepad++ if anyone is interested
It should be pretty self-explanatory,
as I tried to add a specific style to each group of syntax, like all intrinsic HLSL and math functions show up in red
functions defined outside the shader show up in dark green
Anything with out. or in. prefix is light blue
samplers show up orange

linky [url]https://www.dropbox.com/s/jxn9otv53jzkl3b/Warband_hlsl.xml[/url] ([url]https://www.dropbox.com/s/jxn9otv53jzkl3b/Warband_hlsl.xml[/url])

Also another resource explaining Coordinate Transforms [url]http://www.yaldex.com/open-gl/ch01lev1sec9.html[/url] ([url]http://www.yaldex.com/open-gl/ch01lev1sec9.html[/url])
И вообще в этой теме есть что почерпнуть по ним
А это ещё одно подсветка для синтаксиса

[вложение удалено Администратором]

[вложение удалено Администратором]

[вложение удалено Администратором]
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 26 Апреля, 2013, 19:15
Мои первые попытки в создании HD воду...  :)

CWE - HD Water Bump + Water Shader (Test v.2) (http://www.youtube.com/watch?v=ALK-0gJHJig#ws)


Пока что присутствуют проблемы с отражением...
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 27 Апреля, 2013, 19:45
Janycz ([url]http://rusmnb.ru/index.php?action=profile;u=20234[/url]), в мнб используеться своя спецыфика

А в чем заключается данная специфика????  :-\
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 27 Апреля, 2013, 20:53
Janycz ([url]http://rusmnb.ru/index.php?action=profile;u=20234[/url]), в мнб используеться своя спецыфика

А в чем заключается данная специфика????  :-\



В структуре. Если хотите разбираться то должны делать это сами на словах я мало что смогу вам объяснить... :)
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 28 Апреля, 2013, 21:27
Вот полазил по варбанду и нашел какието непонятные шейдеры :-\, ассемблерного вида :D  (bump_shader.pp, myshader.pp, faceshader.pp)

Пример (bump_shader.pp)
ps.1.1

tex t0
dp3 r1.rgb, t0, v0
tex t1
mul r0.rgb, t1, r1
mov r0.a, v0.a

Вопрос возник: что это за шейдеры и как их писать???
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 28 Апреля, 2013, 23:48
Janycz (http://rusmnb.ru/index.php?action=profile;u=20234), это шейдеры в отдельных файлах которые не нужно компилировать присутствующих в мибе я пока не разбирался как их писать. =/
Название: Re: Шейдеры - HLSL
Отправлено: Легионер от 29 Апреля, 2013, 10:37
Это для 7 директса кажись....
Название: Re: Шейдеры - HLSL
Отправлено: HunterWolf от 29 Апреля, 2013, 10:56
Это пиксельные шейдеры версии 1.1 для старых версий директа и видюх, по моему отвечают за весь бамп(когда на 7 ке), отвечает за все фейсы отвечают за, последний режим зеркальности, походу отражение (мой шейдер собственный сделанный шейдер\режим)
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 29 Апреля, 2013, 20:23
Я полазил в интернете и вот что нашел:

  1) Эти шейдеры написаны на AGAL
  2) Наверное, они фрагментные
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 18 Июня, 2013, 20:11
Вот моя последняя работа.
Усилитель резкости: добавляет резкость всем 3д моделям и 2д текстурам. А также световая коррекция.


CWE - Power Field Shader (http://www.youtube.com/watch?v=JIC0yCjla1k#ws)
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 21 Июня, 2013, 14:49
Возник такой вопрос: возможно ли написание шейдеров для миба версии выше 2.0?

По теме: очень хорошая статья, обязательна к прочтению для начинающих - http://www.gotdotnet.ru/blogs/gsaf/6523/ (http://www.gotdotnet.ru/blogs/gsaf/6523/)
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 21 Июня, 2013, 14:58
Возник такой вопрос: возможно ли написание шейдеров для миба версии выше 2.0?

Именно в мибовских шейдерах то врятли.  =/
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 21 Июня, 2013, 15:01
Mark7 (http://rusmnb.ru/index.php?action=profile;u=3059), то есть возможно, но движок их не потянет? Или использование 2.0 захардкодено?
Кстати, parallax это же ведь 3.0, не?
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 21 Июня, 2013, 16:04
Возник такой вопрос: возможно ли написание шейдеров для миба версии выше 2.0?
Можно
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 21 Июня, 2013, 16:14
Mark7 ([url]http://rusmnb.ru/index.php?action=profile;u=3059[/url]), то есть возможно, но движок их не потянет? Или использование 2.0 захардкодено?
Кстати, parallax это же ведь 3.0, не?


Честно говоря не знаю как будет себя вести игра и скомпилирует ли их вообше. Я всегда делал всё на 2.0 как оригинальные шейдеры миба в том числе и параллакс.

Вот

Цитировать (выделенное)
#if !defined (PS_2_X)
//#if !defined (VS_2_b)
define high quality shader profile: PS_2_X ( ps_2_b or ps_2_a )"
#endif


Так что не знаю будет ли он 3.0 поддерживать я даже не мучался этим вопросом.
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 23 Июня, 2013, 14:17
Так что не знаю будет ли он 3.0 поддерживать я даже не мучался этим вопросом.

Почитал тему на форуме taleworlds, люди пишут, что шейдеры версии 3.0 компилятся и работают в игре. Работоспособность я не проверял, но теоретически они должны работать, потому что 1) компилятор с настройкой fx_2_0 компилит эти (3.0) шейдеры 2) версия 3.0 соответствует DirectX 9.0, который используется в игре.
Что же до 10 и 11 версии DX - там придется изменять настройки компилятора на fx_4_0 или fx_5_0 + править код имеющихся/компилировать в режиме совместимости, а игра может и не переварить эти шейдеры.
Чтож, пойду проверять, если чего получится - напишу.
_________________
Кстати, кому интересно, вот более новые версии компилятора (fxc.exe, прикрепил)

Да, и еще - вот официальная документация по компилятору http://msdn.microsoft.com/en-us/library/bb232919(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/bb232919(v=vs.85).aspx)
И вообще на MSDN-е много полезной инфы, есть, в т. ч. и по шейдерам http://msdn.microsoft.com/en-us/library/bb509561(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/bb509561(v=vs.85).aspx)

[вложение удалено Администратором]

[вложение удалено Администратором]
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 29 Июня, 2013, 18:18
Так что не знаю будет ли он 3.0 поддерживать я даже не мучался этим вопросом.

Почитал тему на форуме taleworlds, люди пишут, что шейдеры версии 3.0 компилятся и работают в игре. Работоспособность я не проверял, но теоретически они должны работать, потому что 1) компилятор с настройкой fx_2_0 компилит эти (3.0) шейдеры 2) версия 3.0 соответствует DirectX 9.0, который используется в игре.
Что же до 10 и 11 версии DX - там придется изменять настройки компилятора на fx_4_0 или fx_5_0 + править код имеющихся/компилировать в режиме совместимости, а игра может и не переварить эти шейдеры.
Чтож, пойду проверять, если чего получится - напишу.
_________________
Кстати, кому интересно, вот более новые версии компилятора (fxc.exe, прикрепил)

Да, и еще - вот официальная документация по компилятору [url]http://msdn.microsoft.com/en-us/library/bb232919(v=vs.85).aspx[/url] ([url]http://msdn.microsoft.com/en-us/library/bb232919(v=vs.85).aspx)[/url]
И вообще на MSDN-е много полезной инфы, есть, в т. ч. и по шейдерам [url]http://msdn.microsoft.com/en-us/library/bb509561(v=vs.85).aspx[/url] ([url]http://msdn.microsoft.com/en-us/library/bb509561(v=vs.85).aspx)[/url]


Игра то переварит спокойно.
А вот видеокарта - тут могут быть проблемы. (если она вдобавок старая :D)
 

Добавлено: 29 Июня, 2013, 19:02

Mark7 ([url]http://rusmnb.ru/index.php?action=profile;u=3059[/url]), то есть возможно, но движок их не потянет? Или использование 2.0 захардкодено?
Кстати, parallax это же ведь 3.0, не?

parallax может быть и 2.0
ток криво получается, особенно сблизи:

[вложение удалено Администратором]

[вложение удалено Администратором]
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 29 Июня, 2013, 19:41
Janycz (http://rusmnb.ru/index.php?action=profile;u=20234), да нет, я думаю это просто шейдер коряво написан.
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 29 Июня, 2013, 19:49
ValerBOSS (http://rusmnb.ru/index.php?action=profile;u=19867), Инфа то что надо (лень было читать всё на талевордсе :D) Наверное буду переходить на 3.0  :)

Janycz (http://rusmnb.ru/index.php?action=profile;u=20234), у менято паралакс на 2.0 работает нормально, шейдер криво написали. Или бамп неправильно сделали.


Шас у меня мечта водичку замутить нормальную а то никак её до ума довести не могу.
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 29 Июня, 2013, 20:50
Пара занятных вещиц, у кого нет:
DirectX SDK 2010 - http://www.microsoft.com/en-us/download/details.aspx?id=6812 (http://www.microsoft.com/en-us/download/details.aspx?id=6812) - мануалы, туториалы, а так же примеры кода (cpp и hlsl) с обозревателем всего этого дела + оф. тулзы для разработки под DX (новая версия fxc.exe оттуда).
NVIDIA Graphics SDK 11 https://developer.nvidia.com/nvidia-graphics-sdk-11 (https://developer.nvidia.com/nvidia-graphics-sdk-11) - то же самое практически, но от Nvidia
Вот еще одня версия fxc (более новая, из Win8 SDK):

[вложение удалено Администратором]

[вложение удалено Администратором]
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 30 Июня, 2013, 09:36
Janycz ([url]http://rusmnb.ru/index.php?action=profile;u=20234[/url]), у менято паралакс на 2.0 работает нормально, шейдер криво написали. Или бамп неправильно сделали.


Я всеволишь раскомментил
float3 viewVec = normalize(In.ViewDir);
   {
      float2 plxCoeffs = float2(0.04, -0.02) * debug_vector.w;
      float height = tex2D(NormalTextureSampler, In.Tex0).a;
      float offset = height * plxCoeffs.x + plxCoeffs.y;
      In.Tex0 = In.Tex0 + offset * viewVec.xy;
   }
в ps_main_bump;

и вставил в ps_main_bump_simple и ps_main_bump_simple_multitex
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 06 Июля, 2013, 22:45
Вот анимация с помощью текстур, (в опене), теперь колдую над шейдером, пытаюсь понять что нужно выковырять из водного шейдера что отвечает за аниму.  =/

http://youtu.be/QGILoVcYUF4 (http://youtu.be/QGILoVcYUF4)
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 10 Июля, 2013, 14:30
Сделал прибой, буду ешё дорабатывать, факт в том что получилось  :)

http://youtu.be/wcN8K6x04Dg (http://youtu.be/wcN8K6x04Dg)
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 13 Июля, 2013, 12:44
*deleted
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 14 Июля, 2013, 12:41
Опять про версии шейдеров...


Так, как Warband юзает DirectX 9 то мы не можем делать версию шейдеров, выше чем 3.0.
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 14 Июля, 2013, 15:07
Janycz (http://rusmnb.ru/index.php?action=profile;u=20234), я спрашивал не про версию шейдеров. Впрочем, не важно.
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 31 Июля, 2013, 20:01
Кто знает возможно ли добавлять новые самплеры? =/

Думаю врятли но хз. =/
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 31 Июля, 2013, 20:45
Mark7 (http://rusmnb.ru/index.php?action=profile;u=3059), в readme вот что можно прочитать:
Цитировать (выделенное)
Do not change fx_configuration.h file since it holds application dependent configration parameters.

Возможно, что к списку сэмплеров это не относится, однако стоит учитывать.

Вот здесь (http://mbmodwiki.ollclan.eu/Yoshiboy%27s_SSAO) есть код шейдера для миба, в котором используется "свой" сэмплер, работоспособность подтверждается скринами. То есть можно добавлять сэмплеры.
Но, вернее было бы сказать, что добавлять их нельзя. Т. к. максимально допустимое кол-во сэмплеров - 16 штук и все они используются (количество зависит от версии пиксельных шейдеров - для 2.0 и 3.0 это 16), поэтому, скорее всего, нужно править имеющиеся.
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 31 Июля, 2013, 20:56
Тогда можно както покрутить уже сушествуюшие.  =/
И ешё одно я так понимаю если править post effects. Он не компилируется, то есть его не нужно компелироввать а просто сохранять? :-\
Просто хочу поработать с Vinaigrette vignette... =/
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 31 Июля, 2013, 21:11
Что за "винегрет", коли не секрет?  :)

Этот файл компилируется игрой, в соответствии с настройками module_postfx. То есть да, предварительно компилировать его не нужно.
В readme написано, что этот файл редактировать нельзя. Про добавлять ничего не написано, правда, но заработает ли?
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 31 Июля, 2013, 21:23
Что за "винегрет", коли не секрет?  :)

Этот файл компилируется игрой, в соответствии с настройками module_postfx. То есть да, предварительно компилировать его не нужно.
В readme написано, что этот файл редактировать нельзя. Про добавлять ничего не написано, правда, но заработает ли?

Вот я и хочу попробовать, думаю заработает, даже процентов на %80 уверен.
Винигрет это салат такой :), ну я немного не правильно написал, думаю ты так лучше поймёш :vignette :D

Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 31 Июля, 2013, 21:30
Ну что, тогда ждем скринов!
ну я немного не правильно написал, думаю ты так лучше поймёш :vignette
А-а, понял. А то полез гуглить  - а там салат :D
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 02 Августа, 2013, 09:08
Что за "винегрет", коли не секрет?  :)

Этот файл компилируется игрой, в соответствии с настройками module_postfx. То есть да, предварительно компилировать его не нужно.
В readme написано, что этот файл редактировать нельзя. Про добавлять ничего не написано, правда, но заработает ли?
Типо динамическая компиляция? :-\
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 02 Августа, 2013, 13:09
Да, по запросу игры (когда сцены загружаются, скорее всего).
P.S. Инфа из того же ридми.
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 02 Августа, 2013, 16:10
Да, по запросу игры (когда сцены загружаются, скорее всего).
P.S. Инфа из того же ридми.
Спасибо.
Ссылку можете дать? Так как не слышал никогда о динамической компиляции в C++.
Название: Re: Шейдеры - HLSL
Отправлено: Flanir от 02 Августа, 2013, 16:27
Да, по запросу игры (когда сцены загружаются, скорее всего).
P.S. Инфа из того же ридми.

Спасибо.
Ссылку можете дать? Так как не слышал никогда о динамической компиляции в C++.

загугли просто программная компилиция с++, или тому подобное
то есть тебе просто нужно скомилировать файл из своей программы, обративишись к компилятору с++.
Простой пример с хабра на шарпе
http://habrahabr.ru/post/67431/ (http://habrahabr.ru/post/67431/)
 
Поищи аналогичное для с++.
Название: Re: Шейдеры - HLSL
Отправлено: ValerBOSS от 02 Августа, 2013, 16:33
Janycz (http://rusmnb.ru/index.php?action=profile;u=20234), это не совсем cpp, это одна из фич api directx. Скорее всего, вот это:
http://msdn.microsoft.com/en-us/library/hh446872(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/hh446872(v=vs.85).aspx)
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 04 Августа, 2013, 11:35
Да, по запросу игры (когда сцены загружаются, скорее всего).
P.S. Инфа из того же ридми.

Спасибо.
Ссылку можете дать? Так как не слышал никогда о динамической компиляции в C++.

загугли просто программная компилиция с++, или тому подобное
то есть тебе просто нужно скомилировать файл из своей программы, обративишись к компилятору с++.
Простой пример с хабра на шарпе
[url]http://habrahabr.ru/post/67431/[/url] ([url]http://habrahabr.ru/post/67431/[/url])
 
Поищи аналогичное для с++.
В C# эту фичу я давно знаю. Я пробовал искать для С++ но ничего особого не нашел.
Но нашёл другое - самоизменяющийся код.
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 30 Сентября, 2013, 21:21
Вот наконец получилось. Анимация текстур, как фреймы (как водяной шейдер). Только водяной сделан подругому. Пришлось повозиться. Теперь можно делать анимированных птих и прочую лабудень (даже вытекающую кровь из под трупа :) ) с помощью текстур.  :)

http://youtu.be/NzFX1VrOSdo (http://youtu.be/NzFX1VrOSdo)
Название: Re: Шейдеры - HLSL
Отправлено: Mark7 от 11 Февраля, 2014, 14:35
Очень полезная вещь, и удобная для создания функций.
http://um-razum.ru/graph/ (http://um-razum.ru/graph/)
Название: Re: Шейдеры - HLSL
Отправлено: Flanir от 11 Февраля, 2014, 20:41
Очень полезная вещь, и удобная для создания функций.
[url]http://um-razum.ru/graph/[/url] ([url]http://um-razum.ru/graph/[/url])

тогда лучше wolfram alpha использовать
Название: Re: Шейдеры - HLSL
Отправлено: Дикий-дикий повар от 26 Июня, 2014, 03:22
Ну ладно, как модифицировать FXO с шейдерами и как подключить добавленное к игре я разобрался. Но, о ужас, до сих пор не нашёл русскоязычной литературы по шейдерам (я так понял таковая даже на английском - редкость). Подсыпьте, пожалуйста, ссылок, буду очень благодарен.
Название: Re: Шейдеры - HLSL
Отправлено: Pavvvell от 14 Декабря, 2014, 16:03
Ну ладно, как модифицировать FXO с шейдерами и как подключить добавленное к игре я разобрался.
И как, вернее следующее, если я возьму архив со шейдерами из  TLD или The Deluge и пропишу в своем моде, а шейдеры пропищу в архивах с травой или деревьями (парусами, знаменами и тд) то они у меня заработают (деревья и тд заколыхаются) или надо что-то еще делать?
Название: Re: Шейдеры - HLSL
Отправлено: Дикий-дикий повар от 14 Декабря, 2014, 17:59
В общем нам предлагается два исходных FX (в корневой игры или скачать), там пишутся пиксель- и вертекс-шейдеры, пишется техника с таковыми, всё это дело компилируется и отправляется с заменой в корневую папку игры, техника добавляется в BRF как шейдер (стандартные в архиве core_shaders), после чего можно этот щейдер ставить на обработку материалов (когда вскрываете архив посредине окна панель data там так и написано: shader). Вот и делайте выводы.  А ежели по части того как писать шейдеры, то я здесь мало чем смогу помочь - сам еще толком не разобрался.
Название: Re: Шейдеры - HLSL
Отправлено: ha3481 от 26 Июля, 2017, 01:10
такой вопрос..
на глобальной карте в светлое время суток снег (и не только) окрашивается в желтоватый оттенок
___________
видимо это в postfx.txt
Название: Re: Шейдеры - HLSL
Отправлено: ha3481 от 29 Июля, 2017, 16:35
что может давать такой эффект?

вся эта область глобальной карты использует один шейдер..
Название: Re: Шейдеры - HLSL
Отправлено: ha3481 от 25 Августа, 2020, 13:22
сделал шейдер..
если игра использует интегрированную видеокарту, то всё работает
если игра использует Nvidia - не работает

в чем нюанс?

Название: Re: Шейдеры - HLSL
Отправлено: Vanok от 25 Августа, 2020, 18:38
ha3481 (https://rusmnb.ru/index.php?action=profile;u=41985), однако, много времени у тебя заняло. Предпоследний твой пост в теме - трехгодичной давности.  :crazy:
Что за шейдер то вообще? Документацию на него смотрел? Может он просто старый слишком для современной видеокарты?
Название: Re: Шейдеры - HLSL
Отправлено: ha3481 от 25 Августа, 2020, 18:47
да нее.. предыдущие свои вопросы я решил.. да и с этим разберусь времени жалко просто.. )
тут вроде есть люди которые несколько владеют вопросом.. мало ли

выкладывать полностью код не вижу смысла.. шейдер как шейдер.. облака на глобалке рисует
я вообще-то думал что проблем с ним нет.. их и не было когда я на стареньком нетбуке все это делал..
сейчас ноут сменил и вижу что работает как-то не так..
в настройках панели Nvidia перехожу на интегрированную карту и все норм работает
как-то альфа канал себя по другому ведет..

----------------------------------------------------------
и еще такой вопрос.. есть такие папки..
GLShaders
GLShadersOptimized

там на каждый стандартный шейдер xxx есть свои файлы .glsl
ps_xxx.glsl
vs_xxx.glsl
fs_xxx.glsl

вопрос: если я делаю что-то новое через mbsrc.fx, я так же должен делать такие же .glsl? 
Название: Re: Шейдеры - HLSL
Отправлено: Janycz от 25 Августа, 2020, 20:48
вопрос: если я делаю что-то новое через mbsrc.fx, я так же должен делать такие же .glsl? 
mbsrc.fx для DirectX (используется в версии игры под Windows)
.glsl для OpenGL (используется в версии игры под GNU/Linux и Mac OS)

в настройках панели Nvidia перехожу на интегрированную карту и все норм работает
как-то альфа канал себя по другому ведет..
Может от настроек видеокарты зависит.
Вообще, 2 видюхи (интегрированная и дискретная) это то еще удовольствие: испытано на себе, и не советую другим иметь такое. У самого были проблемы с играми, что часть шли нормально только через интегрированную.
Название: Re: Шейдеры - HLSL
Отправлено: ha3481 от 25 Августа, 2020, 21:33
Janycz (https://rusmnb.ru/index.php?action=profile;u=20234), спасибо за разъяснения

я просто засомневался.. может я чего не учел..
не так уж чтобы сильно волоку в маунтовском кодинге, но могу что-то делать по образу-подобию.. а тут как-то странно получилось и заметил случайно и явных причин не вижу.. вот и спросил..

суть шейдера такова..
на глобалке висит на некоторой высоте меша.. по ней тянется текстура с облаками.. и альфа-каналом регулируется прозрачность по мере приближения камеры к карте.. в диапазоне примерно [0.2..0.8].. чем ближе тем прозрачнее, чем дальше тем плотнее.. типа имитация плотности атмосферы..

на интегрированной.. все хорошо работает..
на дискретной такое ощущение, что альфа канал может быть только или 0 или 1.. т.е например 0.4 будет как 0.. а 0.6 уже как 1..
ну ладно.. не суть в общем.. разберусь

спасибо за коммент