Разделы

Новости
Об игре
Учебник
ЧаВо
Файлы
Галерея
Видео
Наши блоги
О сайте
Форум

Поиск

Голосование

Смотрите ли вы хотя бы периодически стримы?
Да. Предпочитаю YouTube
64 - 38%
Да. Предпочитаю Twitch
21 - 12%
Да. Предпочитаю GoodGame
1 - 0%
Да. Предпочитаю другие источники
1 - 0%
Да, и мне все равно где смотреть - главное автор и контент
26 - 15%
Нет, стримы мне не интересны
55 - 32%
Всего голосов: 168


Реклама



Пользователей
  • Всего: 24668
  • Последний: Xaos
Сейчас на форуме
Пользователи: 2
Гостей: 197
Всего: 199

Реклама

Теги:

Автор Тема: Шейдеры - HLSL  (Прочитано 21939 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Сообщений: 2641
    • Просмотр профиля
0
« : 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)
Но при этом кидает Ошибки...

(нажмите для открытия / скрытия)

Может я что то пропустил или забыл? Код вроде как правильный я проверял.  =/
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #1 : 21 Декабрь, 2011, 18:18 »
Проблема решена! :)
 Тема пусть останется для тех кто интересуется шейдерами...
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 505
    • Просмотр профиля
0
« Ответ #2 : 16 Январь, 2012, 20:59 »
Очевидно ты единственный продвинутый на наших широтах, мог бы поделиться опытом) В ролике с флагом меня смутил коммент автора относительно того что ничего стороннего не использовалось, что сбило с толку. Фишка с вертексными шейдерами мега крута, хотя наверное несёт последствия в виде доп.нагрузки на мибовский движок. Жду мода с "живой" травой или чем-то вроде, дабы глянуть как это в реале сказывается на производительности. В перспективе хочу капнуть тему глубже, но пока нет времени ограничился сбором информации по теме:

Общая информация

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

[Tutorial]Basics of Materials for artists

Информативный пост mtarni о добавлении нового шейдера и т.п.

Руководства по созданию шейдеров:
Effects and HLSL Tutorials
Fur Effects - Teddys, Cats, Hair (шейдеры для волос, меха и т.п.)
Shader Tutorial - Make Your Own (MnB)

ЗЫ

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

Поскольку на Всадниках совсем глухо по шейдерам, думаю любая инфа может оказаться полезной. 
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #3 : 17 Январь, 2012, 15:35 »
Spak, Насчёт шейдеров из ОИМ, кода я не видел но скорее всего они добавляют их как отдельные шейдеры но на базе уже созданных, а потом просто в БРФ обозначают объекты которые будет их использовать в том числе и растительность. Хотя без просмотра кода ничего нельзя сказать.
Насчёт нагрузки движка, это 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. Добавить я его смог но чтото он у меня криво работает.
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #4 : 21 Январь, 2012, 16:36 »
Вот получилось, создать паралакс для миба... Вот как в игре.  :)
(нажмите для открытия / скрытия)
« Последнее редактирование: 21 Январь, 2012, 17:30 от Mark7 »
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 3006
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #5 : 21 Январь, 2012, 17:21 »
Я так понял, что последний скрин без параллакса, а предпоследний с ним (2 и 3 без, 1 с ним).  Да?   
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #6 : 21 Январь, 2012, 17:28 »
Первых четыре с параллаксом, просто на втором его не сильно заметно. =/
 А последний без.
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 2878
    • Просмотр профиля
0
« Ответ #7 : 21 Январь, 2012, 18:05 »
http://forum.boolean.name/showthread.php?t=8564&page=4 - тут люди вроде как сделали учебник по шейдерам для начинающих. ссылка на этой странице.
Мечтаю о RPG, в которой смогу отыграть роль мага-дровосека, промышляющего разбоем.

Запомни, воин: если руки у тебя растут из жопы, имеет смысл повернуться к врагу спиной!

А вы никогда не задумывались, что вся херня в нашем мире происходит в том числе и потому, что живые перестали бояться мёртвых?
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #8 : 21 Январь, 2012, 18:50 »
http://forum.boolean.name/showthread.php?t=8564&page=4 - тут люди вроде как сделали учебник по шейдерам для начинающих. ссылка на этой странице.


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

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

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

http://youtu.be/mjkpbBilgN8
« Последнее редактирование: 21 Январь, 2012, 19:52 от Mark7 »
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 2878
    • Просмотр профиля
0
« Ответ #9 : 22 Январь, 2012, 14:17 »
Это движок Xors3D, мм вроде как он на С++ пишется а не на HLSL.

с десятой страницы учебника:
Цитировать (выделенное)
Xors3D использует HLSL в качестве языка шейдеров. Выражаясь более точно –
используется  надстройка  над  стандартными  шейдерами,  позволяющая  создавать
файлы эффектов, комбинирующих множество вершинных и пиксельных шейдеров,
и  предоставляющих  на основе  них  ряд техник, с  которыми  может  быть  отрисован
объект. Так в одном файле может быть реализован bump-mapping для всех видов ис-
точников  света (направленных,  прожекторных,  точечных),  и  переключатся  в  игре
всего одним вызовом.
Дальше я не глядел... Тут сказано, что надстройка, но всё равно должны даваться примеры самостоятельного написания... Наверно =/
Мечтаю о RPG, в которой смогу отыграть роль мага-дровосека, промышляющего разбоем.

Запомни, воин: если руки у тебя растут из жопы, имеет смысл повернуться к врагу спиной!

А вы никогда не задумывались, что вся херня в нашем мире происходит в том числе и потому, что живые перестали бояться мёртвых?
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #10 : 22 Январь, 2012, 14:30 »
Мм интересно, посмотрю что за чудо такое. Спасибо Ункловн. :)
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 901
  • Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #11 : 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:
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #12 : 09 Август, 2012, 18:17 »
Janycz, просто копировать шейдеры из инета не пойдёт, в мнб используеться своя спецыфика которую ты должен вычислять смотря на уже созданные шейдеры... ;)
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #13 : 15 Август, 2012, 13:04 »
Баловался с водой, пока что не вышло то чего я ожидал но работаю над этим...  =/

  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 7662
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов И создали они сайт... Призер конкурса Футболка по версии Всадников
    • Просмотр профиля
+1
« Ответ #14 : 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, http://www.catalinzima.com/tutorials/crash-course-in-hlsl/
But I actually found nvidias cg tutorial  here http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter02.html
And Cg Toolkit's manual downloadable here (mostly for explanation of syntax) super helpful https://developer.nvidia.com/cg-toolkit-download

Oh, and I gotta ask, is it normal that it takes about 1-2 minutes for the shaders to compile? running decent comp here [email protected]
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 https://www.dropbox.com/s/jxn9otv53jzkl3b/Warband_hlsl.xml

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

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

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

[вложение удалено Администратором]
Моя конфигурация:
Нормальная, мне хватает.
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #15 : 26 Апрель, 2013, 19:15 »
Мои первые попытки в создании HD воду...  :)

CWE - HD Water Bump + Water Shader (Test v.2)


Пока что присутствуют проблемы с отражением...
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 901
  • Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #16 : 27 Апрель, 2013, 19:45 »
Janycz, в мнб используеться своя спецыфика

А в чем заключается данная специфика????  :-\
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #17 : 27 Апрель, 2013, 20:53 »
Janycz, в мнб используеться своя спецыфика

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



В структуре. Если хотите разбираться то должны делать это сами на словах я мало что смогу вам объяснить... :)
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 901
  • Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #18 : 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

Вопрос возник: что это за шейдеры и как их писать???
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 2641
    • Просмотр профиля
0
« Ответ #19 : 28 Апрель, 2013, 23:48 »
Janycz, это шейдеры в отдельных файлах которые не нужно компилировать присутствующих в мибе я пока не разбирался как их писать. =/
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 2557
    • Просмотр профиля
    • Портфолио
0
« Ответ #20 : 29 Апрель, 2013, 10:37 »
Это для 7 директса кажись....
  • Сообщений: 7662
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов И создали они сайт... Призер конкурса Футболка по версии Всадников
    • Просмотр профиля
0
« Ответ #21 : 29 Апрель, 2013, 10:56 »
Это пиксельные шейдеры версии 1.1 для старых версий директа и видюх, по моему отвечают за весь бамп(когда на 7 ке), отвечает за все фейсы отвечают за, последний режим зеркальности, походу отражение (мой шейдер собственный сделанный шейдер\режим)
Моя конфигурация:
Нормальная, мне хватает.
  • Сообщений: 901
  • Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #22 : 29 Апрель, 2013, 20:23 »
Я полазил в интернете и вот что нашел:

  1) Эти шейдеры написаны на AGAL
  2) Наверное, они фрагментные
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 2641
    • Просмотр профиля
+2
« Ответ #23 : 18 Июнь, 2013, 20:11 »
Вот моя последняя работа.
Усилитель резкости: добавляет резкость всем 3д моделям и 2д текстурам. А также световая коррекция.


CWE - Power Field Shader
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 749
    • Просмотр профиля
0
« Ответ #24 : 21 Июнь, 2013, 14:49 »
Возник такой вопрос: возможно ли написание шейдеров для миба версии выше 2.0?

По теме: очень хорошая статья, обязательна к прочтению для начинающих - http://www.gotdotnet.ru/blogs/gsaf/6523/
« Последнее редактирование: 21 Июнь, 2013, 20:44 от ValerBOSS »
  • Ник в M&B: ValerBOSS
Теги:
 

Список игр

Инди-игры

Важное о модах

Наши моды
Русь 13 век
Мододельня
Форум модов
Обмен опытом

Реклама

Блоги

106 блогов, 360 записей
Последние записи:

[07 Февраль, 2018, 12:05]

[16 Сентябрь, 2017, 22:14]

[20 Март, 2017, 14:52]

[12 Январь, 2016, 18:11]

[10 Январь, 2016, 18:08]
Крупнейший сайт о стратегиях. Обзоры новинок.Активный ФОРУМ и встречи с разработчиками. Большая качалка МОДов для RTW и не только. Родной дом «Империи» и «Бонапарта». СиЧЪ Total War Все о Mount & Blade Сайт о хороших стратегических играх Mbwar.com - game portal clan battles and tournaments.
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на хостинге FASTVPS