Quest3D - Русскоязычное сообщество

Quest3D => Визуализация, Шейдеры => Тема начата: Alien3D от 16 Декабря 2010, 17:27:21



Название: По поводу ShaderFX
Отправлено: Alien3D от 16 Декабря 2010, 17:27:21
Скачал с Нета этот плагин, долго мучился в освоении. Понял как применять текстуру, но незнаю как перевести всё это дело в Quest. Прошу помощи! Может кто знает уроки или мануал на русском?


Название: Re: По поводу ShaderFX
Отправлено: Ruslan от 16 Декабря 2010, 17:33:11
http://guest3d.wohlnet.ru/forum/index.php?topic=426.0


Название: Re: По поводу ShaderFX
Отправлено: Alien3D от 17 Декабря 2010, 17:09:26
Спасибо конечно, но мне бы ещё узнать про ShaderFX в 3DS max'e. Там же визуальный принцип, так проще:) Помогите! :)


Название: Re: По поводу ShaderFX
Отправлено: Sqwer от 17 Декабря 2010, 18:15:07
там да, но код он генерит с ошибками, так что тебе придётся ручками  допиливать массивы света, переварачивать оси.

а так всё  работает без дополнительных вмешательств


1. Открой пример  в репозитории   ШейдерФХ ( располагается в той же папке где и сам плагин).
2. Скомпилируй его  с параметрами Quest3D.
3. встовляешь код в HLSL канал

типа всё


Название: Re: По поводу ShaderFX
Отправлено: Alien3D от 17 Декабря 2010, 18:53:01
Создаю свой код в максе добавляю в хлслобъект но теряются текстуры и нормали наружу выворачиваются, в этом случае применяю модификатор Нормали, и вроде нормально, но в квесте когда я приблежаю свет к объекту то освещение как бы освещает только зад объекта, за то в максе всё хорошо. Что делать? Неужели писать весь код в HLSLOBJECT? Есть вариант проще?


Название: Re: По поводу ShaderFX
Отправлено: Sqwer от 18 Декабря 2010, 02:28:29
скрины давай , угадывать я не собираюсь.

судя по словам - нормали флипнуты (это часто происходит при  примении  отзеркальнных объектов)

попытайся   экспортнуть  обычный чайник и на нём проверить всё


я в скайпе  с 12,00 до 6,00   логин   sqwer_37
обясню в деталях если ситуация в тупик встанет


Название: Re: По поводу ShaderFX
Отправлено: Alien3D от 18 Декабря 2010, 07:42:41
На чайник наложил две текстуры, поверхность и бамп. Экспортирую модель в Quest (COLLADA), добавляю HLSLObject и всё, нормали выворачиваются, а текстур как и не было.
В Максе стандартные текстуры не накладывал, сразу создавал в ShaderFX. Потом приходиться отдельно клеить текстуры на HLSLObject. Смотрите скрины там всё есть. Код FX так же прикрепляю. Помогите пожалуйста, игра стоИт.
P.S. Если у меня есть созданный уровень, мне придётся разбивать всё на части и накладывать FX отдельно?

Sqwer ты скорее всего либо в Москве живёшь либо где то рядом, мне как ориентироваться во времени, по Москве?   
Я с дальнего востока, у нас на +6 часов разница. Если у вас 12 часов дня, то у нас 6 часов вечера. )

Извиняюсь, думаю что скрины показать не получиться, так как не могу загрузить, я сижу с кпк, скорость отвратительно маленькая 3.5 Кб/с 



Название: Re: По поводу ShaderFX
Отправлено: Sqwer от 18 Декабря 2010, 13:40:42
technique Complete 

   pass light1 
    {      
      VertexShader = compile vs_3_0 v(light_pos[0], light_type[0], light_dir[0]);
      ZEnable = true;
      CullMode = cw;
      ShadeMode = Gouraud;
      ZWriteEnable = true;
      AlphaBlendEnable = false;
      SrcBlend = SrcAlpha;
      DestBlend = One;
      AlphaTestEnable = FALSE;
      PixelShader = compile ps_3_0 f(light_dir[0], light_color[0], float4(light_atten1[0], light_atten2[0], light_atten3[0], 1.0), light_hotspot[0], light_falloff[0], light_type[0], light1attenType, light1coneType, light1CastShadows, 1);
   } 



CullMode = cw;
меняй на
CullMode = cсw;


Название: Re: По поводу ShaderFX
Отправлено: Alien3D от 20 Декабря 2010, 13:11:41
Всё получилось, спасибо! Вот только один вопрос остался: Мне надо сначала в Максе накидывать текстуры на объект, а потом в Квесте добавлять HLSLOBJECT? И есть ли уроки по ShaderFX в максе? Спасибо Sqwer!


Название: Re: По поводу ShaderFX
Отправлено: Sqwer от 21 Декабря 2010, 01:30:20
Цитировать
Мне надо сначала в Максе накидывать текстуры на объек
это вопрос касательно менеджмента ресурсов - решать тебе.

Цитировать
а потом в Квесте добавлять HLSLOBJECT?
а про  Глобал Шейдер ты не слыхивал?

Цитировать
И есть ли уроки по ShaderFX в максе?
Есть, там от куда ты эту программу и качал.
есть даже серия уроков на Ютубе от разработчиков.


Название: Re: По поводу ShaderFX
Отправлено: Alien3D от 23 Декабря 2010, 17:42:44
Нет, про глобал шейдер я не слышал, расскажи по подробней.


Название: Re: По поводу ShaderFX
Отправлено: RazorSoul от 14 Января 2011, 19:10:10
Sqwer добрый человек, помоги пожалуста разобраться, как экспортировать шэйдер Leaf UV rotation из Shader FX? Сколько я не разбирался в шейдере -это для меня что-то абстрактное, на интуиции что-то понимаю, а толком нет.
    Ошибка в строке:
float3 input1 = TextureMap_3430.rgb; 
пишет invalid subscript rgb
тут как я понял оператору input1 присваевается значение rgb текстуры TextureMap_3430.
Тогда почему неможет определить этот самый ргб, это ж канал текстуры,
Другие шейдеры экспортировал там вроде тоже самое но работает. ???
Пробовал всавить перед этой строкой следующее:
float4 TextureMap_3430 = tex2D(TextureMap_3430Sampler, In.texCoord.xy);
шейдер начал компилироваться нормально, но при переходе в окно анимации видно что он неработает.


Название: Re: По поводу ShaderFX
Отправлено: Sqwer от 14 Января 2011, 20:54:29
Цитировать
Leaf UV rotation из Shader

ты его поменял



Цитировать
    Ошибка в строке:
float3 input1 = TextureMap_3430.rgb; 
пишет invalid subscript rgb
не соответсвие  размерностей TextureMap_3430.rgb;


Цитировать
видно что он неработает.
Я не телепат,  что происходит ?   выдаёт ошибку   или результат работы не совсем такой , который ты хотел увидеть?


Если  текстура не двигается.
Цитировать
float4 TextureMap_3430 = tex2D(TextureMap_3430Sampler, In.texCoord.xy);
а надо было всавлять  вместо In.texCoord.xy     ротационные   координаты UVRotator.xy


Название: Re: По поводу ShaderFX
Отправлено: RazorSoul от 19 Января 2011, 12:14:15
Всё кажись разобрался. :) Там целый кусок кода отсутствовал в вершинном и пиксельном шейдере. Вот вам и Shader Fx, косячит он короче. Пришлось долго "медитировать над кодом" и копипастить.